Bugs. The nickname for software defects makes them sound like a natural phenomenon, even kind of cute and relatively harmless. When I say “bug,” I think ladybug. But programming errors are akin to cockroaches — as difficult to eradicate as those hard-shelled denizens of the dark and damp that, as urban legend would have it, could survive a nuclear blast.
Or maybe the correct analogy is to termites, as in something that insatiably chews through a company’s profits and undermines the framework of the business.
The Sustainable Computing Consortium, a collaboration of major corporate IT users, academics and government agencies, has estimated that defective software cost businesses around the globe $US175 billion in 2001.
That’s a big bite out of the economy. Software is almost everywhere — in your toaster, in your car, in the power grid, in the plane you’ll take to meet your next client and, of course, in your back-office and, increasingly, front-office systems, no matter what business you’re in.
It’s time we stopped talking about software defects as though they’re just an inevitable part of doing that business.
Ratcheting up legal pressure on companies to stop selling defective software is probably a good idea.
But a hailstorm of litigation isn’t going to solve all or even most of the problems caused by flawed code.
One reason is that the wheels of justice grind exceedingly slowly and the problem is building to crisis proportions.
Another is the intricate interrelationship between the vendors of large software systems and their customers — a company has to be pushed pretty far to sue the vendor that has its tentacles around so much key information. And then there’s the fact that a lot of the programming errors that cost companies money are made by in-house coders.
Almost everyone agrees that the rush to market is the reason so many software bugs crawl through development shops and creep out to end users.
But the Darwinian world of modern business isn’t likely to slow down to give coders time to use current methods to construct their programs with lapidary precision.
“The mind-set has to be speed and quality,” says Eric Schurr, a vice president at Rational Software, part of IBM’s software group. Schurr recalls a boss of his once saying that asking a business to choose between quality and speed was like asking a person to decide between breathing and having his heart pump.
Not surprisingly, since Rational makes software that automates program development and testing, Schurr believes that automation is a key to better quality.
But it’s not enough.
Asked when automation tools for testing complex programs would be available, he replies that they have “been around for 10 years.”
Clearly, the spread of automated development and testing hasn’t kept pace with the spread of software into every area of business and our lives.
The efforts to impose best practices in development shops and set standards should help. But it will be the market itself that finally provides the necessary pressure to squash the bugs.
“As software moves to the centre of the business, when it isn’t just a back-office function, companies find out that they must be more concerned about quality,” Schurr says.
A vice president at a shipping firm, who didn’t want to be identified, says his company recently lost $US85,000 and several customers because of two bugs. One bug was in a vendor’s routing and tracking software, and the other was in code created in-house to connect the routing system to the company’s inventory system.
“The price tag on bad software really hits home when you’ve got to talk to screaming customers, pay to make good and know that they’re never coming back,” he says. “The programmers who work for us are already doing things differently, and we’d have to think very hard about using the vendor again.”
When enough companies feel the sting, a lot more software bugs will die on developers’ desktops.