What is a pattern?

Design patterns

Patterns serve as a structured method to capture and share the insights and practices of professionals. They distill effective strategies and successful solutions into accessible, repeatable formats that designers across disciplines can learn from and apply. Both scholars and practitioners value patterns because they articulate and explain quality design principles in ways that make them understandable and reusable.

The origin of the pattern methodology lies in the work of architect Christopher Alexander. He created a “pattern language” that describes meaningful design forms in urban planning and architecture, connecting them to form a cohesive system. Alexander defines a pattern as follows:

“Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.”
Alexander et al., 1977

Patterns express the relationship between a particular context (the environment), a problem (conflicting forces), and a solution (a resolution of these forces). They describe solutions at an intermediate level of abstraction—general enough to apply in various contexts, but specific enough to offer practical guidance. The fact that a solution can be reused “a million times over, without ever doing it the same way twice” underscores the adaptable and flexible nature of patterns. This quality appeals to academics for its generalizability and explanatory power, while practitioners benefit from their clarity, practicality, and ability to support human-centered, effective design solutions.


Application Across Design Fields

Though pattern thinking began in architecture in software engineering, its utility spans multiple design domains. It was first widely embraced by object-oriented software developers. In the software domain, Richard Gabriel proposed this definition:

“Each pattern is a three-part rule, which expresses a relation between a certain context, a certain system of forces which occurs repeatedly in that context, and a certain software configuration which allows these forces to resolve themselves.”

Buschmann, Henney, & Schmidt (2007) in Pattern-Oriented Software Architecture. Volume 5: On Patterns and Pattern Languages outline core characteristics common to patterns and pattern languages:

  • Each describes both a process and an outcome.

  • Each ensures that what it helps create is structurally sound and functionally effective.

  • Each explicitly addresses the tensions or forces that shape the design and its environment.

  • Each supports adaptability by describing solution spaces rather than fixed answers.

  • Each facilitates understanding, discussion, and shared language about the design challenges and solutions.

  • Each is given a specific name to support recognition and communication.

  • Each is dynamic, evolving with new insights and experiences in the field.

  • Each allows for diverse implementations depending on context-specific needs and constraints.

In addition to software, the concept of pedagogical patterns has emerged. These aim to document and share expert teaching strategies. As the Pedagogical Patterns Project states:

“Patterns are designed to capture best practice in a specific domain. Pedagogical patterns try to capture expert knowledge of the practice of teaching and learning. The intent is to capture the essence of the practice in a compact form that can be easily communicated to those who need the knowledge. Presenting this information in a coherent and accessible form can mean the difference between every new instructor needing to relearn what is known by senior faculty and easy transference of knowledge of teaching within the community.”

Today, patterns are used across a broad spectrum of fields—ranging from business and organizational development to human-computer interaction, web and interface design, digital learning environments, online communities, and game design.


Key Elements of a Pattern

While formats may differ, a well-defined pattern typically includes the following components:

Context

This outlines the scenario in which the pattern applies. It specifies the conditions and settings where a particular problem recurs and a given solution becomes relevant. Asking when questions can help clarify the context—for example: When is the pattern applicable? When does it not apply? Which other patterns might have led to this scenario?

Problem and Forces

Here, the pattern addresses the core issue at hand, along with the forces or constraints that shape the problem. It explores the reasons why a solution is necessary and why the specific approach makes sense. To uncover this, ask why questions: Why this approach? Why this structure? Why not another alternative? Each force represents a rationale or design driver that influences the final solution.

Solution

This part describes how the problem can be resolved in a structured way. It presents the general layout or method of the solution, implementation details, variations, and participant roles. To write this section, ask what, how, and who questions: What is the core structure of the solution? How is it generated? Who is involved? Authors often begin with a high-level summary, followed by practical examples and references to known, successful uses.

Consequences

This section analyzes the effects of implementing the solution—both positive and negative. It considers the resulting benefits, costs, trade-offs, and any remaining or new tensions. It may also suggest follow-up actions or related patterns to explore. Key questions here include: What changed? What improved? What challenges remain?

Pattern descriptions may label these components differently or divide them into further sub-sections, but these core ideas remain consistent across most pattern formats.