Live data from Hacker News

Code is run more than read

olano.dev

261–270 of 325 posts

Re: Code is run more than read

#261

> maintainer > author > usually a good investment to make the code maintainable by keeping it simple, writing tests and documentation I recently inherited a project where the leadership 100% believed this and tried to do it. The problem is that the copious junior developers they hired, with all of their good intentions, just couldn't write maintainable code.

[dead]

Re: Code is run more than read

#262
post #147

Some users are not using a system because they like it but because their company bought it. In those situations biz > user by definition and the developers end up having to cater to the needs of the middle managment of their customers rather than the needs of the actual users. The price of not doing this is failing to win the contract. Users then get locked in to whatever crap you have time to provide for them while…

I used to work at a company that sold SaaS to big corporations. We needed to win contracts, so we needed to tick their checkboxes, but we also cared for the user experience (good UX was almost never a strict requirement from our customer). Our competitors' software was very painful to use, so we wanted to differentiate in this regard. This made our own lives easier as the training was easier, the users we interacted…

I wish more companies realized your last point.

Re: Code is run more than read

#263
post #147

Some users are not using a system because they like it but because their company bought it. In those situations biz > user by definition and the developers end up having to cater to the needs of the middle managment of their customers rather than the needs of the actual users. The price of not doing this is failing to win the contract. Users then get locked in to whatever crap you have time to provide for them while…

> the developers end up having to cater to the needs of the middle managment of their customers rather than the needs of the actual users

this is why all enterprise software sucks

Re: Code is run more than read

#264
post #185

I'm glad to see something approaching ethics discussed: > There’s a mismatch between what we thought doing a good job was and what a significant part of the industry considers profitable, and I think that explains the increasing discomfort of many software professionals. "Discomfort" is quite the understatement. This leaves so much unsaid. I will add some questions: - What happens when your users are not your custome…

I believe this is a different problem than the essay is speaking about. You can choose what problems and domains fit your ethics. This is about how you build a system and how you prioritize the work.

> I believe this is a different problem than the essay is speaking about.

Hardly. I'll quote the last paragraph and the three inequalities:

> There’s a mismatch between what we thought doing a good job was and what a significant part of the industry considers profitable, and I think that explains the increasing discomfort of many software professionals. And while we can’t just go back to ignoring the economic realities of our discipline, perhaps we should take a stronger ethical stand not to harm users. Acknowledging that the user may not always come before the business, but that the business shouldn’t unconditionally come first, either:

    user > ops > dev
    biz > ops > dev
    biz ≹ user
First, I want to emphasize "perhaps we should take a stronger ethical stand not to harm users". The author did a nice job of "throwing it our faces" but the underlying ethical currents are indeed there.

Second, "the user may not always come before the business, but that the business shouldn’t unconditionally come first". This is very much aligned with my question "what are the norms and rules we need _such that_ businesses operate in some realm of sensibility?"

...

Ok, putting aside debates around the author's intent or 'valid scope' of this discussion (which by the way, is a rather organic thing, computed lazily by the participants, rather than by fiat), I'd like to add some additional thoughts...

In much of the software world there is a mentality of "We'll figure out Problem X (such as a particular problem of scaling) if we get to that point." I'll make this claim: naively deferring any such problems that pertain to ethics are fraught. Of course there are practical considerations and people are not angels! For precisely these reasons, ethics must be something we study and put into practice before other constraints start to lock in a suboptimal path.

I often look at ethics from a consequentialist point of view that includes probabilities of system behavior. This could be thought of as computing an 'expected future value' for a particular present decision.

If one applies such an ethical model, I think the impacts of choices become clearer. And it becomes harder to use false-choice reasoning to demonize others and exonerate ourselves. For example, if a particular business model has a significant probability of harming people, one cannot claim ignorance much less complete innocence when those harms happen. They were no surprise, at least to people who pay attention and follow the probabilities.

Ascribing blame is quite difficult. I like to think of blame as being a question largely of statistical inference. [1] But even if we all agreed to a set of ethical standards, the statistical inference problem (multicollinearity for example) would remain. There is plenty of blame to go around, so to speak. But certain actions (very highly influenced by mental models and circumstances) contribute more than others. [2]

To what degree is ignorance an ethical defense? This is a tough one. Not all people nor entities have the same computational horsepower nor awareness. I don't have the answers, but I have not yet found a well-known ethicist in the public eye that speaks in these terms to a broad audience. To me, the lack of such a voice means I need to find more people like that and/or contribute my voice to the conversation. The current language around ethics feels incredibly naive to my ears.

[1] I agree that for most people, ethical rules of thumb get us 'most of the way there'. But these heuristics are imperfect.

[2] To be clear, I see blame as often overused. I care relatively less about blaming a person for mistakes. I care much more about what a person's character tells us about how they will behave in the future. That said, a corporate entity is not a person deserving of such generosity. Corporate entities are not first-class entities deserving human-rights level protection. A legal entity is a derivative entity; one created in the context of laws which should rightly function to better the society in which it is formed. A corporate entity can rightly be judged / evaluated in terms of its behaviors and internal structure and what this entails for its future likely behavior. We don't expect corporate entities to be charities, for sure, but we also didn't consciously design the legal environment so that corporate entities can actively undermine the conditions for a thriving society with impunity.

Re: Code is run more than read

#265
post #213

Earlier quoted context omitted.

This is short term thinking - users who hate software can voice enough complaints to get things changed in at least some situations. (not all: many SAP programs with garbage UIs exist)

The user of SAP you describe is not the 'user' in the sense of the article. The user is the one who pays, i.e. some other business. SAP absolutely delights its users to the tune of a $200 billion market cap.

The article is missing that part - the two are sometimes different.

Re: Code is run more than read

#266
post #87

I think the corollary to the title (to turn it around on the author) is not 'Code is read more than written' but 'code that can't be read won't run for long'. Disclaimer: Experienced sysadmin trying to make a lateral move to development and as such a complete noob.

Your point isn't a bad one, but it's really a separate topic. Assuming we aren't deailing with deliberate obfuscation, most code can be read by people who can be bothered to try, and there are always code formatters if necessary.

Re: Code is run more than read

#268
post #147

Some users are not using a system because they like it but because their company bought it. In those situations biz > user by definition and the developers end up having to cater to the needs of the middle managment of their customers rather than the needs of the actual users. The price of not doing this is failing to win the contract. Users then get locked in to whatever crap you have time to provide for them while…

I used to work at a company that sold SaaS to big corporations. We needed to win contracts, so we needed to tick their checkboxes, but we also cared for the user experience (good UX was almost never a strict requirement from our customer). Our competitors' software was very painful to use, so we wanted to differentiate in this regard. This made our own lives easier as the training was easier, the users we interacted…

> the users we interacted with (that usually had no say in whether our solution was bought to them or our competitors') were happier and recommended to their managers (where they could) buying more stuff from us

And then the happy users switch to another company and start recommending your stuff to their new managers. It's an extra source of leads and sales :-)

Re: Code is run more than read

#269
Also code is read way more times than it is written (or edited).

So the corollary, in terms of concepts from my college programming languages class, is:

reliability > readability > writability

Re: Code is run more than read

#270
The biggest stakeholder is change and accumulated cruft. The usefulness of code also drifts over time as the users, business, or paradigms/ecosystem changes. Most new code should be considered throw away until it's proven useful to end users. Once useful it can merged into 'stable' tree that should have high standards. Ideally 'stable' is capped at a certain size per the number of engineers and so to move code in requires refactoring or deleting dead or less useful code. The balance you want is to maintain high velocity but also allow for maintainability and core stability.
Post reply on HN