I like patterns. Wikipedia says this: A pattern is a form, template, or model (or, more abstractly, a set of rules) which can be used to make or to generate things or parts of a thing, especially if the things that are generated have enough in common for the underlying pattern to be inferred or discerned, in which case the things are said to exhibit the pattern. What I particularly like is patterns in the sense used in pattern languages. A Pattern Language is a structured method of describing good design practices within a particular domain. It is characterized by
1. Noticing and naming the common problems in a field of interest,
2. Describing the key characteristics of effective solutions for meeting some stated goal,
3. Helping the designer move from problem to problem in a logical way, and
4. Allowing for many different paths through the design process.
Pattern languages are used to formalize decision-making values whose effectiveness becomes obvious with experience but that are difficult to document and pass on to novices. They are also effective tools in structuring knowledge and understanding of fundamentally complex systems without forcing oversimplification -- including organizing people or groups involved in complex undertakings, revealing how their functions inter-relate as part of the larger whole.
Contents Pattern Language is a term that was coined by Christopher Alexander. He is an architect who wrote a famous book called A Pattern Language, which presented a lot of design patterns for building towns or buildings. He said this, for example:There is one timeless way of building. It is a thousand years old, and the same today as it has ever been. The great traditional buildings of the past, the villages and tents and temples in which man feels at home, have always been made by people who were very close to the center of this way. It is not possible to make great buildings, or great towns, beautiful places, places where you feel yourself, places where you feel alive, except by following this way. And, as you will see, this way will lead anyone who looks for it to buildings which are themselves as ancient in their form, as the trees and hills, and as our faces are." What is unique is that he isn't presenting the construction techniques or even the actual design techniques, but general patterns for making places that are nice to be in. Like, places for more intimate meetings need to be placed away from the places one just passes through. That's intuitively obvious, of course, but that is the point. To express in words a model of how to do something well, but presenting it somewhat abstractly, so it can be applied in many different contexts.
The idea of pattern languages have been adopted by programmers, often called design patterns, for expressing design principles for constructing software. For example, one can make a software piece that is a 'factory method' that produces other objects. That's a pattern.
One can also talk about anti-patterns, which again particularly is used in software. But, generally speaking, it is commonly used solutions that are bad. If one can recognize the bad design patterns, one can avoid falling into the trap of using them.
Despite being a programmer, the kind of patterns that interest me more than software design patterns is patterns for doing more human stuff, like how to solve problems more generally, or how groups can work well and be productive, and express collective intelligence rather than collective stupidity.
Sometimes the word uplift pattern is used for that. Patterns for generating a positive outcome of some kind in human relations.
We could even say that the idea of using a pattern is a pattern. A meta-pattern, maybe, but that gets a little too abstract. Using a pattern as a pattern goes somewhat like this:
- You find yourself in some situation where you either have a problem, or you're trying to ensure the most positive outcome you can.
- You look for a pattern that somebody has described which seems to fit your situation.
- You apply the pattern to the situation.
Yeah, yeah, that's obvious, of course. But not as obvious as it might seem. A great many people find themselves in situations that they'd really like to make better, but they don't recognize that there might be a pattern that fits it, so they don't bother to look for one, but just sort of muddle through it, making random uncoordinated decisions. If you're not conscious of what pattern you're following, you might be operating without a map. [ Patterns | 2007-01-04 16:15 | 0 comments | PermaLink ]
|
|