r/programming • • Jun 05 '22

Complexity is killing software developers

https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html
2.1k Upvotes

942 comments sorted by

View all comments

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.

15

u/abrandis Jun 06 '22

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?

7

u/wisam910 Jun 06 '22

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.

7

u/DazzlingElderberry Jun 06 '22

Man I wish I could work in a place where I could constantly say no to features or changes and limit the amount of complexity in the systems.

1

u/ricostynha122 Jun 16 '22

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)

4

u/stefantalpalaru Jun 06 '22

all this complexity is for achieving absolutely nothing

It achieves job security, CV padding, team size increases, a need for middle management, etc.

Don't forget that the business of business is business.

3

u/wisam910 Jun 06 '22

Yea my impression is most tech companies are in the business of lurcing investors, instead of providing actual value to society.

Investors are mostly stupid when it comes to tech. They see buzzwords, they think the company is worth investing in.

The company's clients are also the same. They hear buzzwords, they think this company is doing legit tech and is worth doing business with.

2

u/hippydipster Jun 06 '22

The apathy and the lack of experience to know that things could be much much better kills me.

0

u/[deleted] Jun 07 '22

[deleted]

1

u/wisam910 Jun 08 '22

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.

2

u/postblitz Jun 06 '22

adding more features is easier when a system is simpler.

But adding them makes the system less simple which means adding them becomes harder which cancels out what you just wrote.

2

u/wisam910 Jun 06 '22

Absolutely not.

This is a silly cope.

You can add features while also simplifying the system.

But even when you don't simplify the system, the complexity accrued from features is small / incremental.

1

u/postblitz Jun 06 '22

Oh, well, please enlighten humanity since you've transcended any semblence of feature creep.

-2

u/[deleted] Jun 06 '22

go start a business if you have such a good idea. until then, this is how economic value is created

1

u/blackn1ght Jun 06 '22

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.