ThePatternLanguages

Finally, the patterns themselves! Thank you for patiently reading the introductory material; it will help you use the patterns.

We have divided the patterns into four interrelated pattern languages:

    1. Project Management: the organizational aspects of managing projects.

    2. Piecemeal Growth of the Organization: how an organization grows and develops over time.

    3. Organizational Style: the general approach the way the organization works.

    4. People and Code: how the people affect the code -- and how the design of the code affects the people!

Each pattern language presents patterns in a sequence that allows the patterns to build on each other. Sometimes a pattern recurs in multiple pattern languages, but we present the pattern only in the first pattern language where it occurs, and we substitute a reference to that first appearance in subsequent pattern appearances. In practice, you will use all four of these pattern languages together, weaving patterns together to solve problems and to strengthen your organization one pattern at a time.

The first two pattern languages are design pattern languages; the second two are construction pattern languages. The two following chapters are dedicated to these two kinds of patterns, respectively. Alexander makes the same distinction in his pattern language, separating the act of design from the engineering considerations of construction.

Design patterns are those that lay the foundation of the entity to be built — buildings and towns for Alexander; software development organizations for us.

Construction patterns deal with the nuts and bolts of creating the thing. Organizations need to be built just as surely as buildings need to be built.

A pattern may appear in several of these pattern languages. If so, we include its description in the pattern language with which it is most strongly connected. Other pattern languages cross-reference that text.

The appendix SummaryPatlets presents summaries of all the patterns in patlet form. A patlet is a terse summary of the pattern's problem and solution. You may find this useful as a reference as you set about putting the patterns to practice.