Pattern languages and Generative Codes

The big post about the field of overviewing fields

Ola Möller
MethodKit Stories
Published in
11 min readOct 1, 2014

--

How to chop up a field into small relevant pieces,
in order to build a better whole.

An article by Ola Möller and Jordan Lane, at MethodKit.

Part 1. Introduction

A pattern language is a method of describing good design practices within a field of expertise. - Wikipedia

In this post, we will explore what a Pattern language is and how it can be used in your projects and fields.

Each area has its own pattern. A classic project contains strategies to take on eg. goals, vision, team, roles, timeframe, budget, measurable goals, milestones and target groups amongst many other things.

The term Pattern language was coined by the architect Christopher Alexander and built upon the idea that people should design houses by themselves.

At the core… is the idea that people should design for themselves their own houses, streets and communities. This idea… comes simply from the observation that most of the wonderful places of the world were not made by architects but by the people. - A Pattern Language by Christopher Alexander

Later the concept has spread beyond architecture as a way to define and overview different fields.

Why the interest in Pattern Languages & Code?

Ola: Over the last two years I have been working with MethodKit. I basically needed a overview for myself in how to carry out projects in the best possible way and that was the reason I started. I have devoted two years to define 10 different fields (eg. business development, projects, sustainable development, gender equality, app & web development.) and their basic components. Then making them into illustrated card decks. This post is going to be about researching patterns that I have been working with, behind the designed surface of MethodKit.

Jordan: Working as an architect in multidisciplinary and multicultural urban regeneration projects, there is a need to create common understandings and paths of communication from the beginning. Pattern languages can allow a group of people with diverse backgrounds the luxury of sharing a common language. Patterns can be understood, translated, reinterpreted and recombined easily, making them a useful tool in the participatory design process.

Part 2. What is Pattern language?

A Pattern language or Design pattern is an assembly of the most relevant parts and practices of any chosen field. Pattern languages aim to provide both a crucial overview, and detailed insights of ideas, understandings and patterns critical to a given topic. This creates what is basically a best practice checklist. It is important to note not all patterns in a Pattern language are relevant to every context, relevant patterns should be chosen and combined according to your needs.

Although Pattern languages breakdown fields into digestible pieces and patterns, they are not reductionist in nature as their true strength resides in the recombination of patterns to create new synergies and understandings of the whole. Defining which patterns to use and how to recombine them is the pattern language.

The goal of Pattern languages is not to single out or create a dependency on the “best” tactics or strategies, but rather to present a non hierarchical assembly of important parts and pieces that people can combine at their own will, in order to respond to their own process and context.

Each field has its own pattern. A classic project contains eg. goals, vision, team, roles, timeframe, budget, milestones, target group and so on.

MethodKit has been a way to make each piece of the pattern language into a card that can be moved, sorted and discussed around.

MethodKit has been a way to make each piece of the Pattern language into a card that can be moved, sorted and discussed around. Patterns you can touch.

Erik Hasselgärde who is coaching upcoming musicians in Stockholm, phrased these rhetorical questions:

Do you think there is a system or a checklist that theoretically could be used on any project? Imagine you got two projects or tasks that demand very different actions. Could it be that they have fundamental similarities even though they are different? Something fundamental that link eg. planning a trip to France and to implement a new way of communicating in a group? Which are the fundamental similarities?

The answer to these similarities are the Pattern language. Each field has its own pattern.

Pattern language embedded in everyday concepts

4 examples of concepts with embedded Pattern language.

Checklists

Writing a list is the simplest form of pattern language. When preparing for an overseas trip you may write down all the items you needed last time, compare them with your goals for the upcoming trip and check them off as your intentions are realised.

How to guides

Step by step pattern languages (at a stretch). Sometimes the recombination of these patterns is not optimal — try putting a piece of flat-pack furniture together in the reverse order and you will see why! Guides provide a rigid pattern language (and therefore may not even be Pattern language). Be wary of “how to guides” when your aim is creativity and innovation!

Recipes

