Thursday, October 26, 2006

Great Expectations

Complaints about software quality are easy to find and easy to make. That's because of two things:

1) Many software systems are very complex systems and don't work perfectly
2) We have too high of an expectation on software

Maybe I'll talk about the first reason sometime but people a lot smarter than me have written books, programming languages and design methodologies to try to handle that. The first item can be further broken down but I won't go into that here.

The second reason is that we often expect too much from software systems. Here is an example - you have a cold and need a tissue to wipe your nose. You walk over to the tissue box (one of those pop-up boxes that delivers the next tissue when you pull the current tissue our) and there is no tissue ready to use. You have to dig down and pull up the tissue. In the process, you mess up the next tissue. You can either fiddle around and get the next tissue ready or just leave it so the next person faces the same problem you just faced. There are a combination of "bugs" here and some failed human actions. You might say, "Well, a box of tissues doesn't cost that much and your expectations aren't high for it. Well, hold on to that word "expectations".

So, let's look at something higher priced if that will satisfy you. You get into your car and try to start it. The starter grinds a bit and you release the key but the engine doesn't start. You try it again and this time it starts (of course, if you are in a horror movie the monster is bearing down on you, the car will not start until the monster touches the car!). This was a "bug", too, but we don't call it that. Here, the item is expensive (unlike the box of tissues) but you just don't write a nasty letter to the maker of you car when it fails to start. Your expectation is that once in a while a car just doesn't start the first time you try it. If you remote doesn't change the channel when you hit the button, you just hit it again. If a friend says they will call right back and then they don't, you figure something must have come up or they would have called back. Each time, it is the expectation that allows you to just shrug your shoulders and say, "Oh, well, nothing is perfect." I think we just expect too much of many software systems.

Some people would say that my argument is not fair and just incorrect. They would say that you can't prove that something is OK by saying other things are just as bad. That's OK. Let them start their own blogs and write what they want. This is my blog and these are my ideas.

If someone says I'm a poor athlete because I can't jump (unaided) over a twelve foot fence isn't the best answer that no one can jump over a twelve foot fence? I've used the "limitations" of others as the answer to my "inability". It all depends on your expectations.

No comments: