What’s Behind “Design Patterns”

One of the few true bestsellers in the computer world is Design Patterns by Gamma, Helms, Johnson and Vlissides (“The Gang of Four”). Not only did it sell well, but its success also triggered the appearance of dozens of books with title and content conspicuously linked to the original. As the Gang acknowledged, the original itself is, if not an imitation, at least strongly inspired by another book. Their product is highly original in having its source of inspiration in an area far away from computers and software. That source is Design Patterns by Christopher Alexander, Sara Ishikawa, and Murray Silverstein, and the area is design in architecture. Not computer architecture, not software architecture, but architecture. To avoid confusion, I will refer to the Gang-of-Four book as “DP” and accord to the original original the honour of Design Patterns in full.

What is not widely acknowledged, and does not even seem to be known among the aficionados of DP, is that Design Patterns is but a companion to the main volume, which is The Timeless Way of Building with Christopher Alexander as sole author. That the epiphenomenon makes a great furore in the software world while the main item remains unknown is, it seems to me, remarkable. The present essay may be useful in introducing the unknown main item and arguing its relevance for the building of software.

The Timeless Way of Building is a reaction to what may be called The Agony of Architecture: architecture as a profession has achieved unprecedented size and prestige without relief from the awfulness of most new building. In the rare case where a real architect is retained for the design of a new housing development, the designer himself is nowhere to be found there, not even in a penthouse suite designed for himself by himself. Instead he is more likely to live in Greenwich Village, or Siena, or in the vicinity of the Place des Vosges. Bernard Rudofsky rubbed salt into the wound of the Agony by wordlessly documenting the missing ingredient in a book with the tactless title Architecture Without Architects. As samples he presents Phera in Santorini, the hill town of Anticoli Corrado near Rome, Alberobello in Apulia, Dogon (South of Timbouctou), among many other places.

The first, as far as I know, 20th-century architect who did something about it other than voting with his feet, is Christopher Alexander, a professor of architecture in Berkeley. He tried to put his finger on what makes Architecture Without Architects so beautiful and the products of famous architects, though Award-Winning and Magazine-Featured, so disappointing when in actual use after the initial brouhaha has subsided. The result is The Timeless Way of Building.

I have been somewhat unfair to the architects of the 20th century. I am enthralled and uplifted by Saarinen’s IBM T.J. Watson Research Laboratory in Yorktown Heights, by Gehry’s Experience Music Project in Seattle, by Pei’s stairwells in the Musée du Louvre, and Houben and Richter’s Central Library of the Technical University in Delft; with apologies for the eclectic sample — restricted as it is to one person’s experience.

The point here is that there are two kinds of architecture: the creation by the individual artist that draws attention to itself as such, and the lived-in fabric of the wistfully admired old towns of Siena, Lucca, Pisa, the canal district of Amsterdam, among still, fortunately many, other examples. The latter may be called “egoless” architecture, to borrow from “egoless programming”, introduced in 1971 by Weinberg in “The Psychology of Computer Programming”.

What is, then, the genius of Architecture Without Architects? It is, what The Timeless Way of Building calls “The Quality”, which is something that is difficult to describe. To make progress in this direction, we must recognize that the saying

Everything that can be said at all, can be said clearly.
And of what cannot be said clearly we must not speak at all.

is a council of despair. It so happens that it is precisely the most important things about which we are not able to speak clearly. But it helps to try to say something.

Not only has it not been said clearly what The Quality is, but those who have tried are not even explicit. Alexander, in The Timeless Way of Building, proceeds by oblique references, by implications. And lots of photographs, without captions; Alexander is pointing rather than defining. When Pirsig started to teach about The Quality, he ended up with a whole novel, Zen and the Art of Motorcycle Maintenance. Which brings us to Eric Raymond, who tries to explain in The Art of Unix Programming what makes the way of Unix unique. He becomes explicit by invoking the quality of “transparency” in code (page 149) but retreats immediately into the enigmatic:


