Session 17

Warranties


820:240

Environment, Technology, and Society


Exercise: Warranting Performance of Software

Goals

  1. To understand better the relationship between a technological product and its users, especially their expectations about its performance.

Tasks

Work in teams of three or four people based on the number in the upper right hand corner of this page.

Background: You've all used software before. Many of you have bought software, from the operating system that came installed on your computer, to productivity software such as a word processor, to games. Have you ever been dissatisfied with a software product? Have you ever been so dissatisfied that you wanted a refund? Have you ever read the license agreement for a software package? You might be surprised.

  1. Make a list of the features for which a software producer can reasonably offer a warranty on product performance. Why can the producer offer a warranty on each feature, and why should the producer offer a warranty on each feature?

  2. For each feature on your list, identify (1) actions that the producer can take to ensure that the software meets the warranty and (2) remedies that the producer should provide if the feature fails.

  3. What features should a software producer not warrant in its product? Why not?

At the End

  1. You argue your case in class.
  2. Your group submits its write-up.


Summary from Exercise

A few years ago, the Waterloo/Cedar Falls Courier ran a series of articles about a case that came to mind when I prepared for today. You can read about the case on-line. A quick summary: an Iowa couple was charged with tax fraud, and a major part of their defense was that they relied on Quicken, a tax software package, and got confused. The jury was apparently unmoved by this argument, in light of the size of the error (five or six figures...). The result was jail time.

This case wasn't about warranties, per se, but about usability (or just plain criminal behavior). But it does highlight that some software is hard to use, perhaps so hard as to prevent its successful use. Making warranty on how a user uses a tool seems pretty risky, beyond saying that within prescribed bounds of use the tool will function correctly.

(Oh, and never underestimate the "fool" in "foolproof". While thinking about this session, I was also reminded of a legal case we covered in one of my undergraduate Business Law courses. Two guys used a lawn mower as a hedge trimmer! They lifted the mower up by its shell and walked, one on each side of the hedge, holding the mower at the top of the plant. Sadly, one of the guys slipped and lost all of his fingers when they met the blade. In the suit, these men claimed that the manufacturer did not expressly disclaim this use and that therefore they should be held liable for the "failure". They won the case! I would have laughed if this case didn't say something so sad about the intelligence of some consumers and the state of our civil justice system!)

Could a software producer -- or the producer of any complex technological device -- ever offer a warranty on the use of its product?

Well, of course. A car is a "complex technological device", and auto makers offer quite detailed warranties on their products. Hosts of other complex products come with warranties. These range from cutting-edge technologies to cut-and-dried technologies.

What is the purpose of a warranty? A warranty is not a claim that the product will not break. For systems of any reasonable complexity, such a claim is unreasonable. As some of you pointed out, a warranty is more about customer satisfaction. It says, "Even if this product fails, we want you to be happy. So we will bear the cost of failure (or some part thereof) for some period of time." Now we are in a realm where software warranties make sense.

Many of you made the claim that software is different from other products, which is true, and that, as a result, software warranties are unreasonable. If your intent in making the warranty is to claim that the software will not break, you are right. If you take the broader view of warranties as a means to curry customer favor, then not offering a warranty of some sort is unreasonable.

Keep in mind that computers and software are increasingly used by non-technical people who are not fazed by claims that software is "different". My dad made cars for a living. at one of those auto makers, and to him giving a warranty is just a part of doing business. It will take more than our strident claim that advanced technologies are different to convince people like him that software developers shouldn't be doing more to ensure our customers' satisfaction.

So, developers of software and other advanced devices face a couple of challenges:

Some of the ideas that you offered in class as to how software is different: the environment in which software operates is complex, increasingly varied, and increasingly autonomous; the potential complexity (which means things we might not anticipate when developing the software) is much greater than for many systems. (But keep the lawn mower guys in mind!)

I overhead one group say, "Well, a program should do what it promises to do." What does a word processor, for example, promise to do? How do we know when it has delivered?


Students Summaries


Eugene Wallingford ==== wallingf@cs.uni.edu ==== November 20, 2003