Struggle

Bad Analogies about Dead People

"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.

Very interesting post. You make several good points. Sadly, I have nothing of value to add to it. But it is good food for thought.
Thanks. While the politics and economics of software mean quite a bit to me -- it is my field after all -- it pretty much means squat to most other people on my friends list. I feel like one of those Senators giving a stirring speech to an empty chamber.
Interesting post...
I was skimming over your joural and this post caught my attention (as some of your other posts did also). But, at least on this one, I thought I could add someting of substance :)

One of the problems with software developement, from the OS perspective, is the absence of competitors. Microsoft has virtually no competitors and other OS's aren't a direct competitior of Microsoft. Microsoft can get away with writing shoddy programs because everyone will still buy it. Even if Microsoft wrote shittier software than it already does, it would still be bought. What should be done is to give Microsoft competition. Theoretically, the only marketplace that can insure the quality of goods is a competitive market. If Microsoft wrote a shitty OS in a competitive marketplace, then you'd have 5 OS companies, with their PR people ready, to proclaim that their new version cleared up the bugs that Microsoft had and actually performed better. And the consumers would obey because they would see that Microsoft wrote a shitty OS and then have 5 other companies to turn to that could only keep that customer if the companies actually kept their word and wrote better software. In other words, it's a better business practice in a competitive marketplace to write quality software because then they keep the customers. Unfortunately, Microsoft is a monopoly and they distort the inner workings of market economics.

Okay, I tried to be profound, but it didn't seem to come out that way :) Besisdes, I can't write well today :)