Remember when you “free-styled” a little on that dessert you made…that one time? You may have substituted ingredients, added something or experimented with a different technique…and it turned out amazing! (Disclaimer: This level of culinary experiment success is not guaranteed every time.) This is an example of applying pattern language from your personal experience to create new combinations between recipes (practices) and ingredients (parts) available to you in your context.

Weather forecasts

Weather forecasts predict the state of the atmosphere at a specific location. Successful forecasting relies upon pattern recognition of the past to forecast the conditions of tomorrow.

Books

Books do not intentionally provide a Pattern language. However, if you take a project management book for example, try writing down the chapter headings and subheadings to see if you can recombine patterns yourself.

Project funding applications

Applications for funding often describe the main patterns of a project. Past experience, budget, goals, vision, marketing, impact, measurable goals, roles, team.

Job applications

The application often have a personal-professional approach describing personality. Education, employments, projects, field(s) of expertise, experiences, life goals, skills.

Notable examples that use Pattern Language

A Pattern Language (1977)

The term Pattern language was popularized by the architect Christopher Alexander in this book.

The book creates a new language, what the authors call a pattern language derived from timeless entities called patterns. As they write on page xxxv of the introduction, “All 253 patterns together form a language.” Patterns describe a problem and then offer a solution. In doing so the authors intend to give ordinary people, not only professionals, a way to work with their neighbors to improve a town or neighborhood, design a house for themselves or work with colleagues to design an office, workshop or public building such as a school.

- Post about the book A Pattern Language on Wikipedia

A Hacker Space Design Pattern Catalogue (2007)

During the 24th Chaos Computer Club conference Jens Ohlig and Lars Weiler presented the Catalogue as a way of presenting possible ways of building a hacker space. The Catalogue is in a very diverse way mentioning different takes on how to create a space. It consists of everything from infrastructure, kitchen, community, personalities, cosiness, landlords, membership, sponsoring.

Ohlig & Weiler also mention how to relate to patterns:

- There is no “golden way” building up a hacker space
- Based on experience there are a couple of patterns which
might match
- Be creative! Try out your own way!
Page 83 of the
Catalogue

A Sustainable Pattern Language (2008)

Image Credit: Carl S. Sterner

A reinterpretation of A Pattern language (1977) with a more systemic sustainable approach.

A system that is viable over the long term (sustainable) — be it an ecosystem or society — exhibits of a number of characteristics that allow it to change adaptively over time without experiencing overshoot or collapse — characteristics such as resilience, decentralized control, rapid feedback mechanisms, and self-organization, to name a few.

- A Sustainable Pattern Language by Carl Sterner

Business Model Canvas (2008)

The canvas was made by Alex Osterwalder and summarizes the most important parts and practices for defining business models. The Canvas received wide attention after its release and continues to guide the Business Model Innovation field.

The original Business Model Canvas.

The Wikipedia talk page about Business Model Canvas is a place where people’s feedback complete the Pattern language of Business model Creation. In the new book Value Proposition Design by the same authors, the criticism has been injected into the original concept, demonstrating a successful method to handle feedback and build a more complete pattern language.

MethodKit (2012)

MethodKit is a project by the author (Ola Möller) that investigates pattern languages and transforms them into visual modular pieces that can be used as physical tools. All kits contain 50-something cards that are visual representations of the pattern languages from each field that has been researched.

Picture of MethodKit for Projects.

Open Card Deck Standard (2012)

Adam Rothstein talks about the creation of Pattern languages and how information can be organized in smart dynamic ways using cards to represent each part.

Screenshot from Rothstein’s post describing how one of the cards could look like.

A way of databasing relatively small quantities information in a printed format, such that it can be handled and sorted in multi-dimensional physical ways.

But by breaking text into smaller chunks by printing it on physical cards, we can more easily violate the categories of information, while not breaking the rules of language or intelligible thought. This allows our brains’ creativity to come in and repair the categories in an ad hoc manner, or manipulate them according to predetermined rules.

White Paper: Open Card Deck Standard by Adam Rothstein

unMonastery in-a-box (2014)

unMonastery is similar to a Hacker spaces with a more visionary outward looking approach. The pattern language has been compiled into a deck of cards called unMonastery in-a-box along with a corresponding Wiki.

