Tuesday, August 18, 2009

A few thoughts on Consistency

While going through the Apple human interface guidelines, the section on consistency of the interface spurred some thoughts. This has been an discussion-provoking topic within interaction and interface design for some time and most especially for voice interaction.

Many times I've altered a recently seen screen heading, a repeated phrase of instruction, a past sequence of events, or a previously-used command for context and have been accused of "being inconsistent". Most of the time, I've been able to effectively point out how the context allows or even demands the change. Other times I've simply had to say "let's see what data we get." Other, other times I've had to accede to uneducated demands. And I'm sure I will have those arguments again, but, for the record and perhaps the education of a few, here are reasons to be consistent and times where consistency is bad.

Consistency is important for:

- Meeting user expectations and allowing predictability. A thing that looks like a button should be press-able or click-able. If a task seems like it could be done more than once, users should be able to, easily. Be consistent with the good and useful things users know and expect that they learned elsewhere.

- Promoting understanding and predictability of meaning. Users want to get what is happening and will happen. In speech, this is why using good synonyms is so important. We wouldn't (I hope!) dream of telling the user, "Say the same thing you did last time." We'll allow "checking", "checking account", and "debit account" all to mean the same thing. Because they do. Consistency here is the continuity of meaning, not the continued use of identical words.

- Infrequently given instructions and commands/actions. If a user needs to remember something, it should be predictable between tasks and especially sessions.

Consistency is bad when:

- It becomes distractingly repetitive. Hearing or seeing a menu for a third time in a task sequence shouldn't be like the first instance. Repeated instructions and events are easily ignored or glossed over. Items offered in context are more easily absorbed.

- It makes the user wonder if they are in a loop or a previous action was ignored. Let the interaction adapt and implicitly let the user know that the UI is "aware" of the evolving engagement that is occurring.

- It mimics behaviors we would consider highly unusual in people. I.e., "You can choose either your savings account or your checking account. So, just say 'savings account' or 'checking account'." A person being that consistent with the word 'account' would be looked at sideways. Implicature works for machines, too. Better: "You can choose either your savings or your checking account. So, just say 'savings' or 'checking'." Even better: "You can choose either your savings or checking account. So, which one?"

The moral here is, like other design principles, consistency is a fantastic and powerful concept to employ in the right places and ways. Used thoughtlessly, it can cause confusion and discomfort. If you're unsure, study it, ask questions, and most of all, bounce your design ideas off others and listen to feedback. Consistency is not a hammer to use to pound on a design you simply disagree with. In fact, doing so usually is a sign of ignorance of proper design practices. And no one likes to seem ignorant.

Design well.