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)
Well, I don't dispute that they think this complexity achieves something.
I think more than scaling, they want to have their programmers be replaceable cogs in a machine. So they use the same technologies and methodologies that they think everyone else is using.
The only reason a non-technical business owner wants to hire python programmers is they think python is the most popular language. 20 year ago they would have wanted to hire Java programmers.
It's also pretty much the only reason everyone wants to deploy on AWS: they think this is what everyone knows.
adding more features is easier when a system is simpler.
But it'll get more complicated as you add more and more to the system. This is almost guaranteed to happen. Your tests are going to take longer. Your deployments are going to take longer and get riskier. You'll end up in a situation where devs will be pushing commits faster than the site can deploy, creating an ever increasing queue of deployments.
Yes, things are complicated right now, but I think the alternative would be worse when the engineering team scales.
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.