Design Considerations for Consumer Products

Some principles for designing consumer-product UIs are independent of the product's domain. This section covers some of these principles. See Information Appliances and Beyond: Interaction Design for Consumer Products [1] for more information.

Simplify

Simplifying UIs is an objective for all designers. For consumer products, you can make a trade-off of functionality and choice against simplicity.

Functionality Versus Simplicity

The more functionality included in a product, the more difficult it is to learn and to use. On the other hand, gratuitous elimination of functionality can lead to a product that is too limited to support consumers' needs. Strive for the functionality threshold—the right collection and number of features to strike a balance between functionality and simplicity.

app Developers and MIDP Implementors

Recommend: Java graphics bulb2_icon.gif Use the 80/20 rule: Identify the 20 percent of the functionality that will meet 80 percent of the consumers' needs and optimize your design accordingly. After you have supported 80 percent of the consumers' needs, you can decide what, if any, of the remaining functionality to include based on other criteria (such as competitive edge and price). Do not change your design to provide the same level of access to these functions as to the critical functionality.

Choice Versus Simplicity

Choice is useful when it is appropriate, but too much choice can create a complicated, perhaps overwhelming, situation. For example, consider replying to an email. An email app could give you the choice of replying to the sender and including the original mail in the reply, replying to the sender without including the original mail, replying to everyone who received the original mail and including the original mail in the reply, and replying to everyone who received the original mail without including it in the reply.

app Developers and MIDP Implementors

Consider: Reduce choice by providing reasonable defaults and removing nonessential options. For example, MIDlet suites can contain one or more MIDlets. A MIDlet suite containing multiple MIDlets forces the consumer to choose which MIDlet to run. If a MIDlet suite contains a single MIDlet, a MIDlet implementation could simply launch the suite, relieving the consumer of having to "choose" from a single element list. A MIDlet implementation that removes that choice point has a simpler design and meets consumers needs.

Make It Predictable

Usability testing has shown that consumers are much happier with systems that are predictable, even at the cost of efficiency.

app Developers and MIDP Implementors

Strongly Recommend: Java graphics bulb1_icon.gif Design your MIDP implementation or MIDlet so that consumers can predict what will happen when they take an action. Consumers rarely read documentation.

For example, assume that an address tutorial app and an email app on a mobile phone have menus that display the available operations, and the address tutorial has a menu element called New Entry for adding a record. The question for the email app is whether its list element for writing a new message should be called Write or New Message. Using New Message is parallel to New Entry in the address tutorial, which makes it an attractive option. It makes the address tutorial and email apps more consistent. Consumers, though, do not think about creating a new message; they think of writing to someone. For them, Write would probably be a better predictor of the command's behavior.

Recommend: Java graphics bulb2_icon.gif If you must choose between predictable and efficient, choose predictable. Predictability is a better investment than efficiency.

MIDP Implementors

Recommend: Java graphics bulb2_icon.gif Publish the runtime behavior of your MIDP implementation. This will help developers understand the conventions and behavior of your device so that they are better able to make their MIDlets predictable to users of your device.

Streamline Important Tasks for Efficiency

app Developers and MIDP Implementors

Recommend: Java graphics bulb2_icon.gif Minimize the amount of navigation and user interaction required to complete frequent or crucial tasks. These operations should require as little overhead as possible.

When you consider this recommendation remember that predictability is more important than efficiency in a consumer product. One way to minimize navigation is to design apps with shallow hierarchies so that consumers do not find themselves going from screen to screen to screen, and then back, back, back.

app Developers

Consider: If an app requires a sequence of steps from which consumers may need to retreat, enable them to go back multiple steps at a time in addition to returning to the previous screen.

Make It Responsive

Consumers expect immediate response to their input. When a response is not immediate, they can become annoyed, repeatedly press buttons, or assume the device is broken. They may stop using the device.

app Developers and MIDP Implementors

Strongly Recommend: Java graphics bulb1_icon.gif Have the device respond so that consumers are confident that each of their actions was received. For example, the device could confirm button presses with a click sound and in some circumstances an app might use visual feedback to tell consumers the system got their input.

Strongly Recommend: Java graphics bulb1_icon.gif Avoid blank screens. Consumers think that a product is faster if things keep happening on the screen, as opposed to not showing anything until an operation is done.

