Complexity of Software Hampers Efforts to Bridge the Glitch Gap
INTEL Corporation of Santa Clara, Calif., has spent the last month wiping egg off its face.
It is trying to explain why a flaw found in July with its Pentium chip wasn't acknowledged until a user discovered it in November. The hardware glitch, though extremely rare, has created an uproar.
Curiously, users seem far more tolerant of bugs and other software problems, which happen far more frequently and affect many more people. In the past few months alone:
* The Social Security Administration has admitted it underpaid some 426,000 elderly Americans by an average of $1,000 apiece because of a software problem dating back to 1978. The agency is now moving to reimburse them.
* A software glitch brought down part of Federal Express Corporation's system for several hours in November, forcing the Memphis-based company to temporarily suspend on-call pickups from business and residential customers.
* Some 900 Army National Guard members - and more than 7,000 vendors to the military branch - saw their checks delayed for a year because some computer codes were not correctly entered.
* The Nasdaq stock market opened 2-1/2 hours late in July because new computer software was being installed.
And those are just the reported software incidents. ``There's a whole bunch of software glitches that are really unreported,'' says Tani Haque, president and founder of SQL Software in Vienna, Va.
``There's no question that there are many, many more bugs in software than hardware,'' adds Alan Edelman, a mathematics professor at the Massachusetts Institute of Technology in Cambridge, Mass.
Several companies and computer scientists have developed tools to improve the development process. In hardware testing, for example, designers have come up with mathematical abstractions of various chip functions in order to catch more glitches.
But software designers have to deal with so many more variables and interactions, making the complexity enormous.
And the software just keeps getting more complex. To test all possible combinations of events within thousands of lines of computer code poses a monumental task, especially as companies move from one huge mainframe computer to smaller personal computers distributed across a network.
``The software possibilities for a large distributed system can never really be tested,'' says Tony Picardi, director of worldwide software research at International Data Corporation in Framingham, Mass. ``That's why we're liable to have more glitches.''
The result is a kind of glitch gap. Just as fast as companies develop tools and procedures to deal with the bugs in current software, the software gets more complex. ``The problem is growing very rapidly, but the systems to deal with the problem are not advancing fast enough,'' says David Dill, a computer-science professor at Stanford University in Palo Alto, Calif.
Several tools are under development. One broad grouping of these is known as computer-aided software engineering, or CASE, tools. This software helps developers plan, model, and create new programs using more automation than has been traditionally used. Some of the most recent CASE tools have even been able to handle distributed computing, Mr. Picardi says. Another kind of tool is called process-configuration management, which allows companies to track all the pieces and myriad changes of a computer program under development.
``When we manufacture a car, there's a whole process,'' Mr. Haque says. ``In software, that process is still not that well-known. It's still an art form.'' SQL makes a leading program that tracks the development process.
Still, the company's biggest customers are government agencies and firms doing government-related work rather than private-sector software concerns.
These latter companies often have to make difficult choices between rushing in last-minute enhancements to their software or doing more testing and risk getting beaten to market by a competitor, Haque says. Thus, any program or procedure that requires more money - or worse, more time - is hard to sell.
But slowly, companies and programmers are beginning to acknowledge the big challenge ahead of them.
``We're beginning to get to the point where people are realizing that this is an important problem,'' says Edmund Clarke, a professor of computer science at Carnegie Mellon University in Pittsburgh.
At some point, software is going to become such a critical component of the business world that software companies will become legally liable for program bugs, Haque predicts. ``Customers are going to say: `I want that warranty.' ''