IMHO the answer is the tech version of bullshit jobs.
You know the concept - jobs that exist just to exist and pay for someone's living, though they produce nothing of actual value, and it takes effort to actually remove so no one does.
With software it goes something like this:
1) A product is built, something that solves a real issue. It's new, rough around the edges and has only the basic critical features.
2) Funding is found and a large team is hired to implement what's needed and fix all the rough edges.
3) The team comes up with good, new ideas that actually improve the product experience for everyone, so in the eyes of management and the investors they have merit.
4) After the first 10 good ideas are implemented, the next ideas are... not as helpful, but some users still like them and nobody wants to fire anyone who's been doing really good work so far.
5) Fast forward a couple of years, the team is huge and there is really no headroom to improve the product. Everyone tries to come up with bullshit ideas and force their ideas through, just to have something to show come performance review time. The users stay with their tried and true product, and they're so invested at this point that a few regressions make them bitter - but not enough to leave.
6) Rinse and repeat.
I've been on that team. The engineers there are often mentally older, comfortable, and smart - or at least were smart. Many of them are sure what they do is important. But they're wrong. They now hold bullshit jobs.
There's a second sort of form of this: even if your (first) goal isn't to make changes, but just to maintain what you've got (operations, reactions to security issues, keeping up with the new Android/iOS/Windows/Web 99.0 way of doing things) you might need a team of a few people.
But they won't need to be doing that 100% of the time. The work will come in spurts. You'll find something to do with the time in between, because you can't hire people just for the spurts. Thus sometimes-BS jobs.
I think. This is so true.
At certain point the software is done. And the only way to "improve"
the software, is to just build adjacent software to enter horizontal or vertical markets.
You know the concept - jobs that exist just to exist and pay for someone's living, though they produce nothing of actual value, and it takes effort to actually remove so no one does.
With software it goes something like this:
1) A product is built, something that solves a real issue. It's new, rough around the edges and has only the basic critical features.
2) Funding is found and a large team is hired to implement what's needed and fix all the rough edges.
3) The team comes up with good, new ideas that actually improve the product experience for everyone, so in the eyes of management and the investors they have merit.
4) After the first 10 good ideas are implemented, the next ideas are... not as helpful, but some users still like them and nobody wants to fire anyone who's been doing really good work so far.
5) Fast forward a couple of years, the team is huge and there is really no headroom to improve the product. Everyone tries to come up with bullshit ideas and force their ideas through, just to have something to show come performance review time. The users stay with their tried and true product, and they're so invested at this point that a few regressions make them bitter - but not enough to leave.
6) Rinse and repeat.
I've been on that team. The engineers there are often mentally older, comfortable, and smart - or at least were smart. Many of them are sure what they do is important. But they're wrong. They now hold bullshit jobs.