97 Things Every Programmer Should Know

(Chris Devlin) #1

Collective Wisdom from the Experts 133


Cues are different from instructions: cues tend to be hints; instructions are
verbose. Cues occur at the point of interaction; instructions appear before the
point of interaction. Cues provide context; instructions dictate use.


In general, instructions are ineffective at preventing error. Users tend to assume
that interfaces will work in line with their past experience (“Surely everyone
knows what ‘July 29, 2012’ means?”). So instructions go unread. Cues nudge
users away from errors.


Another way of avoiding errors is to offer defaults. For instance, users typically
enter values that correspond to today, tomorrow, my birthday, my deadline, or
the date I entered last time I used this form. Depending on context, one of these
is likely to be a good choice as a smart default.


Whatever the cause, systems should be tolerant of errors. You can facilitate this
by providing multiple levels of undo to all actions—and, in particular, actions
that have the potential to destroy or amend users’ data.


Logging and analyzing undo actions can also highlight where the interface
is drawing users into unconscious errors, such as persistently clicking on the
“wrong” button. These errors are often caused by misleading cues or interac-
tion sequences that you can redesign to prevent further error.


Whichever approach you take, most errors are systematic—the result of mis-
understandings between the user and the software. Understanding how users
think, interpret information, make decisions, and input data will help you
debug the interactions between your software and your users.

Free download pdf