One of the main lessons of Zen is that we ordinarily see the world through a haze of preconceptions and fixed ideas that proceed from our desireds. To achieve enlightment, we must follow the Zen teaching not merely to let go of desire and attachment, but to experience reality exactly as it is — without the preconceptions and the fixed ideas getting in the way.

With these warnings in place, I reproduce some of Alexander’s pronouncements in The Timeless Way of Building.

 

THE TIMELESS WAY

A building or town will only be alive to the extent that it is governed by the timeless way.


THE QUALITY

To seek the timeless way we must first know the quality without a name.

Notice that we are expected to know something without having a name for it.

 

THE GATE

To reach the quality without a name we must then build a living pattern language as a gate.

Alexander’s emphasis on language may need clarification because he skips a step. The town represents a community, a tradition, a culture. The three concepts overlap and interact by being based on a language. Alexander skipped the vague concepts and went straight on to something concrete — a language. The language is not a written one: its words are the visual and spatial patterns, 253 of them, photographed, sketched, and described in Design Patterns. In the abstract world of software there is nothing to photograph, but notice the diagrams in DP: they play an important role.

Recently Michael Levy, a software engineer at Apple, Inc, gave a lecture to a class of undergraduate students in computer science. These students have been trained to see programming as an individual activity: they are expected to do their assignments and write their exams on their own. Levy’s purpose in his talk was to correct this impression. The gist of the talk was that great software is not produced by Great Programmers but by a great community of programmers.

The community stays alive by new programmers joining. They do not replace the ones who have left, no more than babies replace the fallen warriors. Instead, the new arrivals are gradually acculturated. The culture they absorb is partly explicit: formatting rules for source code, naming conventions, policy for allocating and de-allocating dynamic storage. But the explicit represents only the tip of the iceberg; much is absorbed by osmosis. Levy’s message may be summarized as “Great software is not created by Great Programmers, but by egoless programming in a community defined by a culture.”

In 1997, in The Cathedral and the Bazaar Raymond also analyzed software as a community phenomenon. Here is the opening paragraph:


Linux is subversive. Who would have thought even five years ago (1991) that a world-class operating system could coalesce as if by magic out of part-time hacking by several thousand developers scattered all over the planet, connected only by the tenuous strands of the Internet?

 

The success of early Unix was already an example of the power of community: because of its lack of official status, programmers within Bell Labs supplied as volunteers numerous tools and library functions. The Unix world spread beyond Bell labs in the 1980s, but the power of community did not grow commensurately because of the legal constraints of various licenses, trade secrets, and (imagined) commercial interests.

When the Internet passed the relevant threshold in the early 1990s, Linus Torvalds blew away what had been holding back Unix in the previous decade. Although Torvalds is among the select few individuals who wrote an operating system kernel by themselves, his main contribution was the creation of an Internet-based community.

Linux is a community, self-consciously so since The Cathedral and the Bazaar. The fact that this community has built something significant draws one towards a comparison with the subject matter of The Timeless Way of Building. The validity of such a comparison depends on whether there is in the Linux project a counterpart of what Alexander calls The Quality. Indeed, in 2003 Raymond published The Art of Unix Programming, which can be read as an attempt to communicate by numerous examples what Alexander describes as “the quality that has no name”. Raymond may have wished he could give his book as title “Zen and the Art of Unix Programming”.

There are two kinds of architecture: the conspicuous spectaculars of Gehry et al. versus the lived-in fabric of some of the towns of old. Let us look at one such old town: Siena. As you view it from a distance it shows representatives of both: the cathedral and the town. The difference between the cathedral and the contemporary spectaculars is that the cathedral is not the product a single ego, but was, like the surrounding town, the product of a community — although one differently structured and operating differently from the one that grew the town.

Raymond, in The Cathedral and the Bazaar, writes that a community based development process can add to an existing design and can debug, but that the design, which can only be conceived by an individual, needs to be there at the beginning. It may be that the true test of DP will be to transcend this limitation. The patterns in DP may turn out to be the nucleus of a store of patterns that provides the self-selected community around an open-source project with the tools of thought and communication that allows such groups to evolve designs that recall, in this abstract domain, the magic and majesty of the cathedral of Siena.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: