|Why Do Computers Make Us Look Stupid?|
|Golden Rules for Bad Design|
By Gerd Waloszek, SAP User Experience, SAP AG – December 15, 2005
Recently, I had to use an application that reminded me of a very basic usability question: What matters most? Based on my experiences, I found the answer quite revealing, especially with respect to the role of usability efforts in the development process. For this article, let me put the initial question slightly differently: Which usability problems annoy me most?
My number one problem is waiting times. Waiting times were an important issue in the mainframe era. As far as I can remember, waiting times beyond half a second were regarded as detrimental. With the advent of personal computers, waiting times no longer seemed to be an issue – users came to expect computers to respond immediately. The Web, however, is one of the reasons that waiting times did not disappear into the shadows of history. With the application that I am referring to, which is based on Web technology, waiting times reached a previously unknown dimension for me: They ranged from a few seconds on "good" days to several minutes (or an endless wait) on "bad" days. I thus had plenty of opportunities to experience the effects of waiting times and learned that they can disrupt your work completely; at worst, they can prevent you from making any progress. On the other hand, I also learned that you can cope with bad usability, provided that waiting times are short, and you can "muddle" your way through an application and achieve your goals. That is the reason why waiting times come first on my list of usability problems.
The application I am referring to crashed frequently. As a typical result, I lost my recent work and had to start over. So I tried to avoid crashes and invented counter-strategies. For example, after each minor change I saved my work. This procedure worked in most cases (though sometimes the system crashed when I saved the changes...) but led to an even more disruptive work flow. Seen in retrospect, the crashes led me to invent an inefficient "bypass" procedure, which was only partially effective. Now, if we rightly assume that the application's stability will improve over time so that it is no longer necessary to save your work after each small change, when will I realize that I can drop this inefficient procedure? Probably never, because eventually it will be deeply engrained in my work practices. Thus, crashes make us inefficient in two ways: We may lose our work, and we adopt inefficient strategies to circumvent the losses – reason enough to rank them second on my list of usability problems.
After the first dust had settled with respect to the application, that is, crashes had become rare, and waiting times were no longer in the range of several minutes, my picture got clearer about what ranks next after these two fundamental usability problems: In my opinion, it is missing functionality.
The lack of functionality can constrict you in several ways: In its severest form, it can prevent you from achieving your goals, or put simply, you cannot make the application do what you want it to do. That is, the system is not effective. In a "milder" but nonetheless annoying form, the system let's you achieve your goals but only in a very cumbersome fashion, which may drive you crazy. Here, the system dictates how you have to carry out procedures and doesn't allow you the flexibility that you want and need. That is, the system may be effective but it is not efficient.
As a simple example, think of an application that doesn't let you select several items at a time and perform an action on them, such as Delete. As a result, you have to carry out the procedure for each item separately. This is particularly cumbersome if procedures consist of several steps.
And then comes the rest. Are you surprised by this crude simplification? Do you believe that I am wrong? Wouldn't this mean that we can throw away all our usability efforts? Of course not, why should I bite the hand that feeds me... I know there are zillions of awful usability problems in today's software. But if I had only four categories at my disposal, I would definitely put the remainder of the problems into box four. And also remember that this is just my personal ranking...
Returning to the starting point, we find that my two most severe usability problems are basically "technical problems" which typically lie beyond the scope of traditional usability efforts. It's a bit like the old wisdom that your car has to have four wheels before you can drive it. In this metaphor, crashes mean that your car frequently breaks down en route. Thus, it makes little sense to improve an application's further usability until these two problems have been solved. By the way, missing functionality can be compared to driving in first gear only – also not a very pleasant outlook... Nevertheless, item three of my list of usability problems focuses on usability and reminds us how important it is to place the users and their needs at the center of the development process.