Can Software be Reliable?

Just read a post (permalink is broken) regarding how software engineering is nowhere near the level of quality as traditional engineering, partially because we don't have standards, regulations, etc.

While I agree with some of the argument, people often give too much credit to meatspace engineering when compared to software.

You often get what you pay for, and this applies to both types of engineering. Look at NASA's software engineering team (awesome article). Two quotes from there:

"The last three versions of the program - each 420,000 lines long - had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors."

And:

"...the group's $35 million per year budget is a trivial slice of the NASA pie, but on a dollars-per-line basis, it makes the group among the nation's most expensive software organizations."

Similarly, there's other very reliable software running very reliable systems (nuclear reactors, chemical factories, fighter jets, stock markets, whatever). Basically, when you're prepared to pay for software quality, you can get it.

Viewing things from the opposite direction; while it's true that none of my cars have ever spontaneously combusted on the highway, neither have any of them been bug free. There are always rattles, electrical problems, mechanical problems, and they all need constant maintenance - I can't treat my car recklessly and expect it to behave well forever. Just like with software, environmental changes can bring out defects in the original design. Bridges need constant maintenance, cracks form in buildings, roofs leak, gutters rust, foundations sink, water rises, dishwashers break (taking down my whole circuit) and light bulbs fry themselves.

Most of these things can be avoided with the judicious application of more resources (read: money [=time]). It just happens that most software companies get a better return on investment spending that money on new features/products than they do on aiming for five nines. Why? Because that's generally what customers respond to. What would you prefer - an iPhone with Safari occasionally crashing, or that small Ericsson from 1997 that never ever crashed?.

Sometimes it makes sense to spend a fortune to get that extra 1% (10%?) of quality, but each percent costs more than the last. I certainly want that last percent on bridges, airplanes and skyscrapers. But if I had to pay 3x the price for my video card (or phone, or DVD player) and wait 3x as long for new versions, I don't think it would be worth it.

 

Avi