The evolution of software development over the past decade has been very frustrating. Little of it seems to makes sense, even to those of us who are right in the middle of it. My theory is fairly straightforward:
The long-term popularity of any given tool for software development is proportional to how much labour arbitrage it enables.
The more effective it is at enabling labour arbitrage, the more funding and adoption it gets from management.
What really baffles me is how bad we (as an industry) are at actually using engineering to leverage these frameworks.
It seems to me, like 90% of the regular, boring business software falls into a handful of categories, where in each category the same problems get solved again and again and again. Frameworks do help, but by far not as much as I’d expect.
Just think about how much software is essentially form>validation>transformation>persistence>messaging. It’s always the same, yet if you’d want to write one of these apps, you’d start with a rather bare bones Spring Boot/Quarkus app and maybe a React frontend, that doesn’t have any connection to the backend, so you have to manually plug them into each other.
Consider how well Lotus Notes handles your form>…>messaging pipeline. Why aren’t we still using an evolution of that? There’s always a shiny new technology that promises to fix all of the problems of the previous ones.