"I'm unaware of any company that would shortchange the customer in their speed to get the software to market," said Jonathan Thompson, vice president of the Washington-based trade group, which has more than 650 members.
When I read the above quote in a CNN article about tech support and bad software, I almost choked on my coffee. "Well surely that's just a marketroid speaking!"
I started thinking about it and still can't figure a way out of the dilemma underlying that statement. First of all, I have never worked for a company that wasn't willing to "shortchange" customers if the fix cost more than the problem. That's not necessarily dishonesty on the part of the business, though. The consumers are happy with this tradeoff, too. For example, what if I told you that we can pass a law tomorrow that would serve to eliminate all automobile fatalities. Would you agree to that? Many people would, but as soon as they find out that this entails outlawing automobiles, they would balk. Even those who've lost loved ones in traffic fatalities would never think of outlawing cars.
Given that we're willing to accept many people dying every year as the price of maintaining our economy, I think that allowing a few software bugs is a trivial matter. Would consumers buy a "perfect" operating system that cost ten times as much as Microsoft Windows? Most would not. But is the analogy with automobile accidents fair? Not quite. Many accidents are caused by operator error (you key in the wrong number) or "Acts of God" (the network goes down). What about accidents caused by automobile manufacturers who install shoddy brake lines? They're liable. Software manufacturers are not.
That's where the analogy fails. We want our cars but we don't want automobile manufacturers to have freedom from liability. Further, the yearly economic losses from automobile accidents (year 2000 estimate: $230.6 billion) dwarf the $59.5 billion estimated yearly impact from software problems (year 2002 estimate from CNN article cited above). I don't think this absolves the technical community from a responsibility to put out the best software that they can and I do think that sooner or later we're going to have to have some form of malpractice standards for the software industry to hold software manufacturers accountable. If those standards are too strict, we'll cause tremendous damage to our software industries and, as a result, to our already burdened economy. Since those standards are too lax, it's pretty much a free-for-all with many software manufacturers still talking about "Internet time". When you have to beat the competition, expand your feature set and turn customers into beta testers. It's a gamble for both the customer and the software companies, but it's a gamble everyone takes because if you screw up, so what?
Where I get stumped is trying to figure out how to hold software companies accountable. For example, Microsoft had lower software defect rates than many of its competitors, but Microsoft software is so ubiquitous that a bug in their code has much greater impact. There's also the "king of the mountain" problem where everyone wants to take Microsoft down a peg and goes looking for bugs whereas many competitive software products are also buggy, but perhaps not scrutinized as closely. Heck, I've discovered bugs in my own software and realized that these bugs have never been reported simply because my software is not as widely used as that of others. Do I deserve a "get out of jail free" card simply because I don't have market share?
These are troubling questions. Something has to be done about the poor state of software development, but figuring out the correct course is difficult. I would quite happily see Microsoft (and Oracle) punished for what I consider unethical business practices, but I'm not sure about punishing them for bad software when that of many "competitors" is arguably worse. If we punish the competitors, does this only serve to strengthen Microsoft's hand? It's a tough problem and I don't see a clear way to solve it.