The potential of pattern languages as a vehicle for the dissemination of human-computer interaction design knowledge has been recognized within the CHI community for a number of years, e.g. . This potential is based on the ideas of the architect Christopher Alexander, for recording the designs of 'living buildings' [1-2]. Patterns are developed to record the invariant property that must exist in a design detail which resolves the conflicting social, cognitive, and technological forces which are ubiquitiously present in constructions of that type. Patterns are interlinked into a network (a pattern language) so that details that are required to complete a design may be identified, and the larger issues surrounding a particular design decision may be recognized.
These ideas have been taken up by the object-oriented computing community [5-6], developments there being recorded in the series of Pattern Language of Programming (PLoP) conferences. In that community, it is the usefulness of patterns as a way of recording reusable design that has dominated. However, as Alexander pointed out in an invited address to OOPSLA '96, there are other, deeper aspects to patterns. As he envisaged pattern language, it records an aesthetic of design which makes for liveness, that 'quality without a name' which supports human well-being. Alexander has challenged the computing community to explore this aspect, and clearly, there is most scope for this exploration within the CHI community.
To promote the development of pattern languages for interaction design.
To refine and develop the application of pattern languages in this area.
To develop an understanding of the relationship between interaction design and software engineering patterns.
To extend the community of pattern writers.
Detailed description of topicA first workshop on pattern languages in human-computer interaction (HCI) took place at CHI'97. It spread the idea of interaction design patterns to the CHI community, but one of its central findings was that there was still a vast variety of views as to what interaction design patterns could be.
The next major meeting on interaction design patterns took place at ChiliPLoP'99. Jan Borchers, one of the proposers for the present workshop, attended, and found that he was the only "CHI" person around! It turned out that there were very different views of interaction design patterns in the software engineering community present at that workshop. It became clear that interaction design patterns would be a good means to simplify communication between software engineering and HCI. The workshop also produced an initial attempt of a definition and classification of interaction design patterns .
These initial attempts were refined and extended substantially at the INTERACT '99 workshop, which Richard Griffiths, Lyn Pemberton, and Jan Borchers co-organized, and in which two members of the CHI'97 workshop, John Thomas and Sally Fincher, participated. Particular issues were recognized at this workshop:The workshop created, among other results, an example format for user interface patterns, and was rated very successful by the participants. Many of them plan to come to the upcoming CHI2K workshop.
That interaction design patterns have social, cognitive, and technological aspects.
That different levels of interaction design patterns need to be inter-networked.
That a classification scheme and method are required. An initial classification scheme was proposed.
The workshop at CHI2K will build on these previous efforts, and push the field of interaction design patterns further. In particular, placing emphasis on Alexander's deeper aspects of patterns and attempting to incorporate his latest work could help to resolve issues such as the following:
- Formal versus informal presentation of interaction design patterns. Alexander's original intention was very much directed at user-participation and the format of his patterns was designed to allow that. Is it more appropriate to use informal patterns for user-participation and more formal patterns for human factors to developer cooperation, and, further, perhaps advanced pattern languages for dealing with technically complex interactive systems?
- How best to find interaction design patterns. The appropriateness of 'antipatterns'. Where to look for interaction design invariants.
- Levels of interaction design patterns. Some interaction design patterns relate to interface widgets, others to social and cognitive aspects of interaction design. Comprehension of these levels will assist with the development of interaction design patterns and their relationship with software engineering patterns.
- Patterns and pattern languages. Alexander implies that "when the patterns [are] connected to one another in a network, ... they form a language", and that a pattern language contains patterns and patterns about patterns. This opens the question of how to reconcile patterns from different sources so that they become part of a language.
- How to structure an interaction design pattern language. This is important to support the maintenance and retrieval of patterns, but what organizing principles should be applied?
Why User Interface Patterns?The succession of workshops at major international conferences clearly shows that this is a topic in which interest is developing. On the face of it, building design would appear conceptually to have much in common with interaction design, both being concerned directly with human use of designed artefacts.
It is surprising, therefore, that it has been object-oriented software designers, supporting the design of software architectures, and not interaction designers who have been first to take up the pattern language concept. Interaction design patterns will improve communication with these software designers. However, interaction design can benefit more directly from its common concern with architecture, to perhaps catch up with this surprisingly rapid development of software architecture patterns.
Christopher Alexander has continued developing his ideas on design, and his new book on "The Nature of Order" may become available before the workshop. If it does, it will probably represent a major event in the development of design theory, and an examination of its implications for interaction design may be a way of creating stronger conceptual links with other design disciplines.
Facilitation of Workshop ActivitiesIt is envisaged that many of the participants will be familiar with each others' positions from the position papers as well as participation in previous workshops and contribution to discussion lists (for example, firstname.lastname@example.org, which came out of the INTERACT'99 workshop). This should assist in creating a productive atmosphere at the workshop.
All of the workshop organizers have been participants in previous runs of the activities proposed, and will be responsible for facilitating the breakout groups formed and ensuring discussion during the workshop. They have all organised and run workshops at major conferences.
Pre-workshop ActivitiesParticipants will be encouraged to begin the discussion through a mailing list set up to support the workshop. In addition, this web site will contain materials, and pointers to material relevant to the workshop. The position papers and example patterns submitted by participants will be made available here.
Dissemination of ResultsResults of the workshop will be presented as a poster during the CHI2K poster session, as well as a full workshop report for the SIGCHI Bulletin.
- Alexander, C. The Timeless Way of Building. New York: Oxford University Press, 1979.
- Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M., Fiksdahl-King, I.,& Angel, S. A Pattern Language. New York: Oxford University Press, 1977.
- Borchers, J. O. CHI Meets PLoP: An Interaction Patterns Workshop. ACM SIGCHI Bulletin, January 2000.
- Casaday, G. Notes on a Pattern Language for Interactive Usability. Proceedings of CHI'97.
- Coplien, J. O., and Schmidt, D. C. (eds.) Pattern Languages of Program Design. Reading, Mass: Addison-Wesley, 1995.
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Reading, Mass.: Addison-Wesley, 1995.