Back Room Front Room 2
Back Room Front Room 2
Back Room Front Room 2
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
44<br />
ENTERPRISE INFORMATION SYSTEMS VI<br />
2 THE ARCHITECTURAL<br />
METAPHOR<br />
It all started at IBM in the early 1960s. Fred Brooks<br />
approached Jerry Weinberg with the idea that<br />
architecture might be a good metaphor for what we<br />
do in software development. Jerry encouraged him<br />
to pursue the metaphor, and the rest is history.<br />
Of course, it didn’t end there; many others would<br />
rediscover the metaphor from different perspectives<br />
over the years. One of them would be Peter Naur,<br />
who noted this in 1968:<br />
…software designers are in a similar position to<br />
architects and civil engineers, particularly those<br />
concerned with the design of large<br />
heterogeneous constructions, such as towns and<br />
industrial plants. It therefore seems natural that<br />
we should turn to these subjects for ideas about<br />
how to attack the design problem. As one single<br />
example of such a source of ideas I would like to<br />
mention: Christopher Alexander: Notes on the<br />
Synthesis of Form. (Naur 1968)<br />
As time progressed the metaphor took on a life<br />
of its own, and the word took on a meaning that<br />
might strike is originators as foreign or off-centre.<br />
This problem wasn’t unique to software. The<br />
architect Christopher Alexander also maintained that<br />
architecture of the modern age had lost its roots.<br />
Alexander argued that in early human cultures and in<br />
contemporary rural cultures, people built their own<br />
houses from materials familiar to them from<br />
everyday life. They didn’t hire architects and<br />
perhaps not even carpenters, but invested themselves<br />
in the building of their homes or businesses.<br />
Sometimes a community would come together for a<br />
barn raising, or neighbours would lend a hand if<br />
someone were re-building after a fire. However, the<br />
homeowner was in touch with the materials of the<br />
craft and with the details of the product itself.<br />
Alexander faults technology with a decrease in<br />
the quality of construction and decay in beauty. That<br />
reinforced steel beams are available as construction<br />
materials makes it possible to create a 70-foot span<br />
in the lobby of a skyscraper hotel. That one can<br />
build such structures doesn’t mean they are<br />
beautiful. Another key aspect of technology is its<br />
affinity for pre-manufactured and often massproduced<br />
parts. Alexander noted that premanufactured<br />
parts have all their degrees of freedom<br />
fixed at the factory, and thus cannot be made to fit in<br />
the context where they belong.<br />
But it is impossible to form anything which has<br />
the character of nature by adding preformed<br />
parts.<br />
When parts are modular and made before the<br />
whole, by definition then, they are identical, and<br />
it is impossible for every part to be unique,<br />
according to its position in the whole.<br />
(Alexander, 1979: p. 368)<br />
This key idea gained the attention of the objectoriented<br />
software community, a community that had<br />
developed a stake in pre-manufactured software<br />
parts called objects. The word of the day was reuse,<br />
and objects had offered hope that pre-manufactured<br />
objects could achieve this vision. The evidence<br />
suggested otherwise. Reuse wasn’t working,<br />
certainly not in the object-oriented world.<br />
The other aspect of Alexander’s worldview that<br />
gained the attention of the object-oriented<br />
community was Alexander’s attentiveness to the<br />
human side of design. Alexander’s notion of design<br />
went far beyond utilitarianism to broader quality of<br />
human life and to the core itself of human existence.<br />
Patterns were ultimately about people.<br />
At the time, the pattern community took this<br />
human element as a value and a watchword but<br />
failed to make it a central agenda. Having suffered<br />
lapses in architectural thinking over the years, the<br />
software community focused on the architectural<br />
aspect of patterns as its end. This led to a<br />
technological cornucopia of patterns, mostly lacking<br />
in the life that was central to Alexander’s original<br />
work. Alexander initially offered this insight on<br />
software patterns ten years ago (and published the<br />
perspective in 1999), but not much has changed in<br />
the interim:<br />
Have you asked whether a particular system of<br />
patterns, taken as a system, will generate a<br />
coherent computer program? If so, I have not yet<br />
heard about that. But the point is, that is what we<br />
were looking for all the time. Again, I have no<br />
idea to what extent that is true for you and<br />
whether you are looking for the same thing when<br />
you work on software patterns.<br />
So far, as a lay person trying to read some of the<br />
works that have been published by you in this<br />
field, it looks to me more as though mainly the<br />
pattern concept, for you, is an inspiring format<br />
that is a good way of exchanging fragmentary,<br />
atomic ideas about programming. Indeed, as I<br />
understand it, that part is working very well. But<br />
these other two dimensions, (1) the moral<br />
capacity to produce a living structure and (2) the<br />
generativity of the thing, its capability of<br />
producing coherent wholes—I haven’t seen very<br />
much evidence of those two things in software<br />
pattern theory. (Alexander 1999: p. 75)