From The Art & Science of Web Design by Jeffrey Veen:
Pattern Language is an approach to determining the ultimate “goodness” of a design solution.
The architect Christopher Alexander is generally attributed with developing the notion of the Pattern Language.
His basic premise is that we should start from the bottom and work our way up – that is, by asking questions about very simple things, we can find the best answers and combine them into complex things.
For example, take a look at a doorknob that is near you. Is there a lock? What is the mechanism for locking and unlocking it? How does the knob turn? Is it round, or more of a handle? Do you need to twist it, slide it, or push it in order to open the door?
Lots of questions. You could probably think of even more if you stared at the doorknob long enough. In fact, if you spent enough time studying the process of opening and closing, locking and unlocking doors, you could become quite an expert on doorknobs.
Once you’ve become a doorknob expert, you should be able to accurately describe how that device should work. Then, you should start studying doors. Where should the knob go? What’s the best way to hinge the door to the frame? What’s the best size for a door? Where should it go in a room? How many doors should a room have?
Now you’re starting to become a room expert. You’ll also become a window expert, and a floor and ceiling and wall expert. How should the rooms be arranged in a house? What heuristics make for a space that feels good to be in? How do you connect those spaces?
As you work from the bottom up, you’ll find yourself looking at bigger and bigger issues – like how public spaces can foster community interaction, or how city design can alleviate congestion.
The process of developing pattern languages isn’t confined to the world of architecture. Patterns have been developed for such disciplines as computer science and corporate organization.