Ivars Peterson's Fatal Defect
by Rick Smith (July 1998)
Fatal Defect could easily be the title of a science fiction book where a flaw in a global computer system drives the earth to the brink of destruction, but in the "nick of time" a specialized group of people "battle" the problem, save the world and live happily ever after. It's like the plot line of many a summer blockbuster movie.
But Fatal Defect isn't science fiction.
And no one is going to solve the problem in two hours.
Fatal Defect is a sobering book which describes many of the computer related problems and failures that have occurred in the past twenty years. These software defects and design errors have caused plenty of problems from simple mathematical mistakes to the loss of vital communications, money and even life. It bears repeating - People have died due to software errors.
Although this book was written over a half decade before the year 2000, it is interesting to see how this Y2K problem began and what people were saying in 1990 about the problem.
|In a 1990 editorial titled "T minus 10 and counting" [Elliot J.] Chikofsky [a computer consultant and lecturer at Northeastern University in Boston] concluded "We'd better get started. This may take the full ten years." He also felt that January 1st and 2nd along with February 29th and March 1st of the year 2000 "be international holidays for clock resetting and database reprogramming".|
Now with less than 18 months for the end of the millennium, many people are still not convinced that the problem will be fixed in time. If we had only heeded his warning.
But clock related problems have occurred before. A most telling quotation from Peter G. Neuman, principal scientist in the computer lab at SRI International is that leap year errors occur in software every four years and 2000 is no exception.
|"Getting clock arithmetic correct might seem to be a conceptually simple task - ... but even if earlier leap-year problems were caught in older systems, they continue to recur in newer systems." Humorously, he adds "So, now we have four more years to develop new software with old leap-year bugs, and perhaps even some creative new ones!"|
So the "clock problem" is nothing new and occurs over and over, with great regularity, but the book discusses more than the impending Year 2000 problem. It focuses on some of the computer bugs that have caused problems all around us - plane crashes, radiation overdoses, ATM errors. The book was so interesting, I could hardly put it down.
Ivars Peterson not only describes each disaster that software bugs have caused, in detail, but also quotes some of the actual people involved in tracking down the bugs. He doesn't paint a rosy picture or even give the feeling that the answer is just around the corner.
Part of the problem is that software development is a new human activity, barely 50 years old. Another is that people consider software as "trivial and unimportant" and don't recognize that "software development is hard". Some seem to feel that developers are "magicians capable of incredible juggling acts".
To some extent, the software process itself is flawed. On many projects, one or two developers are expected to handle the entire software program. However when a house is built, the architect is not expected to perform the plumbing, heating, painting or electrical work.
In searching for answers, Victor R. Basili, a computer science professor, feels that software is inherently different than other products because "it is a product of the mind and it remains so throughout its lifetime." He also feels that software is not treated with the respect it deserves because everyone is all too willing to grab at the latest widget, even though it is unproven. His analogy:
|"Supposing a materials scientist came to the president of an aircraft company with a new, revolutionary metal alloy perfect for manufacturing lightweight airliner and insisted that the metal be introduced to the production line the next day. The scientist would be taken away in a straight jacket for such an outrageous recommendation. The company would want to experiment with the metal first, testing it on a small scale .... Immediate adoption would be out of the question"|
Yet, when the latest version of a program hits the market, many companies are ready to bet their bottom line on the new technology. And this is what leads to many of the software related problems.
Basili remains optimistic however, about the outcome. Although we push the boundaries, he has " a basic belief that people are smart. Of course, we'll get into trouble. We may even have a couple of major accidents first. But we'll step back; we'll learn"
Even though this book is now three years old, I feel that it should be required reading for all software developers and everyone else who uses the software they produce. Only through understanding the software process and problems that have occurred in the past can we ever have a chance to create reliable software.
One final thought: If you don't think the Year 2000 problem will be solved in time, maybe you want to book passage on the "programmer's cruise" that Ivars describes.
|It would depart at the end of December 1999 and sail for thirty days. To make sure everything was OK, the ship would be operated only by mechanical or simple electrical controls and NO computers. The crew would be selected on their ability to dead reckon and navigate with the stars. The ship would not sail in the normal shipping lanes or aircraft routes. There would be no communication from shore.|
And when you pack your bags, you could do worse than bring along this well written technical who-dunnit, filled with scary stories that programmers will be telling each other, around the phosphor glow of their workstations, for years to come.
|Table of Contents|
Preface - Bug Hunt
- Inside Risks
- Silent Death
- Power Failure
- Experience Factory
- Time Bomb
- Sorry, Wrong Number
- Absolute Proof
- Human Error
© 1998 Rick Smith All rights reserved.