Software bugs aren't mere inconveniences. Far too often they crash mission-critical systems, wreaking havoc on business, revenues, and the sanity of technical support departments. And as more software makes its way into our livesat the doctor's office, at the ATM, on the cable box hooked up to the televisionthe glitches are multiplying.

The notion of bug-free software seems a lot like time travel, dollar-a-gallon gasoline, and a humble Donald Trump: something we'd all like to see, but won't. Yet even if we're not able to eradicate software bugs entirely, we may be able to stamp out a growing number of them.

One of the most promising antibug efforts is underway at Carnegie Mellon University. Researchers there are analyzing how programmers find and fix bugs, and they're using this information to create a debugging system. "We spend a lot of time watching people debug and write code," says Brad Myers, a professor in Carnegie Mellon's School of Computer Science and head of the research project, which is known as the Whyline. "When programmers discover behavior that they hadn't expected, they ask "why" questions, usually why something did not occur."