I suspect that many other forms of engineering aren’t nearly as problematic as software engineering. For example, the Waterfall model, when applied to other engineering disciplines, often produces useable results. The big problem with software design is that, as in fiction writing, requirements are usually ill-defined. You usually don’t find out that the bridge that you’re halfway done building was in the wrong place, or suddenly needs to be modified to carry a train instead of carrying cars, but in software development, requirements change all the time.
Another issue is that software products are extremely diverse compared to the products of other types of industries. GM has been making automobiles for over one hundred years, and that’s all it makes. It doesn’t have the challenge of needing to make cars one year, jet airplanes the following year, and toasters the year after that. A company like Microsoft, however, makes many different types of software which have about as much in common with each other as a dishwasher has in common with a jet airplane.
As the joke goes, if cars were developed like software, we’d all be driving 25 dollar vehicles that got 1000 miles per gallon… and they would crash twice a day.
I suspect that many other forms of engineering aren’t nearly as problematic as software engineering. For example, the Waterfall model, when applied to other engineering disciplines, often produces useable results. The big problem with software design is that, as in fiction writing, requirements are usually ill-defined. You usually don’t find out that the bridge that you’re halfway done building was in the wrong place, or suddenly needs to be modified to carry a train instead of carrying cars, but in software development, requirements change all the time.
Being able to actually move the bridge when you’re half-way done probably has something to do with it...
That’s probably true.
Another issue is that software products are extremely diverse compared to the products of other types of industries. GM has been making automobiles for over one hundred years, and that’s all it makes. It doesn’t have the challenge of needing to make cars one year, jet airplanes the following year, and toasters the year after that. A company like Microsoft, however, makes many different types of software which have about as much in common with each other as a dishwasher has in common with a jet airplane.
As the joke goes, if cars were developed like software, we’d all be driving 25 dollar vehicles that got 1000 miles per gallon… and they would crash twice a day.