PatternLanguage

Wikis are sometimes said to create a pattern language. “Design Patterns” have been quite a hype in software development in the late nineties. What is a “Pattern Language?”

The term “Pattern Language” was introduced by Christopher Alexander in his book “The Timeless Way of Building”, ISBN 0-19-502402-8. In the book, he argues why architects need a pattern language to design and build buildings that have “the quality without a name.” Only with this quality will the buildings “live.” Here is a short summary, largely based on chapters 14 and 16:

== Developing a Pattern Language =

How do we go about it?

Collaborative aspects:

== Why a Pattern Language? ==

Why create a pattern language instead of building a vocabulary? A vocabulary helps you express complex ideas concisely. As terms build upon terms, the terms develop relationships and thus an entire ontology can be built. The ontology acts as knowledge representation. A pattern language transcends this, however. Instead of just being descriptive a pattern language is also prescriptive. It is a collection of rules of thumb that are adaptable to a wide range of situations, helping you to make decisions as well as enabling you to make value judgements.

Building a pattern language takes more effort. It is also riskier, since your prescriptions can be wrong. This allows you to apply the scientific method, however, which is a boon. The easier it is to prove something wrong, and the longer it withstands such attempts, the more trustworthy it is. Thus, the pattern language has the potential of not being “applicable” like observations often are, but “tried and true” like other rules of thumbs.

Note, however, that patterns don’t have to be “tried and true.” At least in Christopher Alexander’s book no empirical evidence is required. All he asks for is your immediate gut reaction: feelings. If you feel it, you will know. This is all about “the quality without a name.”

In other words: Patterns are expressions of what one sees at work in a system, and what one can use in a system. Optimality is not essential; it comes about through refinement, and that only happens through use. Stating a pattern is the first step to improving it.

== Limits of a Pattern Language =

Patterns are like vocabulary, but better: Even more powerful. Even more expressive. But they are no replacement for people skills. They are no replacement for common sense. Patterns and vocabulary are good for discussion amongst peers because of they are expressive. But that’s it. We don’t throw them at newbies or outsiders. We don’t reach out to people by throwing patterns at people.

Sometimes we see patterns used instead of an argument in a discussion. “You should Foo Bar” for example. And indeed, patterns are often written as a prescription: Do this! Do that! But we don’t do that because patterns are tried and true. We don’t do that because patterns are the law. We do that because we want to be precise. This way, they are easy to test. If you do this or that and it works, great. If not, the pattern must be dismissed or refined. This is how we progress.

Patterns may be useful to other people. But it is for them to test whether the patterns apply to their situation. And when we use a pattern in an argument, we must not forget that the pattern itself is not an argument. We still have to argue why the pattern should apply in the first place.

== Discussion ==

I think this page gives a good account of the book. But the book is only something like a snapshot on a specific stage of development of the PatternTheory which is larger. PatternLanguage means primarily that a single pattern is not enough, although we are save to assume that it is a solution to a problem. But to apply patterns usefully, you need the big picture of all other forces and system elements, especially other patterns that may be better alternatives or nessarily elements for a pattern to work.

For example, if you have a transportation problem, a car may be a solution. But the context is crucial. There are alternatives like byke, ship or airplane. If the distance is 5000 miles, then a car won’t do, usually. A car needs fuel stations for support, and you need fuel production and transportation systems. Perhaps in some situations, in a desert, for some people, a camel is the better solution to their problem.

So this is what PatternLanguage is all about, to suggest a framework to create complete system pictures and sound foundations for decisions.

But the larger picture of PatternTheory is that it deals with the phenomena of life and how they grow and develop. This includes a kind of system theory (theory of centers and wholeness), empirical knowledge about the properties of living systems and possible transformations, of course patterns and pattern languages as part of processes of unfolding systems. And how we, as humans, can be in resonance with that and be happy and creative in a very down-to-the-earth sense.

(CommunityWikiFooter)

Languages:

The same page elsewhere:
MeatBall:PatternLanguageWiki:PatternLanguage