Live data from Hacker News

Software design gets worse before it gets better

tidyfirst.substack.com

51–60 of 145 posts

Re: Software design gets worse before it gets better

#51
post #50
post #49

To boil it down simple: People are vaguely good and competent, they leave systems in a locally-optimal state. In general only changes that are "one step" are considered, and they allways leave things worse when you are currently in a locally optimal state. A multi-step solution will require a stop in a lower-energy state on the way to a better one. Monotonic-only improvement is the path to getting trapped. Take chanc…

> Monotonic-only improvement is the path to getting trapped. Take chances, make mistakes, and get messy. The evolution disagrees.

Evolution is a satisficer not optimizer.

All major trophic level breakthroughs are powered by evolving a reserve of efficiency in which mult-step searching can occur.

multicellular life, collaboration between species, mutualism, social behavior, communication, society, civilization, language and cognition are all breakthroughs that permitted new feature spaces of exploration that required non-locally-optimal transitions by the involved systems FIRST to enable them.

Trust is expensive and can only get bought in the presence of a surplus of utility vs requirements.

Re: Software design gets worse before it gets better

#52
post #50
post #49

To boil it down simple: People are vaguely good and competent, they leave systems in a locally-optimal state. In general only changes that are "one step" are considered, and they allways leave things worse when you are currently in a locally optimal state. A multi-step solution will require a stop in a lower-energy state on the way to a better one. Monotonic-only improvement is the path to getting trapped. Take chanc…

> Monotonic-only improvement is the path to getting trapped. Take chances, make mistakes, and get messy. The evolution disagrees.

No post body was provided.

Re: Software design gets worse before it gets better

#53
Interesting discussion … it appears that the nonlinear nature of modifying a software by a dev team with incomplete tacit knowledge of the underlying design makes it inevitable that things would end up in a state of ruin: small changes become very costly and risky, etc.

Re: Software design gets worse before it gets better

#54
post #50
post #49

To boil it down simple: People are vaguely good and competent, they leave systems in a locally-optimal state. In general only changes that are "one step" are considered, and they allways leave things worse when you are currently in a locally optimal state. A multi-step solution will require a stop in a lower-energy state on the way to a better one. Monotonic-only improvement is the path to getting trapped. Take chanc…

> Monotonic-only improvement is the path to getting trapped. Take chances, make mistakes, and get messy. The evolution disagrees.

> The evolution disagrees.

Ah yes monotonic-only improvement by way of making every small, messy mistake possible and still probably going extinct is definitely the way to go

Re: Software design gets worse before it gets better

#55

Earlier quoted context omitted.

Only if companies compensated fairly instead of incentivizing 2 year job hopping. Only if companies treated workers with dignity and not like they’re disposable cogs. Only if companies understood value of standards that would prevent new joiner from wreaking havoc.

I've gotten two raises in my entire tech career for actually staying at a company, and at one of them I was laid off six months later anyway. At this point any company that doesn't want me to eventually job hop will need to have an advancement structure laid out from day 1.

A good dev I worked with was promoted to senior, due to a vacancy. They were an improvement on the decent abilities of the person who left.

The CTO confided in me one day, around six months to a year after the promotion, that the dev deserved a fat salary raise because they were doing well with their new responsibilities -- but the CTO was worried that promoted dev would expect that kind of pay raise again in the future, when the organization clearly wouldn't be able to do it.

I called the CTO dumb and told them the promoted dev was doing well at their job for the same reasons that they'll understand that fat pay raises can be a one time thing.

Whenever I think of people leaving because they aren't getting pay bumps, I don't think of managers being stingy. I think of really weird mis-expectations and what must've happened in the past to build that expectation in managers' minds.

Re: Software design gets worse before it gets better

#56

What is "better software" though? On one hand you have guys like the OpenBSD team that work on Mostly Boring Things and making serious inroads at improving software quality of Mostly Boring Components that power the hidden bits of the Internet that go relatively unnoticed. On the other hand, you have "improvements" from Apple and everyone else that involve an ever-changing shell game of moving around UI widgets perpe…

> I've been around since the beginnings of the WWW

Ditto.

> I haven't gotten stupider; the software has become more difficult to use.

I can't speak for you, but I'm becoming less interested in new shiny in a lot of things beyond UI widgets. There's a reason why we olds have a reputation of falling behind, and it's not because engineers and inventors explicitly make things that only young people can learn.

Re: Software design gets worse before it gets better

#57
I don't understand that this article at all or what it means by worse. It clearly defines what better means: that the architecture is such that implementing a feature is no harder than it absolutely has to be. So if it has to get worse first that means initially we're making it harder to implement the desired features? Why are we doing that? Are we counting a half-done, under-construction state? It's harder to implement a feature now than before because we partially wrecked the old architecture, and then you architecture is not done yet? Or is it because we're accounting all this new re-architecting work towards the cost of the first new feature? The first toilet install is hard because we have to do the whole plumbing in the building, and redo the sewage pipe out to the street? The second toilet is easy?

Re: Software design gets worse before it gets better

#58
post #50
post #49

To boil it down simple: People are vaguely good and competent, they leave systems in a locally-optimal state. In general only changes that are "one step" are considered, and they allways leave things worse when you are currently in a locally optimal state. A multi-step solution will require a stop in a lower-energy state on the way to a better one. Monotonic-only improvement is the path to getting trapped. Take chanc…

> Monotonic-only improvement is the path to getting trapped. Take chances, make mistakes, and get messy. The evolution disagrees.

What makes you think we're not trapped in some really mediocre local optima? Tree dust makes me sick.

Re: Software design gets worse before it gets better

#59
post #50
post #49

To boil it down simple: People are vaguely good and competent, they leave systems in a locally-optimal state. In general only changes that are "one step" are considered, and they allways leave things worse when you are currently in a locally optimal state. A multi-step solution will require a stop in a lower-energy state on the way to a better one. Monotonic-only improvement is the path to getting trapped. Take chanc…

> Monotonic-only improvement is the path to getting trapped. Take chances, make mistakes, and get messy. The evolution disagrees.

Evolution regularly ends up in local optima that it struggles to get out from. Species go extinct all the time when there's no evolutionary path that solves its problems.

Re: Software design gets worse before it gets better

#60
post #51
post #50

Earlier quoted context omitted.

> Monotonic-only improvement is the path to getting trapped. Take chances, make mistakes, and get messy. The evolution disagrees.

Evolution is a satisficer not optimizer. All major trophic level breakthroughs are powered by evolving a reserve of efficiency in which mult-step searching can occur. multicellular life, collaboration between species, mutualism, social behavior, communication, society, civilization, language and cognition are all breakthroughs that permitted new feature spaces of exploration that required non-locally-optimal transiti…

Wow, very well put. Any suggestions for academic papers, books, or even online resources on these topics would be greatly appreciated.
Post reply on HN