but why does the effect only happen in software engineering, but not physical engineering?
You don't see buildings that are near collapse and require constant repair and redesign. You don't see construction contracts awarded to companies that build poor buildings. In fact, most buildings work fine, and even tho most also have some defects, those defects tend to be minor and can often be overlooked.
You don't see buildings that are near collapse and require constant repair and redesign.
When the covid thing is over, have a trip to Sydney Australia. There;s lots of cheaply done buildings here in all states of disrepair. People cheap out on the invisible stuff like correct wiring, correct plumbing and correct foundations.
And in software people cheap out on those same things because they can take the money and run.
You could fix this by making payment for software as 25% upfront with 20% on deliver and then 50% on 18 months of as advertised use.
But no one would ever do that. When Azzure or GC or AWS goes down every 5 years or so for a few hours, everyone gets server credits back for teh interruption and revenue loss.
No liability as assumed.
You can add Canberra to that list. I know several apartment blocks that are close to collapse, one Owners' Corporation is currently suing the builder (and the local government authority) in a case before the Supreme Court.
The rest of engineering isn't immune to this, but it's most prevalent in software because of it being soft. Just about everything you can imagine can be done.
This tends to pile requirements on, and you end up in a bad place.
You don't often get "I want a building just like that one" becoming "except make it out of glass", then "actually add a floor or two".
But I've come across exactly this in software. Someone I know asked a friend to make a copy of a well known auction site. Then he had to change the whole backend and add a load of features. Needless to say, it ended badly.
Software engineering isn't special in this regard. It happens in a lot of other domains. Software often doesn't have a lot of the constraints of other disciplines so effects like these are more pronounced.
I would characterize all the statements you made as false. Though it does depend on what your standards are.
Most of the critical things are done well enough, but that is a pretty low bar.
You don't see buildings that are near collapse and require constant repair and redesign. You don't see construction contracts awarded to companies that build poor buildings. In fact, most buildings work fine, and even tho most also have some defects, those defects tend to be minor and can often be overlooked.
So what makes software engineering different?