Position Statement Diane J Love page 1of 2 Patterns in interaction design Position statement by 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 flower. 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 scales. 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. Position Statement Diane J Love page 2of 2 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. Naming patterns 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 terminology. Organising patterns 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: to different contexts of the problem; to different manifestations of the problem; to different components of the problem; and thereby to find solutions which may be innovative in the given context. Reusing patterns 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. Adaptability 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. 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. He also expects all the inhabitants of the structure to be involved in this process, with the same regulated autonomy. Perhaps this is Alexander's greatest challenge to the interaction designer. Antipatterns ! 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.