Chapter 9. Patterns in Context

Chapter 9. Patterns in Context

A very great musician came and stayed in [our] house. He made one big mistake [he] determined to teach me music, and consequently no learning took place. Nevertheless, I did casually pick up from him a certain amount of stolen knowledge.

Rabindrath Tagore quoted in Bandyopadhyay (Brown and Duguid 1992)

The way patterns are written and used is strikingly different from any other development artifact in the software industry:

  • The social aspects of patterns are as important as their technical benefits.

  • They are authoritative learning tools that don't emanate from a higher authority, and "standards" that aren't controlled or standardized.

  • And, they are a "technology" that is derived from literature and architecture not from machines.

They are different because patterns have a human side as well as a technical side. The best patterns aren't just technical and they don't exist in isolation. They have a social dimension doing the work of development well not just a focus on the end result. And they are embedded in a context of other patterns and life itself.

This chapter explores the human side of patterns: in particular, how software patterns connect to the way software developers work and the problems they have in working. It's meant for the reader who wants to know more about where patterns came from, intellectually and historically, as a start to becoming a well-rounded professional practitioner, rather than just a technician.

I'm going to look at the context for patterns (not just the technical roots, but the human ones) and the social, cultural, and organizational problems that patterns attempt to resolve. As part of the context, I'll talk about the history of software patterns and the patterns movement from a personal and very personalized perspective: that of the founders of the community themselves. This material is distilled from the various books, Web pages, magazine articles, and discussion-lists that document the existence and rapid growth of the patterns community. For anyone thinking of joining in, this will be useful background material that's not available in one place anywhere else. I will also look at the architectural roots of patterns in some detail.

Newcomers to patterns are frequently criticized for not doing their homework by paying their dues and reading the seminal works of Christopher Alexander, especially The Timeless Way Of Building (1979) and A Pattern Language: Towns, Buildings, Construction(Alexander, Ishikawa, and Silverstein 1977). And, for anyone who wants to use patterns in their work and understand the thinking that goes into patterns, Alexander's books are the best place to start. However, the two main books are long, and his key ideas are scattered throughout them because of the persuasive instead of didactic approach he takes to articulating those ideas.

Despite their importance to working with patterns, most of the material produced by the patterns community don't do a good job of explaining Alexander's ideas. With a few exceptions, the available explanations are typically either too brief and misleadingly simplified, or else they get caught up in the philosophical underpinnings. Alexander's ideas are not easy to simplify, and although the underlying philosophy (a combination of Taoism, Zen, and Alexander's own notions) is interesting as a philosophy, it isn't itself critical to a beginning understanding of patterns.

I try to achieve a middle path in this chapter. I present Alexander's fundamental ideas about patterns, the ones that are useful to the starting practitioner of patterns. But I avoid the more esoteric elements of Alexander's ideas, simply because they need a book by themselves and Alexander wrote it in many volumes.



A UML Pattern Language
A UML Pattern Language (Software Engineering)
ISBN: 157870118X
EAN: 2147483647
Year: 2005
Pages: 100
Authors: Paul Evitts

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net