Pattern Language

A pattern language is a structured method of describing good design practices within a particular domain. It is characterized by

  • Noticing and naming the common problems in a field of interest,
  • Describing the key characteristics of effective solutions for meeting some stated goal,
  • Helping the designer move from problem to problem in a logical way, and
  • Allowing for many different paths through the design process.

Pattern languages are used to formalize decision-making values whose effectiveness becomes obvious with experience but that are difficult to document and pass on to novices. They are also effective tools in structuring knowledge and understanding of fundamentally complex systems without forcing oversimplification.[1]

Evolution of Pattern Languages[2]
The pattern language method was invented by an architect named Christopher Alexander, who wrote patterns about ‘good’ towns and buildings. His goal was to identify the qualities of beautiful old towns and buildings and incorporate them into new buildings and towns. What he wanted to recreate was what he referred to as ‘quality without a name’. He saw that these indescribable qualities were not the result of physical elements in towns and buildings, but were instead created through the relationships between the elements. He recorded the recurring relationships as ‘patterns’.

In addition, he argued that, in order to create wonderful locations and places, the people that live there and know the area best must be involved in the design process. In order to do so, he looked for patterns in the way architects design buildings and wrote them in such a way that people outside of the architecture field could easily understand. By having the patterns as a common language, it became possible for architects and residents to think about and discuss the designs together. This was during the 1970s.

Approximately ten years later, the pattern language method was adapted within the field of software design where it gained huge popularity. Software patterns or ‘design patterns’, as they are commonly referred to in the field, describe practical design knowledge in software. Subsequently, patterns were applied in many more domains. People began to create patterns about how to design good teams and organisations, patterns about pedagogy, patterns for introducing new ideas in an organisation , etc. We have also created pattern languages on various topics such as learning, presentation, collaboration, policy design, social change, more everyday topics such as cooking, and patterns in the welfare domain that deal with the issue of dementia.

These pattern languages focus on ‘human actions’. The development of pattern language has thus far witnessed the rise of, and progress through, three generations: architecture, software, and human action. Whereas the first two generations were about designing ‘something’ out there, the human action pattern is a new type of pattern language that deals with how to design your own actions.

Although the subject of the patterns differs in each generation, they are all ultimately doing the same thing. Every pattern language describes how to create a better output in the context-problem-solution-consequence format, and assigns a name to each piece of knowledge. This is achieved in order to explicitly think and talk about design knowledge.

Three Generations of Pattern Language[3]
Pattern languages as originally formulated were vehicles seeking to convey a holistic purpose, to direct designed objects and processes towards a specific quality; hence, instruments for sense-making and purposive design. They aimed to support self-generated societal thriving by articulating fundamental design principles to guide holistic and life-serving applications within a given domain. Subsequently, setting aside somewhat Alexander's moral preoccupations to concentrate on technical design improvements, pattern languages were quickly and widely adopted as a standard knowledge format in software programming. Their use became standard practice in object-oriented programming, where patterns are a format for exchange and reproduction of building blocks among experts, resolving complex communication issues within this domain. This consecrated their role as lingua franca: formalizing tacit knowledge within specific domains of practice. They later entered interdisciplinary fields such as design of human-computer interface and technology-enhanced learning. In these fields they facilitate communication of expert knowledge across specialized disciplines, partly reflecting Alexander's original intention to undermine architects' control over construction processes by making their specialized technical knowledge accessible to wider groups of stakeholders. Pattern Languages subsequently expanded into many other domains of activity: pattern theorist Helmut Leitner estimates around 30,000 pattern languages and half a million patterns to exist in domains as varied as movie costume design, organizational design, fire fighting, scrum, and music composition (Leitner 2014).

Pattern Language

Pattern Languages subsequently expanded into many other domains of activity: pattern theorist Helmut Leitner estimates around 30,000 pattern languages and half a million patterns to exist in domains as varied as movie costume design, organizational design, fire fighting, scrum, and music composition (Leitner 2014).

Three generations of Pattern Language

Takashi Iba identifies three distinct phases, or generations in the development of Pattern Languages since the end of the 1970s.20 He distinguishes these in relation to their 'object of design’, ‘act of design’ and ‘purpose’

Pattern Language 1.0 The first generation includes Alexander's original pattern languages for settlement and building design and construction.21 The objects of design are mainly material forms. The act of design consists of a discrete and bounded initiative, such as a specific construction project. Patterns’ main purpose is to aid communication (and hence overcome power disparities) between designers and users. As descriptions or hypotheses of sets of invariant properties and systems of forces to resolve given problems,22 they are sufficiently abstract to be adapted to users’ preferences and local conditions, with each principle amenable to diverse forms of manifestation. Pattern languages of the first generation are oriented towards the practice of participatory design with a set purpose.

Pattern Language 2.0 The objects of second-generation pattern languages are non-material, intangible forms or structures such as organizations, learning programs, software or interfaces. Design acts incorporate multiple successive iterations over time. The purpose of patterns is to bridge gaps of understanding between expert and non-expert designers; they differ from those in first generation pattern languages in the possibility that non-material, intangible forms hold for successive improvement through incremental and iterative redesign. Patterns contribute to revealing, interpreting and communicating domain-specific tacit knowledge, allowing it to be understood, unpacked, and recomposed to address specific challenges and needs by interdisciplinary groups of collaborators lacking any other form of common technical language. They are themselves regularly redesigned to assist and follow adaptations and keep their edge in technical performance. Examples include those cited above in object oriented programming and related fields where programmers work collaboratively within interdisciplinary teams.

Pattern Language 3.0Third generation pattern languages have as their objects of design social processes, being oriented towards process and interaction among actors and the forms they design, the ‘how’ of design. Acts of design are again iterative, consisting of self-referential cycles of action learning through which actors learn to identify and express their own tacit knowledge, and collaborate on designing their own interactions. The purpose of patterns is to bridge gaps between people with different backgrounds, experiences, perspectives, and knowledge. They function as a medium for conversation and self-reflection, introducing feedback loops into design processes and allowing structural coupling of design and practice. Such processes foster individual development of consciousness and awareness, new forms of communication within and among groups, and new modes of innovation and action. Examples include Takashi Iba's pattern languages on creative collaboration and learning, and the Groupworks pattern language for group processes.

Pattern Language what why how.png

See Also


  1. Definition - What is a Pattern Language? Permawiki
  2. Evolution of pattern languages Creative Shift
  3. Three Generations of Pattern Language Helene Finidori et. al