Strongly Recommend: Java graphics bulb1_icon.gif Minimize delays and if there is a delay give appropriate feedback. For example, display an animated indicator when downloading information, preferably one that shows how the operation is progressing. Providing dynamic feedback to consumers during delays keeps them engaged.

Responsiveness starts with immediate feedback and goes beyond it to intelligent responses.

MIDP Implementors

Consider: Have the product respond to common activities in a way that makes life easier for the consumer. For example, launching an app is a common activity. If a MIDlet suite contains a single MIDlet, it makes the consumer's life easier if the device automatically runs the MIDlet when the consumer launches the MIDlet suite (as mentioned previously).

Provide Constant, Unobtrusive Feedback

The users of consumer products need reassurance that the device is functioning correctly, even when nothing important is going on.

MIDP Implementors

Strongly Recommend: Java graphics bulb1_icon.gif Ensure that something on the screen always shows that the product is on. The indicator should not be annoying or distracting. It could be something like a connection graphic or a power light.

For example, most mobile phones have a signal strength indicator, which is active when the phone is on. Its feedback is crucial when making phone calls. The indicator is positioned so that it does not interfere with the display of other information. Screenshot shows the signal strength indicator in the MIDP Reference Implementation.

Screenshot Signal Strength Feedback on a Mobile Phone

Java graphics 01fig04.gif


app Developers and MIDP Implementors

Consider: Animation and sound can convey feedback to the consumer. In some cases, a slow animation might be more unobtrusive than other types of feedback. For example, an animation indicating that a product is connected to a network does not have to change quickly; it is more effective at a slow, even pace.

Screenshot shows the images for a slow, even animation that indicates network activity.

Screenshot Animation Indicating Activity

Java graphics 01fig05.gif


Make Everything Interruptible

Consumers should always be able to cancel, power off, or simply interrupt the device in order to do something else, even when there is a message that requires a response on the screen or they are in the middle of a task. If a person is in the middle of an activity, the consumer should be able to start over at the beginning of that activity without penalty.

app Developers and MIDP Implementors

Strongly Recommend: Java graphics bulb1_icon.gif Enable consumers to interrupt an app no matter what state it is in.

For example, when a PDA shows a modal alert (a message on a screen that the user must dismiss), the consumer should be able to dismiss it not only by tapping a particular button but also by tapping outside the alert. Similarly, if a consumer is writing an email message and wants to go to another app, the device should automatically save the message as a draft without displaying error messages or prompts. Allowing a user to interrupt anything keeps control of the product in the hands of the consumer. People are more comfortable with products they control.

Minimize Interruptions From MIDP and MIDlets

Consumers should not be interrupted and required to respond unless it is absolutely necessary. Confirmation messages, unnecessary feedback, and error messages that require a response detract from the user experience.

app Developers and MIDP Implementors

Consider: Restrict interruptions to critical information.

Consider: Use less-obtrusive mechanisms, such as a timed alert, for providing feedback that is not critical. A timed alert is a screen with a message for the user; it is visible briefly and does not require a response. For example, if the consumer is in a Preferences screen and presses Save, a timed alert could be used to confirm that the preferences were saved.

It can be difficult to decide when a particular piece of information is critical. For example, consider consumers downloading apps onto mobile phones. If network connections are lost, the losses can be considered critical information that lets consumers know that they should reconnect. Another approach, though, is to have the devices automatically try to reconnect and unobtrusively display that status. The second approach keeps interruptions to a minimum. When deciding how to handle this situation, consider the cost to the consumer for the connection, as well as the consumer's time.

app Developers and MIDP Implementors, Continued

Strongly Recommend: Java graphics bulb1_icon.gif When using modal alerts to give consumers critical information, do not make the device appear to be broken. Use plain language to explain the problem. Test your error messages with real consumers.

This approach allows consumers to decipher critical information and maintains their confidence in the device.

Check Your Designs with Others

In any design process, it is valuable to periodically check your designs against the wants and expectations of your audience. You could do this by comparing your design to product-marketing requirements, visiting prospective customers, and evaluating competing products.

app Developers and MIDP Implementors

Consider: Involving consumers in exploratory studies, blank model studies, and surveys are some of the best ways to check how well consumers like your product design. (Blank model studies allow consumers to design a product from scratch, without being given a design to start with. They remove a designer's preconceptions from the consumers' view.)

See "Bibliography" on page 243 for sources of information on these techniques.



   
Comments