Pattern Languages

by Flemming Funch, 11 Nov 95

I just recently discovered patterns and pattern languages.

Patterns is a concept that was introduced in the book "A Pattern Language" by Christopher Alexander et al, written in 1977.

The word "pattern" is used here in the particular sense of the way one is arranging or designing things. For example, to solve the task of how one arranges spaces to achieve the most pleasant and productive interaction between the people who are using them.

The book would be categorized as a work from the field of architecture. I probably would never have thought of buying it unless somebody had called my attention to it. It surprisingly applies to a much wider field than architecture. Or, we could say, that it applies to architecture of much more than buildings. For example, how do we architect working environments, group synergy, cyberspace meeting spaces, and much more.

This applies to whole systems in the sense that a system will behave differently depending on how it has been arranged, depending on how key functions have been placed in relation to each other, and on how people flow through the system.

To give a couple of examples:

Spaces are most enjoyable when they are designed with gradients of intimacy. That is, there are high traffic areas where people come in and out, and tangentially to that there are more and more private or exclusive spaces. That allows people to choose a place for their interactions that carries a particular meaning to them and a particular degree of intimacy. If there is no gradient, and everything just flows together, certain types of interaction are not likely to take place, or they are awkward.

People work best in relatively small groups. However, they also get stimulation from interaction with wider groups of people. So, working environments that group 2-8 people at a time together fairly closely, but that also provide visibility of other groups, and provide space for more random interactions, will be most productive. The common meeting spaces would need to be quite centrally placed, but on the path in or out of the environment, not out of the way.

There are several web sites dealing with patterns and pattern languages either in general or applied to computer programming or web site design or other particular areas:

http://st-www.cs.uiuc.edu/users/patterns/patterns.html - Patterns Home Page

http://www.anamorph.com/ - Anamorph

http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html - Patterns-Discussion FAQ

- Flemming