CS 552, Spring 1998
Guidelines for User-Centered Design
From C. Pancake, 1997,"Improving the Quality of Numerical Software
through User-Centered Design," in The Quality of Numerical
Software: Assessment and Enhancement, ed. R. Boisvert, Chapman & Hall,
London, pp. 44-60.
- Focus on the users and their needs.
Before even beginning to plan new software, ask these questions:
- Will this do something that users do now? If so, what constrains
the productivity of their current method?
- Else, is this something that users have specifically asked for?
If so, why aren't they doing it now? (e.g., too time-consuming,
needs special OS support, etc.)
- Else, how are you going to convince them they need it?
- Carry out a detailed analysis of users' tasks and task
The first step in UCD is to study the intended audience. Visit customer
sites and meet with potential users (installers and support staff, as well
as end users). Make sure you understand the users' current task structure:
how the users currently accomplish the tasks, what their underlying
logical model is and how it is organized into sub-tasks, and typical strategies
and problem work-arounds. Then, make an educated guess about what their
future strategies will be (remember that using a system changes
Based on the task analysis, use a task-oriented organization for the
interface. Establish what users tasks need to be supported. Visually
identify the key tasks in some way, and make the tasks self-explanatory.
- Carry out early testing and evaluation with users.
Expose representative groups of users to paper prototypes and ask them
what they expect will happen, or what they think a representation means.
Capitalize on the phenomenon of attention as a searchlight. Pay
close attention to where users are focusing their attention;
nothing else is being
processed mentally. Use this information to restructure the interface
so that it seems more "natural" to the user.
- Design iteratively with many cycles of design / user-test /
Capitalize on the phenomenon of selective
attention by watching how user attention shifts from one area of the
interface to another during tests. Use this information to avoid elements
that are distracting. If a switch in attention needs to be made, make
sure it has significant content. Use think-aloud protocols so you can
understand the users' logic. If something isn't clear, always
re-design it, even if you're convinced that it should have been obvious
to the user. Refine the design incrementally, so that you benefit from
each round of testing.