As with everything else, it's all about incentives. If well-crafted software made more money, then all we'd have would be craftsmanship. But it doesn't.
There is plenty of software which has to be reliable and without surprises, and that is where you will find craftsmanship. Except that doesn't usually make as much money as "big tech", so it won't pay as much and that is the problem. People want to have their cake and eat it too - spend countless hours on problems that tickle their intellectual curiosity and sense of achievement, while also being paid handsomely.
> If well-crafted software made more money, then all we'd have would be craftsmanship. But it doesn't.
The problem is that people fall for shiny but low-quality things that break or are hacked into after being used for a week. And then they can't get their money back or cancel their subscription, or they are simply too lazy for it.
We're basically asked to produce a quick dopamine hit, instead of rock-solid long-term solutions.
There's a market for disposable software as much as there is for permanent software.
Disposable software is more like the fast food industry. You're looking to minimize cost. Craftsmenship is not ideal in that situation. I find a lot of B2C software fits into this category. If it's trying to get a monthly subscription, it's probably disposable software. You'll want something that works well to steal them from the competition, but probably will only capture people's attention for a few years before some new competition arrives and steals your customers.
Unless it's reducing costs by automating some business function (like a bank's UI). Then it's important that it just works and is stable.
On the other hand, a lot of B2B software needs to work for a long time without breaking, so it's easier to justify paying for something stable and reliable. You don't want your public API to be unreliable or your clients will leave.
I'd agree that the highest paid engineers are most likely to be building B2C at the big SV companies, but I've made a pretty good living working mostly in the B2B space. I tend to enjoy it more because the business wants reliability. Usually when I'm arriving the project is in major disrepair so they need someone to clean and fix it all up, and they are motivated to pay for it.
I think quality does make more money, but there is no direct relationship. It is much easier to see the very direct relationship between quality and the expense, so that’s where the focus will be.
This is my take as well. Quality is important, but at least in big tech, it's not what's going to get the quick win on the stock market. But when your product is falling apart within a few years, management won't have the faintest idea why. Must be bad engineers.
If what you were saying was accurate and taken at face value, then we would see companies and products simply crumbling every few years, for seemingly unknown reasons.
There is definitely some amount of truth to this but, by definition, it cannot be as bad as you portrey it.
Quality takes time. So the trade-off is well-crafted software vs. more software, but of lower quality. If "more" makes more money than "better, but less", then you can't be surprised that management chooses "more".
I mean, given a choice between two boxes, one of which said "twice as many features", and the other said "crashes half as often", I suspect the majority of users would choose the "twice as many features" box.
There is plenty of software which has to be reliable and without surprises, and that is where you will find craftsmanship. Except that doesn't usually make as much money as "big tech", so it won't pay as much and that is the problem. People want to have their cake and eat it too - spend countless hours on problems that tickle their intellectual curiosity and sense of achievement, while also being paid handsomely.