Patterns in interaction design
Diane J Love
My opinion is that use of patterns in interaction design is a good idea.
Pattern languages were developed to document the design of objects which
users can see and interact with in the context of building architecture.
Pattern languages were then adopted by OO practitioners to design aspects
of software development, architecture and even project management which
are not evident to the user. It is natural to expect pattern languages
to be applicable to interaction design in software and hardware.
The flower and the seed
In applying a pattern language to interaction design, I consider it important
not to lose sight of Alexander's own justification for developing a pattern
language. This can be found in "The Timeless Way of Building":
Suppose you are trying to create a flower - a new kind of flower. How
will you do it ? Of course you will not try to build it cell by cell, with
tweezers. You know that any attempt to build such a complex and delicate
thing directly would lead to nothing… If you want to make a living flower,
there is only one way to do it - you will have to build a seed for the
flower and then let it, this seed, generate the flower… Only those indirect
growth processes, in which order multiplies itself, only these kinds of
processes can generate this biological complexity.
Alexander goes on to propose the pattern language as the counterpart
in building to the genetic code which defines how the seed grows into the
Pattern languages are independent of scale
Alexander's pattern language shares something with the science of fractals
which demonstrates how an infinitely complex structure can be defined by
a small set of rules and parameters which are applied at every scale. We
can use our understanding of fractals to to understand objects in nature,
such as plants, whose growth is defined by the same rules at many different
Similarly, Alexander's "A Pattern Language" applies the same technique
at all sizes in building architecture from a chair to a metropolis the
size of London.
And yet Alexander's " The Timeless Way of Building" was published in
1979, well before the first book on fractals, Benoit Mandelbrot's "The
Fractal Geometry of Nature" (1982). For a complete account of the underlying
rules and fractal nature of plants growth, see "The Algorithmic Beauty
of Plants" by P. Prusinkiewicz and A. Lindenmayer (1990).
We already use patterns in design
One of the strengths of pattern languages is that they are arguably nothing
new - they are a natural human method of operation, as Alexander shows
us time and again in examples of human habitations from around the world.
We gain experience in an area by recognising problem patterns we have solved
before and attempting to apply the solutions that worked before again.
We attempt to convey our experience to others by teaching them to recognise
the patterns we recognise and their solutions.
Some GUIs have provided patterns which have been applied repeatedly (eg
drawing package tool palette, the Mac system Font / DA mover), even before
they were documented in any user interaction pattern language.
GUI widget libraries in conjunction with a GUI style guide provide small
- scale patterns for interaction.
Pattern languages offer something new
Making best use of people
People are excellent at recognising patterns in every context - faces,
pictures, speech, accents, plots of films and novels, interaction designs
and management structures are just a few examples of things we can recognise
effortlessly and instantly. A design methodology where recognising patterns
is a central activity harnesses this human skill to best effect.
Merely naming a pattern turns it into a reusable component, not only in
literature and design documentation but also in informal and even verbal
discussions between designers. Without the name we probably end up making
up a nickname for it (eg "Mac Font DA mover selector") and end up having
a parochial pattern language, in this case only understood by people who
used Macintoshes some years ago. Publishing a set of named patterns
(eg "Choice of sublist from a long list ") allows everyone to use the same
The hierarchical and hyperlinked organisation of patterns (particularly
in hypertext rather than paper form) into a pattern language increases
communication of experience by allowing the user of a pattern to navigate
around the design problem:
and thereby to find solutions which may be innovative in the given context.
to different contexts of the problem;
to different manifestations of the problem;
to different components of the problem;
In using a pattern language to document the solution to a design problem,
we are obliged to focus on similarities to problems which have been solved
before, rather than focussing exclusively on the aspects which are unique
to the problem.
Alexander proposes that each element of a structure be "shaped by an autonomous
process which allows it to adapt correctly to the whole," where chaos is
avoided by the regulation of the pattern language.
He also expects all the inhabitants of the structure to be involved in
this process, with the same regulated autonomy.
Each specimen of a plant will grow differently according to the precise
details of its environment and events in its lifetime, yet always governed
by its genetic code.
Perhaps this is Alexander's greatest challenge to the interaction designer.
The pattern methodology can be extended to bad patterns as well as good,
permitting a complementary route to improving designs by recognising bad
design patterns and applying known solutions.
A position paper prepared for the Usability
Pattern Language Workshop at Interact