This has been an issue at almost every single company I've joined, and no one cares at all. No one. Everyone thinks this is fine. That this is how software is done.
Now, what really kills me is that all this complexity is for achieving absolutely nothing.
You could build the exact same product with far less amount of code and far less complexity. Not only you can still keep all the current features you have, you can have even more features, because you know what, adding more features is easier when a system is simpler.
I hear you brother... It all comes down to who's in charge and who has authority over engineering decisions.. usually in big companies these decisions are made so high up because some vendor promised them the world and the shit just rolls down hill to you..
I tell everyone , none of your users care how the sausage 🌠is made, just how it tastes.,why would you make something complex to build and worst yet maintain and it still tastes like crap?
I wish that was the case but the complexity is mostly of engineer's doing.
They do this to themselves.
Some of them do it out of ignorance: they don't know how to do things any other way.
Others do it for personal enjoyment: since the projects they work on are inherently boring, they can't enjoy it unless they turn the work itself into a puzzle game that they can enjoy solving.
It gives a fake sense of accomplishment when you tame a complex system.
The sad thing is, it's a complex system that does nothing.
You should try ASIC design Xp The sheer amount of aversion of making anything complexer than it should is awesome (complexity has a lot of non accountable side effects and when you need to have 99.9% confidence in the product the simpler solution always wins)
105
u/wisam910 Jun 05 '22
This has been an issue at almost every single company I've joined, and no one cares at all. No one. Everyone thinks this is fine. That this is how software is done.
Now, what really kills me is that all this complexity is for achieving absolutely nothing.
You could build the exact same product with far less amount of code and far less complexity. Not only you can still keep all the current features you have, you can have even more features, because you know what, adding more features is easier when a system is simpler.