Comment Re:This is a topic I've given a lot of thought to (Score 1) 391
Honestly, I think the philosophy of software engineering has gone wrong.
I agree. Sadly, software engineering is not engineering. Nobody, out side of safety critical systems, analyses the program structure and makes valid correctness claims for it as part of their quality process.
Software is at a stage that architecture went through before structural engineering really became widely adopted towards the back end of 19th century.
While we have pretty good tools these days that could do formal verification of our software, the process is incredibly time consuming. Moreover, all formal verification can ever do is show conformity to the specification. The specification can, of course, still be wrong. The move from the informal world of business to the formal specification of a system leaves a lot of room for mistakes.
How does a buyer of software know whether one piece of software is higher quality than another? Is there any real way for them to independently judge the quality of the code in most purchases?
My final thought to reflect on is that acceptable quality is enough quality and for most users that is reached fairly quickly. People will tolerate software that is really quite buggy. Games developers are actually giving us relatively deep insight in to that part of the economics. They still make money shipping games that are basically broken.
This point about game development is quite illuminating I think. The reason that most software is quite buggy is fundamentally an economic question - not an engineering question. Generally speaking, people are not prepared to pay for quality. They want enough quality that the software isn't a false economy - and we as an industry largely supply software of that quality.