CHI 97 Electronic Publications: Late-Breaking/Short Talks
Notes on a Pattern Language for Interactive Usability
George Casaday
Marcam Corporation
95 Wells Avenue
Newton, MA 02159 USA
george.casaday@marcam.com
ABSTRACT
This paper explores a way of applying the emerging idea of
pattern based design to creation of usable interactive
systems. It defines patterns based on traditional usability
attributes. It describes examples of three pattern types:
simple (one attribute), intrinsic (attribute combinations),
and circumstantial (external constraints involved).
KEYWORDS
interaction, usability, pattern, user interface
© 1997 Copyright on this material is held by the authors.
INTRODUCTION
An important factor in improving design quality for
interactive systems is our effectiveness in capturing and
communicating the essential elements of good designs.
There have been many partially successful approaches to
this task: study of exemplars, practice under the instruction
of a master, design principles to capture the master's
implicit knowledge, design rationale for organizing
application of principles to cases, design guidelines making
principles specific, and software toolkits embodying
guidelines.
An approach that has recently become prominent in object
oriented software development is the use of patterns
[1,5,7,9,10] to document the essentials of design solutions
in a form that can be understood, learned, and applied to
situations that are similar to existing cases but always
subtly different. Many fields use patterns under various
names. The pattern approach to design was first defined by
the architect Christopher Alexander [2,3] twenty years ago.
Similar structures appear in organizational behavior [14] as
archetypes, in history of science [11] as paradigms, in
military theory [15], in studies of mythology [13] again as
archetypes, and even in a basic writing text [8] as
templates. There is reason to believe from a cognitive
point of view [4] that patterns might be a particularly
effective way to organize complex information.
In interaction design, templates [6] are similar to patterns
and have been proposed for the same purpose. The
important advance needed to move from exemplars and
templates to patterns seems to be a vocabulary that is
specific to design for usability, simple enough to learn, and
with a broad enough range of application. This paper
suggests a vocabulary derived from the usability literature
[12] and proposes a classification using the vocabulary.
PATTERNS AND PATTERN LANGUAGES
There are many variations on Alexander's [3] original
definition of pattern, but the main elements are these, as
illustrated with a superb example from Alexander.
-
- Name: A name for the pattern
- Example: Window Place
- Context: A context for the design problem
- Example: Design of a residential room
- Forces: Forces which require resolution
- Example: People want to sit and also be in daylight.
- Problem: A problem growing from the forces
- Example: If all seating is away from the windows,
then these forces are not resolved, and people will
always be dissatisfied in one way or the other.
- Solution: A known solution, proven in practice
- Example: Build seating into the window -- the
traditional window seat.
A pattern language is a collection of patterns that can solve
all the problems in a particular domain. It may include a
method for connecting patterns into whole "architectures"
for the domain. (Less ambitiously, a "pattern system" [5]
covers only parts of a domain.)
USABILITY PATTERNS
There are many candidates for use as elements of a pattern
language for usability, for example user interface elements
(widgets), task domains, interaction styles (individual,
collaborative), or types of users. This paper proposes a
pattern language based on the following adaptation of a
well know vocabulary of usability attributes [12].
- Learnable
- Memorable
- Efficient
- Reliable
- Flexible
- Automated
- Understandable
- Subjectively Satisfying
The exact elements in this list are not so important as the
idea that they represent dimensions of usability that can
define the forces underlying a design problem. They will
always need to be interpreted for any development project.
To begin combing this limited vocabulary into sentences,
we rate the importance of each. For this paper we rate each
as high, medium, or low, although more fine-grained
numeric scales are also effective. The combination of
forces (ratings) in the context of a project defines the
problem. For example, if a system has to be very easy to
learn (Learnable) and very fast in use (Efficient), then the
designer has a problem to solve because the two priorities
are likely to conflict. As another example, if Learnable is
rated high and Understandable also high, then the problem
is easier to solve, and indeed there is a known solution –
providing the user with a good conceptual model. Because
there can be only a limited number of combinations of high
ratings on the limited list of attributes, we can hope for
known solutions to exist for many of them and for a
focused search to uncover many others.
TYPES OF USABILITY PATTERNS
This section identifies three types of usability patterns,
Simple, Intrinsic, Circumstantial, each with an example.
Simple Patterns
One usability attribute dominates, and solutions are easy.
- Name: "Fast and furious"
- Context: GUI supporting variable, high-skill work
with improvised tasks, as in a graphic editor
- Forces: Efficiency is most important by far.
- Problem: Support very fast manipulations.
- Solution: Minimize action at the articulatory level
through button bars, toolboxes, accelerators.
This pattern can be observed in almost any
modern word processor or graphic editor.
Intrinsic Patterns
Multiple usability attributes conflict or support. These may
pose difficult problems, but many are already solved.
- Name:"Airport passenger"
- Context: An interactive system requiring high
skill performance on first encounter
- Forces: Efficiency, reliability, and immediate
learning of particulars are all required.
- Problem: Balanced satisfaction of all requirements
- Solution: Standardize components and procedures,
leaving only unavoidable variation case to
case. This solution can be seen in airports
around the world, and in the consistency of
GUI elements across platforms.
Circumstantial Patterns
Usability attributes must be achieved, but external factors,
constrain the solutions. These may be very difficult as the
constraints may be unique and require a novel solution.
- Name:"Nouveau Vendo" (The whimsical name is
from a configuration of vending machines
with a single detached money insertion device
for a set of machines. One user searched each
machine unsuccessfully for a way to insert
money and finally had to call for help.)
- Context: External constraints require a system to
be replaced by a new version with certain new
features.
- Forces: An overlearned behavior must be modified
in a situation that is very similar to the
learning situation.
- Problem: Avoid capture or concept errors arising
from overlearned or automatic behavior.
- Solution: Make two systems either very different
or completely consistent. Avoid almost
consistent designs. Don't let small variations
creep in through late design changes or design
compromises.
FUTURE OPPORTUNITIES
A pattern language is quite different from standards and
guidelines in the way that it takes on a life of its own as
soon as it is in use. Anyone can add patterns to extend and
evolve the language. The result is collaboration rather than
individual invention. The language becomes a shared tool
for design and communication. Some ways of continuing:
- Look at combinations of usability attributes to see
which are difficult to design for and which are easy.
Look for example applications of the combinations.
- Analyze existing computer applications to see what
usability patterns have implicitly driven the design.
- Look for usability patterns in the real world. When a
system has usability problems, try the idea that there
are forces that are difficult to resolve before assuming
that the designer was careless.
- Document new patterns. They have most value when
they are shared. Often all that is required is a hint for
others to gain insights into puzzling situations.
I look forward to seeing what contributions appear, for, in
Alexander's words, "The central task ... is the creation of a
single, shared, evolving pattern language, which everyone
contributes to, and everyone can use."
ACKNOWLEDGEMENT
My thanks go to Tom Moran for introducing me to
Christopher Alexander's ideas and for inspiring this work.
REFERENCES
1. ACM. Special Issue on Software Patterns.
Communications of the ACM 39, 10 (October 1996).
2. Alexander, C., Ishikawa, S., Silverstin, M. A Pattern
Language. Oxford University Press, New York, 1997.
3. Alexander, C. The Timeless Way of Building. Oxford
University Press, New York, 1979.
4. Barsalau, L.W. Cognitive Psychology. Lawrence
Erlbaum, Hillsdale, NJ, 1992
5. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad,
P., Stal, M. A System of Patterns: Pattern-Oriented
Software Architecture. John Wiley & Sons, 1996.
6. Casaday, G. Rationale in Practice: Templates for
Capturing and Applying Design Experience. In Design
Rationale (Editors, Moran, T., Carroll, J.), Lawrence
Erlbaum, Mahwah, NJ, 1996
7. Coplien, J. O., Schmidt, D.C. (Editors.). Pattern
Languages of Program Design. Addison-Wesley, New
York, 1995.
8. Esch, R.M., Walker, R. The Art of Styling Paragraphs.
Macmillan Publishing, New York, 1990.
9. Gamma, E., Helm, R., Johnson, R., Vlissides, J. Design
Patterns: Elements of Reusable Object-Oriented
Software. Addison-Wesley, New York, 1995.
10. IEEE. Special Issue on Object Methods, Patterns, and
Architectures. IEEE Software, (January/February 1996).
11. Kuhn, T.S. The Structure of Scientific Revolutions.
University of Chicago Press, 1970.
12. Nielsen, J. Usability Engineering. Academic Press,
New York, 1993.
13. Pearson, C.S. The Hero Within: Six Archetypes We Live
By. Harper Collins, San Francisco, 1989.
14. Senge, P. M. The Fifth Discipline. Doubleday, New
York, 1990.
15. Sun Tzu. The Art of War. (Translator, Griffith, S.B.)
Oxford University Press, London, 1971.
CHI 97 Electronic Publications: Late-Breaking/Short Talks