08.01.2013 Views

Back Room Front Room 2

Back Room Front Room 2

Back Room Front Room 2

SHOW MORE
SHOW LESS

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)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!