You can also pay to have software built. The specs will not be even remotely as precisely defined and the building of the product will not even remotely follow a standardized set of steps. It will come down to a team and individual programmers implementing features as they see fit.
Software that was running space shuttles was famously engineered. The costs in terms of time and money was astronomical.
> Yes, poor engineering is rampant. But I will argue that malleability also plays a large role in the delta. In traditional engineering you build a car (and you are “done”). In software you build a car and get asked to make it an aeroplane without going back to the drawing board.
Which is why it is not engineering. It is a craft much closer to writing a novel than it is to engineering as it looks in other disciplines.
And of course there is often no regulations that would require and guarantee the application of such a standard, and no standardized QA by customers.
My suspicion is that, if you start trying to get specific, you can actually find standardized steps at the same level of abstraction in programming. But since construction superficially looks like "stamp out multiple copies of the same thing" whereas programming is superficially "everything is its own special sauce," people try comparing them at different levels of abstraction.
I think using that as a basis for this conclusion is wrong. Software changes a lot because it’s possible and “CHEAP” to do so compared to engineering in the meat world. This is a business pressure/decision. If companies can easily and cheaply modify bridges arbitrarily, I believe they will; and this wouldn’t have any bearing on whether it’s engineering.
> Software that was running space shuttles was famously engineered.
This is exactly my point: Most swans are white, doesn’t mean all swans are white.
Isn’t this the key point? That *most* “software engineering” is not engineering. I can build a bridge and not be an engineer; similarly I can build software and not be an engineer. The properties of the bridge/software is what makes the difference isn’t it?
> How many large construction projects fail due to incorrect engineering compared to large software projects?
Yes, poor engineering is rampant. But I will argue that malleability also plays a large role in the delta. In traditional engineering you build a car (and you are “done”). In software you build a car and get asked to make it an aeroplane without going back to the drawing board.