If software reliability were to be the weakest link in tomorrows IT systems, we could live with that. Recognizing softwares limitations, we could compensate with parallel computations using different algorithms and hardware to provide reality checks; we could prove the necessity, and therefore justify the cost, of human oversight for critical processes.
Whats much more dangerous is the delusional mind-set of major software vendors, who honestly believe their problems are the biggest ever faced by human ingenuity—and who also believe that those problems will soon be solved. These delusions exaggerate the role of software in our past successes and encourage overreliance on automated systems before theyre ready to take on crucial responsibilities.
I knew Id be writing about this someday, after reading the comments of Microsoft security honcho Craig Mundie when he placed his bet that pilotless airliners will be commonplace by the year 2030. My hackles went up when Mundie blithely said, “I imagine arriving at a methodology for system design that yields as much dependability, on an everyday basis, as the triple-redundant computer that flew guys to the moon.” (Read Mundies comments in their entirety.) In fact, the final moments of the first moon landing included a flurry of computer error messages, calmly interpreted by expert ground controllers. Those alarms would have aborted the landing attempt without that human intervention.
What provoked me past the point of tolerance, though, was Bill Gates statement late last month that the challenge of Microsofts .Net is “easily greater than tough engineering problems like getting to the moon or designing the 747.” This is not mere hyperbole; its fundamentally wrong. Unlike a lunar module, software can be tested under working conditions. After deployment, software can be designed to trap and handle failures. Software gives second chances; a moon landing does not. A 747 is designed and built for a useful life of decades. Its subject to ruthless scrutiny for safety and expected to meet a relentless schedule of uptime. Enough said.
If software people want to enjoy the respect that we give to rocket scientists and other real engineers, let them earn it. Theyll have to work a lot harder than they have so far.
Tell me whats the toughest problem at email@example.com.