Wednesday, November 28, 2012

Usability problem of the day (microwave oven controls)

In the courses I teach about human-computer interaction, I typically open each class with an example of a usability problem. I'm putting these online, in case others find them useful.

This is the control panel on my microwave oven.

What do you use a microwave oven for? Most of the time I use it for one for two things: for reheating food or for setting a timer. Here's how it works.

To cook for some amount of time:
Press "Time Cook".
Enter the time on the keypad--minutes, then seconds.
Press "Start/Pause".
The oven starts. When time is up, the oven beeps for a few seconds. I can cancel before time is up by pressing "Clear/Off".

As a shortcut, to cook for a specific number of minutes (1..6):

Press the corresponding keypad number--e.g., for two minutes, press "2".
The oven starts. When time is up, the oven beeps for a few seconds. I can cancel before time is up by pressing "Clear/Off".

To set a timer to go off in some amount of time:
Press "Timer On/Off".
Enter the time on the keypad--minutes, then seconds.
Press "Timer On/Off" again.
The timer starts. When time is up, the oven beeps continuously until I press "Timer On/Off" for the third time. I can cancel before time is up... by pressing "Timer On/Off".

You can probably imagine the frequent mistakes I make.
  • After entering minutes and seconds for the timer, I sometimes press "Start/Pause" rather than "Timer On/Off".
  • To turn off the timer beeping, I sometimes press "Clear/Off" rather than "Timer On/Off".
  • To cancel the timer, I sometimes press "Clear/Off" rather than "Timer On/Off".
  • I occasionally press "7" or "8" to cook for seven or eight minutes; nothing happens.

I use this example to illustrate a few different concepts.

Procedural consistency: Procedures that are conceptually similar should be executable in similar ways. Setting a fixed amount of time, for example, is part of both of my most common uses; it's just that in one use the oven isn't heating anything.

Function overloading and complexity: The "Timer On/Off" button has four distinct functions: allow for entry of an amount of time; start the timer; cancel the timer process; turn off the beep at the end. The specific function that's activated is sensitive to context. It may seem simple--use the "Timer On/Off" button to do everything timer-related--but given the inconsistency with the cooking functions, this isn't always easy to remember. There's also a strong dependence on modality in the interface, which is not always helpful.

Arbitrary limitations on functionality: Is there a reason that the 7, 8, and 9 buttons can't be used as shortcuts? Nothing obvious springs to mind, except perhaps safety.

The grammar of tasks: The typical command line interface requires a specific grammatical form: command, command options, objects. To list the contents of a directory in Unix, for example, you can type "ls -a pathname". Most graphical user interfaces rely on a different grammar: objects, action. You click on some file icons and drag them to the trash can to delete them, for example. The microwave oven's "command" grammar is complex and inconsistent. In most cases it's delimiter1, options, data, delimiter2, with delimiter1 sometimes but not always being the same as delimiter2. In a few cases (the shortcuts) we have simply action, where the keys otherwise used for entering data do double duty.

No comments:

Post a Comment