Isolated patterns

Christopher Alexander’s A Pattern Language[APL77] claimed it should not be read in isolation but along with The Timeless Way of Building[TTWoB79], as they were really one book in two volumes.

We have been forced by practical considerations, to publish these two books under separate covers; but in fact, they form an indivisible whole. It is possible to read them separately. But to gain the insight which we have tried to communicate in them, it is essential that you read them both.

— Christopher Alexander, A Pattern Language, p. ix.

When people just read A Pattern Language, they can come away thinking the benefit of such a system is in cataloguing the patterns and how to reference them. However, if you read The Timeless Way of Building, you realise there is much more to it. One book teaches the laws of physics; the other is a book of facts. Both are valuable, but you learn how to think from the first, and in this case, the first was The Timeless Way of Building, but it was published second1.

Much effort[APL77] went into finding and deciding which patterns were valid and which were merely wishful thinking. Christopher Alexander and his co-authors spent eight years and wrote thousands of words to help us understand what a pattern should mean to people. And above all things, they taught us about ‘the quality without a name’, which was fundamental to discovering new patterns and refining them in the architectural domain.

If you read these two books—and if this subject has intrigued you, then perhaps you will—I recommend reading The Timeless Way of Building first. The book invites you to skim-read it, only taking in the headings. Your first read will take only an hour or two. Once you have read The Timeless Way of Building as deeply as you are willing, only then skim through A Pattern Language. However, I cannot help but also recommend you take the time to read the much smaller book, The Oregon Experiment[TOE75], as it makes many of the processes and patterns in the other books concrete (sometimes literally).

I can’t know, of course, but I believe many software developers spent some time reading through A Pattern Language but never sat down with The Timeless Way of Building. Many pattern fans appear to have come away with a comfortable set of templates. Their patterns have a standardised form, much like those in A Pattern Language, but they lack a reason for having been collected in the first place. They lack the larger interconnected contexts.

In many cases, we see the absence of purpose where a pattern is documented but otherwise useless. The pattern might happen repeatedly, but it’s too niche. Or the solution is too obvious. It is so obvious that even though it’s a niche problem, it was resolved the same way each time and nothing unexpected was learnt.

In the patterns of A Pattern Language, we see subtle references to ‘gotchas’ and validation criteria. The patterns are rarely written as how-to guides or step-by-step instructions on what to use or how to implement a solution. Instead, they are arrangements and concerns you must address.

Pattern fans should have invested more time in understanding the core principles of patterns, but it seems they spent more energy on acts supporting their position in the movement and signing their name. And, as systems theory predicts, a low-energy commitment with high reward is an attractive behaviour. Accordingly, others followed.

Design patterns were never meant to be identified as reusable elements separate from each other, but so much of the work was done by looking at the parts, not the whole. When engineers try to understand machinery, their documentation includes diagrams of how things work. They often have two types. The first is the diagram of the mechanism as a whole. The other is an exploded view of the mechanism, with lines showing how the parts fit together. Most of the early design pattern work spent time reviewing the pieces in an exploded view, and only some of the pieces at that. Without the whole picture, many readers misunderstood the patterns as concepts they could introduce as new elements into an existing system. The truth about new elements emerging from the old was lost along the way.

1

Except, it was actually the third, The Oregon Experiment came first in 1975, then A Pattern Language in 1977, and only later, in 1979, The Timeless Way of Building. Such an unfortunate ordering.