In his seminal work Notes on the Synthesis of Form, Christopher Alexander delineates "good design" as the absence of "misfit" between form and context. The designer's task is to systematically identify the relationships between individual requirements (binary variables denoting fit or misfit), group them into subsystems (in form of a constructive diagram), and solve the design problem by traversing the "design space" (which takes the form of a tree-diagram), thereby continuously modifying the subsystems and their constituent requirements in accordance to constraints of both form and context.1
In any design problem, there's a part which is subject to be modified. This is the form. The dynamics and activities surrounding the design problem represent the context. The designer's job is to mediate between form and context, achieving a fit. The fit between form and context describes the harmony between what people are actually confronted with within in the context of the design problem, and the form which the solution to the design problem adopts.2
Requirements or specifications are often defined in terms of form - What should we build? What kind of features should this application have? What kind of color should we choose? If we define requirements in terms of form, there is no measure of whether we actually were successful after implementing the changes. However, if the definition of success relates to a struggle, a behavior, a context, we're able to define success independent of form, thereby achieving a stronger "fitness relation".3
Situating context within another well-known theory on customer need analysis, Jobs to be done4 is an isomorphic concept to context. As a way to describe supply-agnostic demand, it can also be understood as a way to describe form-agnostic context.
Things that exist always do so in relation to other things; they are embedded within a network of continuously "shifting networks of relationships".5
A center is an element in such a network which is, among its constituents, more concentrated and salient. When talking about a design problem, we can partition the world of form into units of analysis which are of interest, into particular centers, on which we can focus our attention on.6
Looking at form, we can start talking about harmony and coherence between constituent elements, and how this coherence emerges from and relates to (strong and weak) centers.
Well-adapted and coherent design does not emerge from a single, deliberate intervention, but emerges step by step, and can be seen as a process: First, the unfolding, step by step adaptation by interventions with focus on what's already existing; Second, the sequence or order of these interventions with respect to their interconnectedness and path dependence.
- Levels of scale
- Strong centers
- Thick boundaries
- Alternating repetition
- Positive space
- Good shape
- Local symmetries
- Deep interlock and ambiguity
- The void
- Simplicity and inner calm
Interventions which are directed towards reflecting one or more of the fundamental properties – as levers to "transform the built world" – lead to a deeper connection between the living and the built. 6
A pattern is a generic relationship of centers. It is a form-context pairing: Talking about centers means taking about structure, about form, but it also relates to the context, in which this pattern is useful. A pattern is a unit matching or fitting a relationship of centers to a particular context. Whenever a particular context arises, this context can be solved by reflecting the pattern with its arrangement of centers and adapting them to the context.7
For instance, if a balcony is constructed with less than 6 feet in depth, people stop using it - because there are certain activities which are afforded or prohibited by a balcony greater or less than 6 feet deep. The existence of such a threshold is a pattern, it invokes a certain form which fits to a context.
When we have described a number of patterns, a pattern language emerges as an assemblage of generic solutions. A pattern language introduces both generative properties (a collection of patterns which are applied step by step in a process) and sequence (the order and priority in which to introduce patterns to afford the ideal form).
Thinking about sequence and priority means thinking about potentially successful configurations. In a collection of centers, addressed by a number of patterns, some more than others will have a low number of configurations which eventually afford an optimal solution. These must be addressed first and with priority, in order to increase the harmony and fit between constituent parts.
Software development has adopted pattern languages as a way to document knowledge, which then can be reused. However, this is an efficiency gain, and not the deeper meaning of the concept of pattern languages.2
A pattern language is a way to specify one unique project at the right level of abstraction. Instead of one pattern being applied across a number of projects, a pattern language unfolds in the scope of a single project: As a sequence of steps to solve one problem with a number of measured, abstract interventions.7
To abstract in the beginning of a project enables flexibility to detail those parts of both the problem (context) and solution (form) for which we do not have enough information at the outset at a later stage. In this way, harmony (fit) between the parts emerges.
A pattern language and its words and abstractions evoke a specific design, with specific properties, and a specific form-context-fit. Two different pattern languages will lead to entirely different outcomes.
- Christopher Alexander. Notes on the Synthesis of Form (1964). ↩
- Ryan Singer. A Primer on Christoper Alexander (2021). ↩ ↩2
- Christopher Alexander. The Phenomenon of Life (2002) ↩ ↩2
- Clayton M. Christensen. Competing Against Luck (2016). ↩
- Bruno Latour. Reassembling the Social (2007). ↩
- Christopher Alexander. The Process of Creating Life (2003) ↩ ↩2
- Christopher Alexander. A Pattern Language (1977). ↩ ↩2