PPRuNe Forums - View Single Post - Airbus 380 loses engine, goes 5000 miles
View Single Post
Old 18th Nov 2013, 21:51
  #193 (permalink)  
MikeBanahan
 
Join Date: Sep 2007
Location: UK
Posts: 11
Likes: 0
Received 0 Likes on 0 Posts
Error free software

I'll bite on this though I tend to keep quiet, but my background in safety critical systems and formal proof of correctness of software gives me a certain amount of practical experience.

The software industry is a strange place. Much commercial software is of appalling quality and really is a disgrace to the profession. If anything tangible, say buildings or mechanical things were built so atrociously, it would be plain to any observer what a festering lash-up was being presented.

However, just because a lot of software is of lamentable quality does not imply that, therefore, all software is equally bad.

The software industry arguably seriously dates back to the late 1950s (I would personally pick the introduction of Algol 60 as a watermark but you can argue with that; its genesis dates it to the middle 50s).

In academic areas the skills and techniques necessary to produce software that is equally as well engineered as any counterpart in the civil, aeronautical or electronic engineering domains were vigorously pursued from around that time.

There is NO magic whatsoever in producing software to any arbitrary quality level you choose. The methods and techniques are 'well known', i.e. more than one person exists who understands them (sorry, academic joke in that last clause). As in any field of engineering, however, quality comes at a cost.

If you are prepared to pay the cost you can get the quality, just as in any field. Because software of such quality is rarely required outside of safety critical systems, the practitioners are not found on every street corner but you can find them and train them and implement the end-to-end quality and traceability that would be expected in other fields.

When that is done you are no more likely to get bad software than you are to get a defective compressor blade or contaminated fuel. And it so happens that the investment in quality has the unusual characteristic that the software can be endlessly duplicated at no cost (apart from audit and trace), unlike mechanical components where the cost is not only in the design but also the duplication.

Rather than assuming that all software is broken, or faulty or defective, it's smarter not to wag a finger in the direction of the software but instead to ask searching questions about HOW it was engineered from end to end and to what quality standards, just as you would with a mechanical component.

There is nothing unique about software. It's an engineered product like any other and can be produced to similar quality levels.
MikeBanahan is offline