Earlier quoted context omitted.
I think this is actually addressed in the article: > 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 ans…
I have concluded that smaller is better and straightforward is better. I think it’s easier to scale up a small system than to maintain a complex system that was built for scale from the ground up but usually got some things wrong because the requirements at the time weren’t clear. But in the end there is never a clear answer. I am happy when people can explain what the positives and also the drawbacks of a design are…
Software design gets worse before it gets better
121–130 of 145 posts
Re: Software design gets worse before it gets better
#122My experience is the exact opposite. To implement a new feature, I usually first refactor, make space for the new feature, improve existing design. (uphill). Then I implement the new feature as pristine and clear as possible (top). Then I face the reality, integration tests fail, I add edge cases I forgot, (downhill). And I end up at the bottom, ready to push that abomination to git and forget about it.
* Replaced dusty old bugs with shiny new bugs.Re: Software design gets worse before it gets better
#123Earlier 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
#124Earlier quoted context omitted.
wayland annoys the toxic people, because it is currently favoring easy alternative implementations. It won't last, probably. Those toxic people usually always get their way into "core", pouring tons and tons of interfaces and dirty everything, viciously adding "features" to provoke some level of planned obsolescences over some few years cycles. Pure evil.
I'm not sure who you are being sarcastic about in the end, but yes, Wayland is indeed clean and simple enough to not particularly discourage alternative implementations.
Indeed, we agree.
We just need to do the hardest part: keep it clean and simple to not particularly discourage alternative implementations... on the long run.
Re: Software design gets worse before it gets better
#125Earlier quoted context omitted.
I'm not sure who you are being sarcastic about in the end, but yes, Wayland is indeed clean and simple enough to not particularly discourage alternative implementations.
Huh. Indeed, we agree. We just need to do the hardest part: keep it clean and simple to not particularly discourage alternative implementations... on the long run.
Re: Software design gets worse before it gets better
#126The multi-dimensional nature of this problem makes it extremely fascinating to me, even twenty years into my career. There's a certain dopamine hit you get for voluntarily trudging into the trough of despair, pushing the Sisphyean boulder of better design uphill in the optimistic belief that you can do better, and then actually arriving at something slightly better. Way more fun than conceptualizing programming as du…
Only if people wouldn’t switch jobs every 2 years. Only if new joiners wouldn’t feel like they have to “show up with something” making existing stuff obsolete. Well not blaming people or companies just thinking out loud.
Re: Software design gets worse before it gets better
#127Earlier quoted context omitted.
Huh. Indeed, we agree. We just need to do the hardest part: keep it clean and simple to not particularly discourage alternative implementations... on the long run.
...while also doing what users want and expect.
Re: Software design gets worse before it gets better
#128Earlier quoted context omitted.
I have concluded that smaller is better and straightforward is better. I think it’s easier to scale up a small system than to maintain a complex system that was built for scale from the ground up but usually got some things wrong because the requirements at the time weren’t clear. But in the end there is never a clear answer. I am happy when people can explain what the positives and also the drawbacks of a design are…
Indeed, could not agree more. Also, using composition over inheritance is age old advice but that still did not prevent those architectural astronauts from creating inheritance structures 15+ levels deep. Luckily, newer languages make constructing such monstrosities harder and discouraged.
The worst thing is how hard it is to talk about it because all the books - by authors making more money from talking about software than from writing and maintaining code - recommend it, and it's just so SOLID and Hexagonal and looks obviously intuitively correct.
Re: Software design gets worse before it gets better
#129Earlier quoted context omitted.
Indeed, could not agree more. Also, using composition over inheritance is age old advice but that still did not prevent those architectural astronauts from creating inheritance structures 15+ levels deep. Luckily, newer languages make constructing such monstrosities harder and discouraged.
Just having a huge bikeshedding festival at work after I wrote this sentence into guidelines... The worst thing is how hard it is to talk about it because all the books - by authors making more money from talking about software than from writing and maintaining code - recommend it, and it's just so SOLID and Hexagonal and looks obviously intuitively correct.
The sentence for preferring "composition over inheritance" for code reuse is in the book by the gang of four (the design patterns book). I really don't understand how we ended up in the situation, where 30 years old advice is still valid and still not followed. I lay, perhaps too much, blame on Java, which seems to have this baked into its infrastructure, but similar approaches have also been adopted in C++ with multiple inheritance making things even worse.
I mean, SOLID, when used appropriately, is also valid. The problem is that the design patterns are used where a simpler solution would work just as well.
Re: Software design gets worse before it gets better
#130Earlier quoted context omitted.
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 fut…
The CTO was more likely being dishonest rather than stupid. Most justifications for not giving a pay raise are carefully crafted bullshit designed to sound reasonable. After all, if the reason is "I want more money available for me and the shareholders" you can't just say it.
(If, for some reason, the company is making gobs of money for the shareholders but management has still decided to squeeze employee salaries, increasing the risk of loosing key people that help generate that revenue, also leave because those managers will end up destroying the company.)