Software to be bug-free, guaranteed?

Mon, 05/18/2009 - 18:28 -- John Locke

So here's what I think happened. A bunch of attorneys got really ticked about their computers crashing all the time. After reviewing their software license, they noticed in clear terms that every one of them basically said "we bear no liability if something goes wrong." Now they've set out to make it so the courts will throw out such disclaimers, and make it so that the provider of the software is on the hook for any bugs in the software, so that they would have a better chance at suing them.

Sounds great, right? I mean, we all hate computers when they don't work right. My computer crashed a couple minutes ago, while I was writing this story! Who can I sue?

The American Law Institute is proposing some changes in software contract law to make it so that vendors are on the hook for any "material defect" in their software, known or unknown. And in response, Microsoft and the Linux Foundation have jointly signed a letter in protest, a newsworthy event in its own right.

There's no doubt millions, if not billions of dollars have been wasted coping with buggy software. We'd all like to blame somebody for them. I'd like to blame Microsoft, for making us tolerate crappy software at all for the past couple decades. But that's not really fair.

The bottom line is that computers are extremely complex systems, and making a change to one part of the system often results in unexpected changes to another part of the system. In fact, it's a lot like the natural systems we've been screwing with for the past couple centuries--dump a bunch of sewage in the Potomac, see a lot of algae blooms, and next thing you know there's dead zones in Chesapeake Bay. Who's at fault? Well, to a certain extent, everybody who took a crap in a 6-state area.

On your Windows computer, everything probably worked fine. For the first few minutes. But then you connected to the Internet, visited a bunch of web sites that are doing everything they can think of to take over your computer without knowing about it, installed software from a dozen different vendors, and now your computer runs slowly and sends out spam when you're not looking. Is it Microsoft's fault? Maybe.

The thing is, the same decisions Microsoft made that gave it a position of market dominance make it vulnerable to malicious viruses and spyware. Microsoft went out of their way to build a platform that was easy to extend in so many ways--and for the vast majority of these ways, only virus-writers actually did. Microsoft left so many open doors and windows on the house that is your computer, it's no wonder people break in all the time--and there's a thriving add-on security market to help stop those threats.

But other systems aren't immune. On my Ubuntu computer, everything mostly worked until the last upgrade. And now it still works, except after I've suspended the computer half a dozen times. Then at some random point right when I'm in the middle of writing something important, it locks up, and then the graphic environment restarts. It's happened to me 3 times in the last month!

What's the cause of this problem? Could be failing hardware. Could be problems in my video driver. Could be some sort of low-level driver that's not happy. I could probably track it down if it happened more often, and get it fixed. But whose fault is it? Could be any of the couple thousand Linux kernel developers, or a volunteer packager for Ubuntu or a factory worker at Lenovo.

Now I'll argue that the benefits of Windows are not worth the hassles of having easily-infected computers that you need to actively manage to keep clean. But I don't think they should be sued for selling an operating system with flaws.

NASA has shown that it's possible to make software that is virtually bug-free. And they've also shown that even with rigorous process, they can still make mistakes.

Others have pointed out that no other industry or commercial contract law states that vendors cannot disclaim or limit their liability due to defects in their product. I'll just add a couple more thoughts:

  1. Just about every commercial software license I've ever read clearly limits their liability to at most the cost of the software, and more often, to no liability at all.
  2. The General Public License (the GPL) essentially does the same thing--expressly stating there is no warranty and disclaiming all liability.

So what would happen if software authors were forced to provide warranties for their software, and assume liability if something goes wrong? First off, the cost of developing software would go way up, and the time taken to create something new would increase dramatically. As software authors ourselves, we're constantly trying to balance coding things "the right way" -- secure, maintainable, high-performance, etc. -- with the budget of our clients. It usually takes a fraction of the budget to hack something together that mostly meets the needs, compared to the cost of not just building a software system, but also anticipating how it will be used, what other software it interacts with, what users could potentially enter, and how the very tools and softwere environment will evolve over time.

There is very definitely a market for stable, reliable, bug-free software, and support contracts and warranties for those who have a need that lives depend upon. But innovation happens at the edges, and if the innovators had to make sure their product was perfect before hitting the market, it would set software back a couple decades--and put the cost out of reach of those whose needs aren't so critical.

So for once, Microsoft and the Linux community is on the same side.

 

[Edit 5/26: John was also quoted in CRN/Channel Web on this issue.]

Industry: 

Comments

No software is 100 % harmless or bug free. Its impossible to do such one. I can agree that you can fix the bugs in the next issues.

Add new comment

  1. There is no chance you won't learn something important from reading this book.

    Dr. Dobb's Book Reviews
    Jerry Pournelle

Need More Freelock

       

About Freelock

We are located in Pioneer Square, in downtown Seattle. 83 Columbia Street #401 Seattle, WA 98104  USA [P] 206.577.0540 Contact Us/Directions | Site Map Get Updates ©1995-2014 Freelock Computing