James Kwak, a law professor and not a software engineer, wrote a piece recently that is making waves in the blogosphere with the alarmist title “Software Runs the World: How Scared Should We Be That So Much of It Is So Bad?”
He seizes on the recent Knight Capital debacle to petrify readers, and makes the absolutist statement “The underlying problem here is that most software is not very good. ”
He’s right that software does run the world. However, the world in many ways has never run better.
Remember travel agents? Now an airplane seat is just a few clicks away. How about that encyclopedia your young parents bought before you could even read, whose spines encased information that started becoming obsolete immediately? Today much of the world’s knowledge is available in your pocket on that smart phone. Then there is that phone – when I was young a long distance call was so prohibitively expensive that they were reserved for a rare business emergency or a death in the family. Today Skype gives us video chats into every corner of the world… for free. My 1966 VW needed a valve adjustment every 3000 miles, but my 2004 Prius, with 150,000 miles on it, still has the original spark plugs. TV was a handful of channels not long ago; today there are hundreds (though still populated with the same old crap) and other services deliver movies on demand.
SCADA systems, though admittedly imperfect, literally control the world of industrial production.
Then there’s the Curiosity rover. This weekend my dad, a long-retired mechanical engineer who did many Mars landing studies, said that if he had proposed such a gutsy mission he would have been fired. But the embedded software guided the spacecraft to a very complex autonomous landing. What a triumph of software and software engineering!
Ironically, Mr. Kwak lists his blogs and Twitter connections, concepts that would be impossible without software that works pretty darn well.
The author writes: “The question is how much you're willing to sacrifice in the name of quality .” That is getting it exactly wrong. The entire thrust of the Deming revolution is that quality saves money.
Sure, software isn’t perfect. What is? Regular readers know I’m passionate about improving the quality of our software-based products, but it’s important to step back occasionally and acknowledge our successes.
In a single lifetime computers have gone from science fiction to the very fabric of our lives. The notion of not having hundreds of processors is today as absurd as the idea of owning any computer was forty years ago. Those machines are all quietly running software that works.
And embedded code works the best of all. The data shows that firmware bug rates are about an order of magnitude lower than for PC and IT applications. So developers stand up and take a bow! The average person – and law professor – would be utterly lost if your software were to suddenly disappear.
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at . His website is .