Sure, there are lots of times where you're better off ignoring these user requests, and where scope creep or bureaucracy or tech debt or just sloppy coding introduce unnecessary complexity. But even if we could always build exactly what users want and always build things cleanly starting from a blank slate, software would still be complex.
The VC cash machine has brought us nothing except short term thinking, get-rich-quick schemes, social manipulation, herd mentality, idol-worship, media corruption and corporate growth.
I look forward to the next tech bubble. I hope they all get wiped out.
Firstly, I will enjoy watching them fail. It will make me happy intrinsically. If I lose my software engineer job and have to work as a janitor for a while, it would be totally worth it.
Secondly, the subsequent failure of their portfolio companies will free up a huge amount of marketshare in many industries; some of which I will be able to capture with my own side project until I can afford quit my janitor day job.
Oh look at all the overly complicated crap I can put up with. I must be amazing.
Complex systems evolve from simple systems. One reason we keep winding up with new complex systems is because of folks saying "it's too complex, let's start over without all these bullshit layers and code simply", where "bullshit layers" and "simply" are variables set by the prevailing environment.
Edit:
> It’s fashionable to throw huge teams, hardware and middleware at problems these days.
My theory is that it comes down to :
- Clients and managers thinking that the UX/visual look has something to do with the front-end framework, forgetting that in the end any web app is just HTML, CSS and JS, and frameworks having more to do with maintenance.
- Shops lacking seniors, and young engineers (legitimately) more interested by the tech than solving the business problem in a boring way.
So here we are with the "fashion" that any business app must be done as a SPA "because it needs to look modern". You can see the opportunity.
It really seems like things like PARC was an anomaly. Companies eventually figured that it was just better to "be part of the problem" and make a lot of money like in many other industries.
Users wouldn't tolerate WordStar and Pac-Man today.
As software professionals, this is a problem of our own making. Nobody is asking for software to be complex. Users don’t want complexity. Development companies don’t want costly complexity. Software developers don’t even want complexity. Who has sat down at the start of a project and said, “you know, this software needs to be as complex as possible!”
Yet we keep building complex software. Layer after layer of libraries and APIs. Frameworks and more frameworks. Containers. Multiple languages. Front end and back end. Machine learning. Problems that used to be solved on a PC now require a 150 node cluster.
It’s fashionable to throw huge teams, hardware and middleware at problems these days.
There is still opportunity for the lone coder and the lean startup. You need the competence to stop writing all these bullshit layers and code simply.