Software design gets worse before it gets better
101–110 of 145 posts
Re: Software design gets worse before it gets better
#102Re: Software design gets worse before it gets better
#103To 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…
I think "better" is ambiguous. Better for developers? Better for users? Better for speed? Better for maintenance? Better license? Better software stack? Better telemetry? Better revenues through subscriptions?
Re: Software design gets worse before it gets better
#104Earlier quoted context omitted.
I think "better" is ambiguous. Better for developers? Better for users? Better for speed? Better for maintenance? Better license? Better software stack? Better telemetry? Better revenues through subscriptions?
At a business, all of these - a good engineer/architect has to find the right balance.
Re: Software design gets worse before it gets better
#105Earlier 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.
The thing about evolution is that you are sampling many times in different directions. So "luck" isn't that hard to achieve.
Re: Software design gets worse before it gets better
#106Earlier quoted context omitted.
Because Wayland is worse than X11. Unfortunately, it is true that sometimes after your software design gets worse it gets better, but other times after it gets worse it gets worse. It's not correct to assume that something will get better just because it is currently worse.
Wayland went for minmalism because one can always add things later. Unfortunately, making additions in a multi-desktop environment turned out to be kinda difficult. In a way, the quality of the design (and implementation) is fine, but the quantity of features is insufficient and limited by social issues. It's basically the opposite problem of systemd.
Re: Software design gets worse before it gets better
#107Earlier quoted context omitted.
Because Wayland is worse than X11. Unfortunately, it is true that sometimes after your software design gets worse it gets better, but other times after it gets worse it gets worse. It's not correct to assume that something will get better just because it is currently worse.
It seems the other way around: x11 got worse and worse, then wayland happened (wayland core).
Re: Software design gets worse before it gets better
#108Earlier quoted context omitted.
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.
And on the flip side, a sufficient abundance of resources and/or lack of predators mean non-optimal species can procreate, and thus find other local optima.
Re: Software design gets worse before it gets better
#109Earlier quoted context omitted.
At a business, all of these - a good engineer/architect has to find the right balance.
Different engineers can have different interpretations of "right balance" -- and many of them may be correct. Which makes "better" again ambiguous.
Re: Software design gets worse before it gets better
#110Earlier quoted context omitted.
At a business, all of these - a good engineer/architect has to find the right balance.
Different engineers can have different interpretations of "right balance" -- and many of them may be correct. Which makes "better" again ambiguous.
> The key question for the designer is, “What would the system’s structure need to be so that would be no harder to implement than necessary?” (It’s a bit surprising when designers don’t ask this question, instead simply asking, “What should the design look like?”—for what purpose?)
During my career, I have been in many situations where the SW architects tried to answer the second question: as if the architectural cleanliness was the goal unto itself. Software design patterns were misused, unneeded abstractions abounded everywhere, class hierarchies were created 15+ levels deep. There it was often brought up which is better and nicer and cleaner because the metric was aestetics.
Most of those arguments, however, are quickly brought to a stop, if we are actually asking the first question: how hard is it to add these new features? That said, I was frequently unable to convince coworkers in my past employments, that aestetics of the design is not the goal. They simply clung to it, to somewhat religious extent, identifying themselves with their "artwork".