Picture from the first unMonastery prototype in Matera, south of Italy.

unMonastery-in-a-box supports rapid startup, running and evaluation of locality-based social innovation based on an existing prototype: the Italian unMonastery project in Matera. It allows for an iterative open source development approach to offline projects. Our wiki, also known as The Book of Mistakes, serves as a narrative pattern language for challenges and daily rituals. Pages correspond to titles from the card deck.

- Ben Vickers of unMonastery

Part 3. Defining a field’s Pattern language

It is often possible to define the crucial parts and practices of a Pattern language fairly quick. Most people undertake this process over and over again. When trying to plan something the answers can often be found in understanding the Pattern language.

When starting a restaurant the parts might be: Staffing (chefs, dish washers, waiters, wages), menu, interior, furniture, lighting, food type, branding, opening hours, payment options, target group, marketing, guest experience, signage, the grand recipe book, reviewers, service level, food supplier, wine list, legal permissions (eg. tax office, grease trap), kitchen hygiene.

It is often easy to define 80% of a Pattern language. The devil is in the last 20% — the things that are critical, but do not immediately come to mind. One way to combat this is to write down what you need to remember next time. Over time, these notes can accumulate into a quite accurate and complete list.

“Sooo, what do we need to think about now?”

Defining the Pattern language of general projects is a way to create a tool and to solve the problem of “Sooo, what do we need to think about now?”…permanently. To not have to re-define the parts and practices of a project saves time and can maintain momentum.

Extracting the pattern language

Describing the disassembly of a field into patterns.

Hammers & screwdrivers — details in a field

Let us use the example of “handtools” as a field. Within this field there are screwdrivers, knives, saws, scissors and hammers to just name a few. A screwdriver and a hammer achieve the same purpose — to insert a steel member into another substrate. However, if we remind ourselves that “if you walk around with a hammer, every problem looks like a nail”, you quickly realise the need to fit each pattern to context. Try using a hammer with a screw, or using a screwdriver with a nail. It is the same pattern of intent, but an unsuitable disassembly of parts and practices. It is important to disassemble the field in such a way — with holistic understanding — of how to recombine it afterwards.

From wholes to smaller parts

Some parts remain general while some fields needs to be broken down into pieces.

Left: General part. Right: Deep diving bits describing the general part.

The general bits are overviewable patterns, the deep diving bits are smaller parts and provide a deeper understanding of each bit.

Depending on which field is summarized the depth of different aspects need to be different. Some patterns contain smaller patterns, which may contain even smaller details — all of which may be relevant to your context. For example “diet” could be a pattern from the field of personal development that could in itself unfold into a whole new overview of patterns and details. Diet is not just the food we eat but also cultural norms, access to food, purchasing patterns, eating rituals, allergies etc.

Working with groups of experts

While generalists know a little about everything, experts know everything about a little. It’s important to pick a diverse group of experts as they tend to see deep diving parts from the perspective of their sub-fields within a field. Picking a broad group of experts that share complementary knowledge is crucial to creating an accurate pattern language.

The different experts can probably all define the general patterns of their area but it’s good to have a diverse group as the deep diving parts demand specific expertise.

The image above illustrates the capacity of involving experts within sub-fields of knowledge. While a expert (left illustration) was able to name the large parts of the pattern language, involving a group of experts allows insights into more complex, deep diving parts and processes (right illustration).

Summary

Sometimes we don’t see the forest for the trees. Sometimes we don’t see the trees for the leaves. Sometimes we don’t see the leaves for the sun… and sometimes we are just looking in the opposite direction. Pattern recognition and pattern language is a way to help us understand the forest, its relationship with the solar system and how the leaves generate energy. It is a way to move from patterns to details and back again.

Pattern language will not give you all the answers you need to understand the forest, but they allow a flexible and forgiving framework within which you can explore.

Authors

Ola Möller (MethodKit), Jordan Lane (Herding Ideas)

The Big Post on Selecting Grand Ideas,
might also be of interest if you like this one.

--

--