Placeholder Image

Subtitles section Play video

  • A pattern language is a method of describing good design practices within

  • a field of expertise. The term was coined by architect Christopher

  • Alexander and popularized by his book A Pattern Language. A pattern language is

  • an attempt to express the deeper wisdom of what brings aliveness within a

  • particular field of human endeavor, through a set of interconnected

  • expressions arising from that wisdom. Aliveness is one placeholder term for

  • "the quality that has no name": a sense of wholeness, spirit, or grace, that

  • while of varying form, is precise and empirically verifiable. Some advocates

  • of this design approach claim that ordinary people can use it to

  • successfully solve very large, complex design problems.

  • Like all languages, a pattern language has vocabulary, syntax, and grammarbut

  • a pattern language applies to some complex activity other than

  • communication. In pattern languages for design, the parts break down in this

  • way: The language descriptionthe

  • "vocabulary"—is a collection of named, described solutions to problems in a

  • field of interest. These are called "design patterns." So, for example, the

  • language for architecture describes items like: settlements, buildings,

  • rooms, windows, latches, etc. Each solution includes "syntax," a

  • description that shows where the solution fits in a larger, more

  • comprehensive or more abstract design. This automatically links the solution

  • into a web of other needed solutions. For example, rooms have ways to get

  • light, and ways to get people in and out.

  • The solution includes "grammar" that describes how the solution solves a

  • problem or produces a benefit. So, if the benefit is unneeded, the solution is

  • not used. Perhaps that part of the design can be left empty to save money

  • or other resources; if people do not need to wait to enter a room, a simple

  • doorway can replace a waiting room. In the language description, grammar and

  • syntax cross index to other named solutions, so the designer can quickly

  • think from one solution to related, needed solutions, and document them in a

  • logical way. In Alexander's book, the patterns are in decreasing order by

  • size, with a separate alphabetic index. The web of relationships in the index of

  • the language provides many paths through the design process.

  • This simplifies the design work because designers can start the process from any

  • part of the problem they understand and work toward the unknown parts. At the

  • same time, if the pattern language has worked well for many projects, there is

  • reason to believe that even a designer who does not completely understand the

  • design problem at first will complete the design process, and the result will

  • be usable. For example, skiers coming inside must shed snow and store

  • equipment. The messy snow and boot cleaners should stay outside. The

  • equipment needs care, so the racks should be inside.

  • It really is a language: There is even an analogy to spelling or phonology, in

  • the documentation standards for the designs and patterns. Without these, the

  • people building the design won't be able to read the design.

  • What is a pattern? When a designer designs

  • somethingwhether a house, computer program, or lampthey must make many

  • decisions about how to solve problems. A single problem is documented with its

  • typical place, and use with the most common and recognized good solution seen

  • in the wild, like the examples seen in dictionaries. Each such entry is a

  • single design pattern. Each pattern has a name, a descriptive entry, and some

  • cross-references, much like a dictionary entry. A documented pattern should

  • explain why that solution is good in the pattern's contexts.

  • Many patterns form a language Just as words must have grammatical and

  • semantic relationships to each other in order to make a spoken language useful,

  • design patterns must be related to each other in position and utility order to

  • form a pattern language. Alexander's work describes a process of

  • decomposition, in which the designer has a problem, selects a solution, then

  • discovers new, smaller problems resulting from the larger solution.

  • Occasionally, the smaller problems have no solution, and a different larger

  • solution must be selected. Eventually all of the remaining design problems are

  • small enough or routine enough to be solved by improvisation by the builders,

  • and the "design" is done. The actual organizational structure is

  • left to the discretion of the designer, depending on the problem. This

  • explicitly lets a designer explore a design, starting from some small part.

  • When this happens, it's common for a designer to realize that the problem is

  • actually part of a larger solution. At this point, the design almost always

  • becomes a better design. In the language, therefore, each pattern

  • has to indicate its relationships to other patterns and to the language as a

  • whole. This gives the designer using the language a great deal of guidance about

  • the related problems that must be solved.

  • The most difficult part of having an outside expert apply a pattern language

  • is in fact to get a reliable, complete list of the problems to be solved. Of

  • course, the people most familiar with the problems are the people that need a

  • design. So, Alexander famously advocated on-site improvisation by concerned,

  • empowered users, as a powerful way to form very workable large-scale initial

  • solutions, maximizing the utility of a design, and minimizing the design

  • rework. The desire to empower users of architecture was, in fact, what led

  • Alexander to undertake a pattern language project for architecture in the

  • first place. Design problems in a context

  • An important aspect of design patterns is to identify and document the key

  • ideas that make a good system different from a poor system, and to assist in the

  • design of future systems. The idea expressed in a pattern should be general

  • enough to be applied in very different systems within its context, but still

  • specific enough to give constructive guidance.

  • The range of situations in which the problems and solutions addressed in a

  • pattern apply is called its context. An important part in each pattern is to

  • describe this context. Examples can further illustrate how the pattern

  • applies to very different situation. For instance, Alexander's pattern "A

  • PLACE TO WAIT" addresses bus stops in the same way as waiting rooms in a

  • surgery, while still proposing helpful and constructive solutions. The

  • "Gang-of-Four" book by Gamma et al. proposes solutions that are independent

  • of the programming language, and the program's application domain.

  • Still, the problems and solutions described in a pattern can vary in their

  • level of abstraction and generality on the one side, and specificity on the

  • other side. In the end this depends on the author's preferences. However, even

  • a very abstract pattern will usually contain examples that are, by nature,

  • absolutely concrete and specific. Patterns can also vary in how far they

  • are proven in the real world. Alexander gives each pattern a rating by zero, one

  • or two stars, indicating how well they are proven in real-world examples. It is

  • generally claimed that all patterns need at least some existing real-world

  • examples. It is, however, conceivable to document yet unimplemented ideas in a

  • pattern-like format. The patterns in Alexander's book also

  • vary in their level of scale - some describing how to build a town or

  • neighbourhood, others dealing with individual buildings and the interior of

  • rooms. Alexander sees the low-scale artifacts as constructive elements of

  • the large-scale world, so they can be connected to a hierarchic network.

  • = Balancing of forces = A pattern must characterize the problems

  • that it is meant to solve, the context or situation where these problems arise,

  • and the conditions under which the proposed solutions can be recommended.

  • Often these problems arise from a conflict of different interests or

  • "forces". A pattern emerges as a dialogue that will then help to balance

  • the forces and finally make a decision. For instance, there could be a pattern

  • suggesting a wireless telephone. The forces would be the need to communicate,

  • and the need to get other things done at the same time. A very specific pattern

  • would be just "WIRELESS TELEPHONE". More general patterns would be "WIRELESS

  • DEVICE" or "SECONDARY ACTIVITY", suggesting that a secondary activity

  • should not interfere with other activities.

  • Though quite unspecific in its context, the forces in the "SECONDARY ACTIVITY"

  • pattern are very similar to those in "WIRELESS TELEPHONE". Thus, the

  • competing forces can be seen as part of the essence of a design concept

  • expressed in a pattern. = Patterns contain their own rationale =

  • Usually a pattern contains a rationale referring to some given values. For

  • Christopher Alexander, it is most important to think about the people who

  • will come in contact with a piece of architecture. One of his key values is

  • making these people feel more alive. He talks about the "quality without a

  • name". More generally, we could say that a good

  • system should be accepted, welcomed and happily embraced as an enrichment of

  • daily life by those who are meant to use it, or - even better - by all people it

  • affects. For instance, when discussing a street café, Alexander discusses the

  • possible desires of a guest, but also mentions people who just walk by.

  • The same thinking can be applied to technical devices such as telephones and

  • cars, to social structures like a team working on a project, or to the user

  • interface of a computer program. The qualities of a software system, for

  • instance, could be rated by observing whether users spend their time enjoying

  • or struggling with the system. By focusing on the impacts on human

  • life, we can identify patterns that are independent from changing technology,

  • and thus find "timeless quality". Generic structure and layout

  • Usually the author of a pattern language or collection chooses a generic

  • structure for all the patterns it contains, breaking each into generic

  • sections like context, problem statement, solution etc.

  • C. Alexander's patterns, for instance, each consist of a short name, a rating,

  • a sensitizing picture, the context description, the problem statement, a

  • longer part of text with examples and explanations, a solution statement, a

  • sketch and further references. This structure and layout is sometimes

  • referred to as the "Alexandrian form". Alexander uses a special text layout to

  • mark the different sections of his patterns. For instance, the problem

  • statement and the solution statement are printed in bold font, the latter is

  • always preceded by the "Therefore:" keyword. Some authors instead use

  • explicit labels, which creates some degree of redundancy.

  • = Meaningful names = When design is done by a team, pattern

  • names will form a vocabulary they can share. This makes it necessary for

  • pattern names to be easy to remember and highly descriptive. Some examples from

  • Alexander's works are WINDOW PLACE and A PLACE TO WAIT.

  • Aggregation in an associative network A pattern language, as thought by

  • Alexander, contains links from one pattern to another, so when trying to

  • apply one pattern in a project, a designer is pushed to other patterns

  • that are considered helpful in its context.

  • In Alexander's book, such links are collected in the "references" part, and

  • echoed in the linked pattern's "context" part - thus the overall structure is a

  • directed graph. A pattern that is linked to in the "references" usually addresses

  • a problem of lower scale, that is suggested as a part of the higher-scale

  • problem. For instance, the "PUBLIC OUTDOOR ROOM" pattern has a reference to

  • "STAIR SEATS". Even without the pattern description,

  • these links, along with meaningful names, carry a message: When building a

  • place outside where people can spend time, consider to surround it by stairs

  • where people can sit. If you are planning an office, consider to arrange

  • workspaces in small groups. Alexander argues that the connections in the

  • network can be considered even more meaningful than the text of the patterns

  • themselves. The links in Alexander's book clearly

  • result in a hierarchic network. Alexander draws a parallel to the

  • hierarchy of a grammar - that is one argument for him to speak of a pattern

  • language. The idea of linking is generally

  • accepted among pattern authors, though the semantic rationale behind the links

  • may vary. Some authors, however, like Gamma et al. in Design Patterns, make

  • only little use of pattern linking - possibly because it did not make that

  • much sense for their collection of patterns. In such a case we would speak

  • of a pattern catalogue rather than a pattern language.

  • = Usage = Alexander encouraged people who used his

  • system to expand his language with patterns of their own. In order to

  • enable this, his books do not focus strictly on architecture or civil

  • engineering; he also explains the general method of pattern languages. The

  • original concept for the book _A Pattern Language_ was that it would be published

  • in the form of a 3-ring binder, so that pages could easily be added later; this

  • proved impractical in publishing. The pattern language approach has been used

  • to document expertise in diverse fields. Some examples are architectural

  • patterns, computer science patterns, human computer interaction patterns,

  • educational patterns, social action patterns, and group facilitation

  • patterns. The pattern language approach has also been recommended as a way to

  • promote civic intelligence by helping to coordinate actions for diverse people

  • and communities who are working together on significant shared problems.

  • Alexander's specifications for using pattern languages as well as creating

  • new ones remain influential, and his books are referenced for style by

  • experts in unrelated fields. It is important to note that notations

  • such as UML or the flowchart symbol collection are not pattern languages.

  • They could more closely be compared to an alphabet: their symbols could be used

  • to document a pattern language, but they are not a language by themselves. A

  • recipe or other sequential set of steps to be followed, with only one correct

  • path from start to finish, is also not a pattern language. However, the process

  • of designing a new recipe might benefit from the use of a pattern language.

  • = Simple example of a pattern = Name: ChocolateChipRatio

  • Context: You are baking chocolate chip cookies in small batches for family and

  • friends Consider these patterns first:

  • SugarRatio, FlourRatio, EggRatio Problem: Determine the optimum ratio of

  • chocolate chips to cookie dough Solution: Observe that most people

  • consider chocolate to be the best part of the chocolate chip cookie. Also

  • observe that too much chocolate may prevent the cookie from holding

  • together, decreasing its appeal. Since you are cooking in small batches, cost

  • is not a consideration. Therefore, use the maximum amount of chocolate chips

  • that results in a really sturdy cookie. Consider next: NutRatio or CookingTime

  • or FreezingMethod Origin

  • Christopher Alexander, an architect and author, coined the term pattern

  • language. He used it to refer to common problems of the design and construction

  • of buildings and towns and how they should be solved. The solutions proposed

  • in the book include suggestions ranging from how cities and towns should be

  • structured to where windows should be placed in a room.

  • The framework and philosophy of the "pattern language" approach was

  • initially popularized in the book A Pattern Language that was written by

  • Christopher Alexander and five colleagues at the Center for

  • Environmental Structure in Berkeley, California in the late 1970s. While A

  • Pattern Language contains 253 "patterns" from the first pattern, "Independent

  • Regions" to the last, "Things from Your Life", Alexander's book The Timeless Way

  • of Building goes into more depth about the motivation and purpose of the work.

  • The following definitions of "pattern" and "pattern language" are paraphrased

  • from "A Pattern Language": "A pattern is a careful description of a

  • perennial solution to a recurring problem within a building context,

  • describing one of the configurations that brings life to a building.

  • Each pattern describes a problem that occurs over and over again in our

  • environment, and then describes the core solution to that problem, in such a way