PICTURE THIS: You go into a store to buy a microwave oven. You plunk down $200 and take it home. You try to cook some things, but after a few hours you're still burning everything that you put into it -- that is, when it doesn't stop working in mid-preparation, requiring you to unplug it and then plug it back into the wall to get it to start responding to your commands again.
It's not a satisfying experience, but you tell yourself with resignation that the problem is you're just not "appliance literate," and perhaps you could get this thing to cook some great dishes if you'd sign up for those Microwave Science classes at the local community college.
Sound likely? Of course not; once that microwave started giving you trouble, you would take it back and demand a refund. Ah, but suppose you go to a computer store and spend the same amount of money on a piece of software, perhaps a word processor, an accounting program for your small business or a game for your child. You put the software on your computer, and two weeks later it still crashes now and then, or loses part of your document, or does something unexpected that wastes hours or days of your time.
Do you take that software back to the store and get a refund? Well, for most of us, the answer is no. When we buy microwaves, cars, hamburgers, houses or newspapers, we expect quality. We call the results of bad design, "defects." With software, we've been trained to replace the harsher-sounding word, "defect," with the cuter, more innocuous-sounding "bug."
That seems odd in a country where a court told McDonald's to pay a woman $14 million because she didn't know that spilling hot coffee on herself would hurt. But in a society of consumer-oriented lions, we meekly lie down like little lambs when faced with low-quality software. There's a great cost to that docility in terms of lost time. Help Desk Institute, an industry group based in Denver, says Americans spent 65 million minutes last year on "hold" waiting for help from software companies.
But it doesn't have to be that way. Software companies can produce high-quality, "bulletproof" software any time they want.
The average consumer thinks -- has been trained to believe -- that software and bugs go hand in hand. But it's possible to write high quality software.
Organizations such as Carnegie-Mellon's Software Engineering Institute (SEI) have been showing people how to do that for 15 years, and their techniques yield results. In one example, Motorola adopted SEI methods when building the software in its StarTac cellular phones. Believe it or not, the programs that control a StarTac phone are about the same size as Microsoft's popular Windows program was in 1990, in Windows version 3.0. But where Windows 3.0 had about 5,000 defects, the StarTac programs have 24. So why doesn't every vendor produce low-defect software?
Managing a software development project means trading off time, quality and features. As the old saying goes, "you can have it fast, cheap or good -- pick two." In the commercial software business, vendors are required by their competition to turn out a new version of their software roughly every one to three years. They must trade off time between adding new features to the software and fixing bugs in the software. Historically, software firms have decided that adding features is far more important than fixing bugs.
In an interview in 1995, Microsoft's Bill Gates emphasized that "the reason that we come up with new versions is not to fix bugs, ... absolutely not. It's the stupidest reason to buy a new version that I ever heard. ... You won't get a single person to say they'd buy a new version because of bugs."
Gates is not alone in that point of view. Nearly every software executive I interviewed while working on a recent book agreed with Gates' comment, unanimously saying they believe consumers make software purchase or upgrade decisions solely on the basis of glitzy new features rather than reliability.
Asked hypothetically if they thought a new version with no new features, but almost no bugs, would sell, every software bigwig emphatically said "no." Asked if they had ever tried it, none could come up with an example.
Just as common sense in the past has told us that the Earth was flat and that tomatoes were poison, so also does everyone in the software business know that quality won't sell.
Unfortunately, this story isn't restricted to the software industry. Virtually every technological industry spends its childhood fixated on flashy new bells and whistles rather than quality.
We saw it in the U.S. automobile industry in the 1950s and 1960s. Once Detroit had run out of nifty new features to add to cars, they ran out of selling points. Instead of moving their industry from its feature-obsessed childhood to a quality-conscious adulthood, automakers tried to extend the life of the feature wars, adding fins, power ashtrays and the like.
Japan offered Spartan little vehicles lacking fins but possessing reliability -- which turned out to be the "feature" customers wanted. At the last turn of the century, meatpackers embraced the large scale of production made possible by factories, but ignored quality and turned out spoiled products, leading the government to pass its first food-related health law, the Federal Meat Inspection Act of 1906.
The U.S. automobile industry learned the importance of quality at the hands of foreign competition, and the meatpacking industry learned it through government regulation. Having to learn the lessons the hard way hurt both industries, which would have fared better had they solved their problems with quality without external prompting. Software could suffer the same fate, but it needn't.
As America dominated the world automobile market in the 1950s, so also do we lead the world software industry. The $20 billion trade surplus created by the software industry is coincidentally about as large as the trade deficit created by the automobile business, a stark comparison when we consider that 30 years ago, the automobile business produced the largest trade surplus of all U.S. industries. It would be a shame if the now-mighty software industry repeated the fate of other industries, to its detriment.
In a naive way, the low level of software quality could be said to be a large misunderstanding: Vendors think consumers respond only to long feature lists, and consumers would prefer quality, but don't know it's possible to ask for quality.
The next time a vendor offers you an upgrade, look at what being offered. If the No. 1 new "feature" isn't rock-solid dependability, think about not upgrading, and writing a letter to the vendor explaining that. Or start treating software like any other product: If it doesn't perform as expected, send it back.
What could be more reasonable than to suggest that that we hold the software business to the same standards as the butcher, the baker and the automobile maker?
Mark Minasi is the author of "The Software Conspiracy: Why Software Vendors Produce Faulty Products, How They Can Harm You, And What You Can Do About It," published by McGraw-Hill.