Live data from Hacker News

Software design gets worse before it gets better

tidyfirst.substack.com

81–90 of 145 posts

Re: Software design gets worse before it gets better

#81
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…

TL;DR you can't make an omelette without breaking eggs?

You can always make it with blood instead.

Re: Software design gets worse before it gets better

#82
So there is a pretty obvious analogy in chemistry: activation energy.

https://en.wikipedia.org/wiki/Activation_energy

The ELI5 version is that atoms are all trying to find a comfy place to be. Typically, they make some friends and hang out together, which makes them very comfy, and we call the group of friend-atoms a molecule. Sometimes there are groups of friendly atoms that would be even comfier if they swapped a few friends around, but losing friends and making new friends can be scary and seem like it won't be comfy, so it takes a bit of a push to convince the atoms to do it. That push is precisely activation energy, and the rearrangement won't happen without it (modulo quantum tunneling but this is the ELI5 version.)

In the software world, everyone is trying to make "good" software. Just like atoms in molecules, our ideas and systems form bonds with other ideas and systems where those bonds seem beneficial. But sometimes we realize there are better arrangements that weren't obvious at the outset, so we have to break apart the groupings that formed originally. That act of breakage and reforming takes energy, and is messy, and is exactly what this author is writing about.

Re: Software design gets worse before it gets better

#85
post #16

Needed this today. I think sometimes engineers go crazy and go try to greenfield something, anything, because building stuff requires it being in a nonfunctional state for a sec and this is hard enough on its own but there being (understandable, but often very counterproductive) friction around that that comes from what you're working on being something someone is relying on can make it a really daunting and frustrat…

Needed this post and this comment. And hopefully I'm not misreading either. Halfway through my greenfield redesign that I claim is catharsis because I was too scared of breaking things before they got better. I hope that I can put that redesign to rest and actually make progress with the original code.

Often when trying to improve a complex system, the best way to gain new insights and approaches is to just make a branch or even a clean project and try to redo a thing. Even if it doesn't end up in the project often you'll get ideas and inspiration

Re: Software design gets worse before it gets better

#86
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…

Which is why facebook had the motto "move fast and break things", you need to break bad abstractions to get to good abstractions and solve problems.

Re: Software design gets worse before it gets better

#87
post #86
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…

Which is why facebook had the motto "move fast and break things", you need to break bad abstractions to get to good abstractions and solve problems.

I decided i would prefer to quote Ms Frizzle instead of this.

Re: Software design gets worse before it gets better

#88
post #77
post #70

Earlier quoted context omitted.

I didn't say that evolution finds the optimal state, just wanted to highlight how far it was able to go, much farther it seems.. (like evolution of the eye) But your comment was refreshing, could you briefly expand on the "multicellular" life part? Did you mean that it enabled more non-locally-optimal transitions, or that it required them to appear?

I think cooperation is never a locally optimal strategy. Somebody allways gets to pick second at the prisoner's dilemma table, and locally optimal behavior is to eat the trusting idiot. Takes a lot of luck to evolve cooperation multiple times at once, much more likely to happen in a situation where the selection pressure is lower, not higher.

Now you get into the definition of "locally". Gene pool local or individual local? I think it's evident that cooperation has proven highly effective at the gene pool level. Will it prove to only be effective short-term local and flame out over longer-time spans remains to be seen. Will there be anyone to document it? Not sure, but it's been a helluva ride.

Re: Software design gets worse before it gets better

#90
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…

Unfortunately it happens often enough that you manage to sell the step where you make things worse, but then you never get management buy-in for the step that makes things better again.
Post reply on HN