info

Navigation

Recent site activity

Home‎ > ‎

ArchitectureAsMetaphor


Architecture as Metaphor

James O. Coplien

Bell Laboratories

cope@bell-labs.com

Martine Devos

EDS

martine.devos@eds.com

 

INTRODUCTION

Most of the software development community uses a longstanding metaphor for a key technical project lead, the role responsible for the overall system structure and vision. Sometimes defined as the "keeper of the flame," the role of architect draws on parallels with the role of the same name in the building profession. The term had strong tones of metaphor from its earliest use. But the term is certainly in universal vogue across all kinds of software development cultures, where it usually evokes--at least in hopeful terms--the romantic image of the prestigious position of the classic architects in the days of Vitruvius or Alberti.

The "Architecture as Metaphor" workshop at  OT '99 was designed to investigate how the software community perceives the similarities and differences between software architects and building architects. The OT '99 call for participation says:

The goal is to build a grounded theory of software architecture, using our perceptions and experiences of building architecture as a mental prod. However, this goal only provides a direction. We will likely meet the objective of identifying key (controversial) concepts and categories for the discipline and may gain preliminary insights into relative merits of the metaphor.

It is perhaps important to emphasize that the goal of the exercise was not to do a studious comparison of the two professions--though we of course would like to base the exercise on as well-founded impressions of the building profession as possible--but to investigate how software architects view themselves relative to their perceptions of the building profession.

Prior Art

Jerry Weinberg relates that he was teaching lessons from the history of architecture in his system development classes at the IBM Systems Research Institute in the early 1960s when Fred Brooks came to visit him to ask if the term "architect" was suitable for systems people. There was concern about whether the analogy was appropriate or not, but after some discussion to flesh out the analogy, the term came into wider use following Brooks' lead [Weinberg1999].

There is a small body of prior art in this area, much of it emanating from the Design Movement of the 1960s. It wasn't until the early 1960s that several disciplines (urban design, graphic and interior design, industrial design, engineering, and craft among them) recognized the common elements of the phenomenon we now call design. Here, we appeal to that common understanding as a backdrop for software to take building design as a metaphor [Darke1979] .

Of all architects, Christopher Alexander seems to have been most successful at capturing the imagination of a broad cross-section of the software development community. The tie between software and Alexander goes back a reference made by Naur at the first conference on Software Engineering:

…software designers are in a similar position to architects and civil engineers, particularly those concerned with the design of large heterogeneous constructions, such as town and industrial plants. It therefore seems natural that we should turn to these subjects for ideas about how to attack the design problem. As one single example of such a source of ideas I would like to mention: Christopher Alexander: Notes on the Synthesis of Form. [NATO1968]

This prescient suggestion of Naur's has played out in contemporary software development, particularly in the object-oriented development community, which has taken Alexander's vision of architecture as a simplistically (mass market journalism) stated and strong metaphor for software development:

Software design is a lot like building design. ("Architecture" is a term of art in programming.) [WSJ1999]

In other contemporary literature, Dahlbom [Dahlbom1992] argues that reality (including software construction) is a social artifact apart from any corporeal manifestation associated with materials or objective reality, but that we nonetheless interact with it using the same faculties as for material constructions. The architectural metaphor figures strongly in Dahlbom's arguments.

But there is an important "man bites dog" aspect to the relationship between the two disciplines as well. L. Bruce Archer writes:

The most fundamental challenge to conventional ideas on design, however, has been the growing advocacy of systematic methods of problem solving, borrowed from computer techniques and management theory, for the assessment of design problems and the development of design solutions. [Archer1965]

So as early as 1965, computer science was already enough on its feet as a discipline to have influence on the design techniques in building construction.

By the 1980s, this autonomy in computer science--perhaps combined with a need to develop an identity--had taken the software field away from the mainstream design movement:

…The emphasis in making computer software, as with traditional craftwork, is upon the processes of using the product, its ease of operation, its suitability for the task and its adaptability to the user's specific requirements. With all computer software, the user's experience, rather than the physicality of the product, becomes the focus; the traditional concept is extended from physical objects to intangible processes.

The contrast between traditional product design and the new craft-derived approach of many software makers is analogous to the conflicting purposes of traditional and avant-garde modern art. Just as the transition from traditional art to modern art entailed not so much a change of style, but rather a complete change of attitude, approach and method, so the traditional product design approach and the emerging notion of designing as a process represent fundamentally different conceptions of design. The work of the artists of the avant garde provides a useful insight into how the transition from work with physical outcomes to purely conceptual work can be realized. [Mitchell1988]

But by this time there was also a growing move back to artisanship and craftsmanship that brings us full circle to Naur's original suggestion, as suggested in this cite from Jones which seems as though it could have been written by Alexander himself:

The more I see of software designing the more I notice resemblance not to design in other fields but to craftsmanship. In each the designing, if such it can be called, is done by the maker, and there is much fitting, adjusting, adapting of existing designs, and much collaboration, with little chance of a bird's eye view, such as the drawing board affords, of how the whole thing is organized, though, in craft evolution, if not in software, the results have the appearance of natural organisms or of exceptionally well integrated designs. But there is an important difference: software is increasingly made by modifying the actual material of previous pieces of software, as a building may be altered for a new use, whereas a waggon-maker, for instance, modifies the form, but does not reuse the material, in making each small step in the gradual evolution of his product. As in natural evolution, each alteration is made without conscious intention, or plan, of what kind of artefact may later appear out of the seemingly blind process of making corrections, here and there, as and when lack of adaptation to the working conditions, or to the materials or the making process, becomes evident. But there is a tremendous respect for the form, as it has evolved so far, embodying, as it does, the otherwise unrecorded history of a thousand ways in which the artefact and its context can be attuned. [Jones1988]

The Workshop

The OT '99 conference has a reputation for pushing the envelope, and we used the informal and tolerant nature of the venue to our advantage. We used two techniques: group theatre, and a simplified version of grounded theory suitable for group interaction. The workshop comprised an eclectic audience (Attachment 1), a majority of whom claimed to be practising software architects.

Grounded theory (Attachment 2) is based on asking questions about the phenomenon in question. We primed the activity by posing the following questions in the call for participation:

  1. What is the relationship of architects to cultural norms and fashion?
  2. What is the relationship of architects to "true beauty" that transcends fashion?
  3. What do architects produce? Do architects also implement? What is the role of as-builts?
  4. How do architects deal with customization?
  5. Where do architects work? On site? What does "on site" mean?
  6. What is the esteem of architects in their respective professions for different cultures? What are the correlators for esteem or value for the role of architect?
  7. When do architects start? When are they done?
  8. Who do architects listen to? Who do they talk to? In the typical case? In the ideal case?

We started the session with an overview of the activities that would ensue. We described the workshop as an improvised play for two players, one a software architect, and the other a building architect. The setting was to be a public park bench that favored a chance meeting between the two architects. Several audience members felt they had especially good insights into the workings of the minds of building architects; some had worked with architects to design their own houses; some had best friends who were building architects; Russel Winder is the son of a building architect. I started in the role of software architect, and Tony Heap started in the role of building architect.

The audience was asked to observe the play attentively and to note salient concepts that arose in the dialogue. Each concept was captured on a card and thrown on the floor, in the area between the actors and the audience (most of whom were seated on the floor). In grounded theory, this is called open coding. (In describing the analysis techniques for the workshop, we largely avoided grounded theory lingo.) At the end of the play, we collected the cards and organized them into categories. The intent was to look for linkages between the categories (which is axial coding in grounded theory), to further flesh out each category, and to develop some rudiments of a theory of architecture from the exercise (which is done in a grounded theory exercise called selective coding). We didn't get that far, but we were able to converge seven preliminary categories.

During the play, any audience member who felt it absolutely necessary to contribute could either replace one of the actors, or could enter the play as an actor playing a role of their choice. We had cameo appearances by software developers, by bricklayers (including one "Extreme Builder" who extolled the woes of Brick Ownership), by people having houses built, by Christopher Alexander (someone who was familiar to the software architect, but a totally unknown personality to the building architect), by a dog who was curious about the building architect and who did a nasty deed to the software architect (a dog curiously reminiscent of last year's OT chair), and a few others. The actors for the architecture roles changed out a lot--the building architect more so than the software architect, surprisingly enough. Perhaps no one wanted to be on the hot seat.

The crowd had rather a self-deprecating tone to it, as though the architects had come to do penance or to take part in a pilgrimage of sorts that would enlighten the way to improvement. Part of this might be wrapped up in British culture (self-deprecating humour is a characteristic element of British advertising and cultural criticism) and part of it might owe to the frustration in the profession.

The crowd seems did seem to take strong ownership for the metaphor, which combined with the slightly self-deprecating tone, made for an open setting where few inhibitions took root. There was open but thoughtful communication both in the role-play and in the ensuing analysis exercise.

Categories

Grounded theory starts by identifying concepts, and groups them into categories that characterize important phenomena of the topic under study. These are the categories that the workshop converged on:

  1. Change: How do architects deal with change? This was actually one of the last categories proposed, but it turned out to be one of the most insightful.
  2. Role Interaction: Who do architects interact with? This was the first category that came out of the axial coding exercise.
  3. Structure: What is the role of the architect in shaping structure? This subsumes the originally proposed category "Materials".
  4. Economics: What economic processes does the architect participate in? This was originally proposed as "Funding" and then broadened.
  5. Constraints: What are the fundamental constraints that limit the architect in each profession?
  6. Process: This subsumed the proposed categories Planning, Division of Labor, and Work Practice.
  7. Professionalism: This subsumed the proposed categories Responsibility and Liability.

Each group searched through the cards produced during open coding to find concepts relevant to their categories. Some concepts made their way into several categories. Each group produced a flip-chart summary of their results. The following sections present these results, in a reasonable attempt to convey the results verbatim from their draft form in the workshop.

Change: How do architects deal with change?

The change group focused on seven issues:

  1. Provide vision
  2. Legacy
  3. Prototypes
  4. (No) Iteration
  5. Proposal / Tender
  6. Regulations
  7. Mistakes (Blow up and start again versus covering up mistakes)

Table 1 summarizes the group's findings. It is one of the most thought-provoking summaries of the workshop.

 

 

Table 1: Dimensions of Change Category

Building

Software

Provide Vision

Aesthetics

Look

Use of Materials

(?Leads)

Technology

Strategy

(?Interfere with Developers ?)

Prototypes

Scale models

Presented to Customer

Can become the product

Presented to internal people

Iteration

Only in design, little during construction

(? Moving walls/furniture)

Environment changes small

Throughout design, build, test

Layers

º rates of change

Environment change frequent?

Fashion

Prone to

Prone to

Formality

Yes

Less so

Mistakes

Accountable

Architect sued

Visible

Difficult to correct

Not architect's fault?

Less accountable

Opaque

Perceived as easy to correct

Hideable?

Regulations

Legal Framework de jure

Disclaimers

Internal

De facto

People / Roles

Low turnover (recruit externally)

Direct Authority

High turnover (promote from within)

(< developers)

Indirect Authority

Driver

Architecture making most of possibilities

Architect is policeman

Time scale

Longer Time Scale

¬ Discipline ®

Shorter Time scale

 

Role Interaction: With whom do architects interact?

The Role Interaction group bifurcated the world into a client community and project worker community:

The role interaction group produced the above diagram depicting architect communication in a project. They viewed the architect as often being the single point of contact to the client and as the interpreters of both the contract and architectural vision to the workers. They negotiate with the client and "reflect", perhaps artistically, on the client needs. The interaction at this level is much the same for the software and building architect--an observation that would be borne out in the process category.

A main finding of another workshop I attended (Andy Moorley's "Architects are from Mars, Developers are from Venus") is that architects spend a lot of time carrying information from person to person -- being information brokers. This facet of the architectural role is corroborated in at least one other study [Grinter1999] . Cher Devey notes that architects may play both of the potentially conflicting roles of information brokers and negotiators.

Structure: What is the role of the architect in shaping structure?

Perhaps the most noteworthy thing about this chart (Table 2) is that building architects are credited with influence over all aspects of structure, whereas software architects are accorded no influence (Ø), questionable influence (?), or an even stronger version of Ø (X). The place of aesthetics and fashion are questioned for software, but software architects are given some credit for dealing with architectural style.

 

Table 2: Dimensions of Structure Category

Building

Software

Consideration

3

Ø

Shape structure to requirements

Ø

3

What not how

3

3

Infrastructure

3

?

Prototypes / models

3

?

Number of types of elements

3

?

Aesthetics

3

?

Fashion

3

3

Style

3

X

Context

3

Ø

Standards and Regulations

3

3

Fitness for Purpose

3

3

Forces Between Elements

3

X

Visibility

3

Ø

Geometry and Space

 

Economics: What economic processes does the architect participate in?

There were two brave souls willing to tackle the economics issue, and their results are self-explanatory in Table 3.

Table 3: Dimensions of Economics Category

Building

Software

Consideration

3

3

Costing / Estimate

3

3

Proposal/Tender

X

3

Money - Time to Market

3

 

Large Lump Development

?

3

Money follows "exciting work", fashion

3

3

Maintenance / whole life cost

3

X

Aesthetics

3

X

Materials / work costs and visibility

I showed this to my wife, Sandra Coplien, a barrister working on her accounting certificate, and she immediately recognized all the facets of this chart as key considerations of management cost accounting. She noted several things that are missing:

  1. Cost/benefit analysis (replacement versus using what one has, which in software would relate to reuse)
  2. Variable versus fixed cost analysis (which is another way of looking at large lump development)
  3. Direct labor, direct materials : breaking down the analysis into parts)
  4. How long does it take to recap (whole life cost)?
  5. Depreciation and amortization

These aspects could enrich the dimensionalisation of the category if more data were to be gathered concerning them.

Constraints

Table 4 depicts the dimensionality of the Constraint category.

 

Table 4: Dimensions of Constraint Category

Building

Software

Kind of Constraint

3


Indemnity

3

3

Stress / Strain


3

Number of types of components

3

3

Costings / Estimates

Client

Practitioner

Fashion

3


Standards

3


Material: Quality vs Cost


3

Skills Shortages

3


Qualification (Specialization): Scale, Category

3

3

Regulations

 

Process

Rather than doing a dimensional analysis, the process team chose to do a simple enumeration of similarities and differences, as in Table 5. The central theme seems to be the relative maturity of the disciplines.

Table 5: Similarities and Differences for the Process Category

Similarities

Differences

Constraints Satisfaction

Specialization

Overall Process -- but activities are different

Standard Tools and Techniques

Management

Underlying Theoretical Basis

Modeling & Realization

Modeling & Realization


Maturity

 

Professionalism

Table 6: Dimensions of Professionalism Category

Concept

Building Architecture

Software Architecture

Specialization

Lots in architecture

Less in software

Showing people your previous work

Essential

Architects are responsible for the user-facing aspect of the building (they delegate internals)

Resumés (snigger)

The software architect is rarely concerned with the GUI

Regulations and Standards

Both have 'em, but see legal below…

Attribution

Only Sometimes

For groundbreaking

Only Sometimes

Cf. 'about' screens + Easter Eggs

Practises have visible leaders

More true?

Less true?

Legal responsibility for actions

3

X

Shared experience

More true

Less true (especially history)

Expert silver bullets

X

3

Involvement in implementation

Hardly ever

Variable

Training, education & accreditation

(not filled in)

(not filled in)

Table 6 shows the distillation of the Professionalism category, which is self-explanatory.

Axial Analysis Considerations

Axial analysis -- so-called because it takes place along the axis of the categories -- is the due consideration of relationships between the categories. We try to link categories together at the level of their properties and dimensions. Here, we visit each category in turn and examine linkages to other categories.

Change

The Change category highlights the central concerns of change management that fall into the architect's domain. We also see change considerations in the Economics category, particularly with respect to large lump development. This is a central concern in the architecture work of Christopher Alexander, whose influence on software may be as profound as his influence on architecture of the built world. Funding is a crucial consideration in system evolution. Most contemporary personal homes have front-loaded funding. The occupant's payout for this expenditure is protracted over a 20- or 30-year mortgage. While mortgages make it possible for people to afford homes beyond the means of their monthly income, they also lead to interest expenses that dwarf the actual cost of the house. That interest money is money that could be used to improve the houses instead of feeding bank investments. To solve this problem, Alexander proposes building houses piecemeal. Piecemeal growth attacks additional problems: one never fully understands requirements up-front, anyhow, and houses should grow to accommodate increasing understanding in needs. And a builder cannot achieve a true sense of accommodation and comfort in an edifice that's master planned: only in one whose growth is tailored to the needs of the edifice over time.

The Change team mentioned the issue of iteration as well, noting iteration is a staple of software but that little happens in construction.

The Economics team found that both software and builders deal with maintenance and whole life cost. However, software models tend to be back-loaded: Boehm's oft-quoted figure notes that 80% of software expense goes into maintenance. Houses are more front-loaded -- another change concept that surfaces in the Economics category. Brand (How Buildings Learn [Brand1994]) notes that the greatest buildings are so adaptable, at a deep level, that they can serve many purposes over a long lifetime. They may change not only function, but form as well, over that lifetime: the original form does not reflect all the functions the building can support.

Role interaction

The visibility of the architect was a recurring theme in many categories. Visibility is perhaps best suited to inclusion in the Professionalism category, which tied visibility to credibility. The wry conclusion is that building architects are into "show", while software architects are invisible. This is consistent with Alexander's view that building architects often consider art for its own sake:

There is a strange dichotomy between the present architecture and planning professions. On the one hand, the architects are in the habit of creating completely mad idealistic utopias. These utopias often have little meaning, they are unlikely to be implemented; often no one in his right mind would want to implement them. They are personal dreams, not anchored in reality. Archigram’'s city on legs is an extreme example. [Alexander1969]

Visibility is an important dimension of role interaction. The Professionalism category captures the concept that the building architects are visible leaders, while that is less so in software, particularly outside the project or domain of interest.

This ties into the Change category with respect to the visibility of prototypes -- a factor in both disciplines. Visibility correlates strongly to the dimension of focus , which is externally directed in architecture, internally focused in software until the prototype itself evolves into product. Change also noted that mistakes are visible, actionable, and difficult to correct in building architecture; in software architecture, there is less visibility and accountability, and the errors are perceived as easy to correct. Furthermore, there was speculation that it may be easier to hide the errors in software than in construction. These, too relate to professionalism, which suggests that professionalism and role interaction are closely related categories linked by many dimensions.

Structure

The use of materials -- and, in particular, the breadth of materials inventory -- was a recurring theme. The Structure team itself noted that the number and type of elements is a stock concern in building, but it's questionable whether this is so in software. On the other hand, the Constraints team didn't view the component inventory to be a constraint in building, but felt it was a constraint in software. The Change team noted that while builders deal with materials, software architects deal with technology -- which is certainly a consideration in building as well. Materials and work costs were also noted in the Economics category, and balancing quality and cost appeared in the Constraints category as well.

Professionalism

Liability was a recurring concept in many of the discussions and it found its way into many categories. Professionalism captured legal accountability for actions: present in building architecture, and much less so in software. But liability was also noted in the Change category, regarding accountability for change: present in building architecture, but not the architect's fault in software. And in constraints, indemnity arose as a pertinent building concept, but not a software worry. And in process, building architects were seen as subject to pertinent legal frameworks, whereas software architects operated under disclaimers with only internal regulations.

Aesthetics was another recurring theme, which we can view as a category that extends professionalism. In the Change category, we found the focus on aesthetics in building contrasted with the focus on technology in software (though the building profession also considers material). Yet during change, both professions are concerned with fashion. In the Structure category, Aesthetics, Fashion, and Style were all addressed. Style is a concern in both professions, but Aesthetics and Fashion were deemed questionable for software. In Economics, Aesthetic considerations were found absent in software but present in building. And in the Constraints category, there is an interesting dimensionalization of Fashion, which appears to be focussed on the client in buildings, and on the practitioner in software. This is reminiscent of the Prototype concept dichotomy in the Change category.

As previously mentioned, professionalism and role interaction are closely linked in many dimensions.

Constraints

The Constraints category addresses issues in many of the other categories as a phenomenon that often cuts across the other categories. Stress/strain, component inventories and materials are issues of structure; costings are an economic consideration; fashion and standards relate to professionalism; skills shortages and specialization are issue of roles. The Constraint category is further elaborated in the discussion of the Core Category below.

Economics and Process

These categories seem to support the other five categories in the study, and their attributes aren't often cited in other categories. This suggests that perhaps they are secondary categories. In grounded theory we seek a central category from which we can derive a theory, and it appears that the central phenomenon of this study is only weakly related to economics and process.

Other concepts and "small" categories

There are other more detailed concepts that didn't surface as categories in the analysis: stress, strain, inventories, visibility, aesthetics, technology, and many others. These concepts will be presented in bold face in the story line presented before.

Constraints: The Core Category

The goal of grounded theory is to develop a theory explaining some phenomenon. The phenomenon explained by the theory is labeled as the core category. The core category is broad enough to cover the range of material in the study, and it becomes the phenomenon around which the other categories are integrated. The core category should form the main "story line" of the core phenomenon.

 

Table 7: Core Category Analysis

 

Change

Structure

Professionalism

Process

Constraints

Economics

Role Interaction

Change

 

H

M

H

M

L

L

Structure

H

 

M

M

M

   

Professionalism

     

H

   

H

Process

 

M

H

 

M

 

H

Constraints

 

H

M

   

M

M

Economics

 

M

   

H

   

Role Interaction

       

L

   

The workshop exercise was too casual and incomplete to definitively point to a single core category. However, we can choose a core category to proceed with a tentative theory, and develop a story line for the theory. After the workshop, we did an informal coverage analysis between the categories as reflected in Table 7. The table shows high (H), medium (M) and low (L) coverage between pairs of categories (the rows are the "covering" categories, and the columns the "covered" categories). The Constraint category has the tightest coupling to the other categories. It lacks explicit coverage of Process and Change, but both Change and Process show links to Constraints. In particular, the Process category notes that dealing with constraints is a common concern to both building and software.

The basic story line

The job of the architect is to balance constraints that arise from customers, standards, economics, and other people (such as project workers) involved in the process. These business constraints are in addition to the more obvious physical constraints of Structure--of making sure everything fits together. Building architects are qualified to manage these constraints in specialized areas that involve scale and the type of building being built; this is true to a much smaller degree in software.

One of the main roles of the architect is to balance the constraints between Clients and Project Workers. The building architect is more visible in this process than is the software architect, partly because their focuses are different. The software architect is focussed on building a robust product in terms of the technology in vogue, while the building architect is more directly concerned with aesthetics and conceivably with economics. Building architects are more likely to shape the structure to requirements than are software architects; other considerations, like the domain and solution technology, provide the structural constraints for the software architect. Time constraints are much tighter on a human scale for software architects than for building architects.

Even fashion provides constraints. Though this holds both in construction and in software, the sources of the constraints are different: in software, they are more internal to the craft (objects, databases, etc.) while in building they tend to be more external. This client focus in the building profession, contrasted with the builder focus in software, parallels the development of models (prototypes) used in both professions to explore the constraint space.

Constraints like economics and process might be viewed as liabilities, but some constraints such as standards and regulations may serve both the architect and the client by scoping the design space. Some of the constraints come from theory itself; there are many more of these kinds of constraints in building architecture than in software architecture. Building architecture has more of an underlying theoretical basis to support process--including the laws of physics.

To evaluate constraints, architects build models. For the software architect, the goal is usually to rally the programming team around the models. The building architect is more outwardly focused. This leaves the software architect less visible to the client than the building architect, particularly at the beginning of the project (when building architects are particularly visible). Yet people felt that the materials constraints are harder for the building architect than for the software architect, and that they have a larger effect on what one can and cannot do with Structure.

If some constraints aren't met, there are repercussions -- being sued and legal frameworks for builders. Software architects are less visible and perhaps less accountable. Software architects also seem to have the opportunity to come in and make more fixes around (just before and just after) deployment time, involving themselves as the bearers of "silver bullets" to fix system-level problems.

The architect may also be the source or conveyor of constraints. In software, the architect is often viewed as the "policeman" who "enforces" the architecture.

Further Questions to add Density to the Theory

A good grounded theory covers all of the categories of interest. As suggested by the results of Table 7, the workshop exercise left gaps in the axial analyses and therefore in the ability of the theory to explain all the phenomena. "Architecture as metaphor" is a large topic, and subjectively we know there are many other gaps in the analysis. Grounded theory encourages researchers to pursue additional lines of inquiry to fill in these gaps. The following questions are designed to help fill out the axial analysis and to address other important aspects of the theory.

  1. With respect to professionalism, how does the architect handle constraints?
  2. What are the constraints affecting process?
  3. How do constraints relate to the architect's role in dealing with change? What are the constraints affecting change?
  4. Much more exploration is appropriate for Economics. How is spending distributed over the lifetime of a software project as compared to a construction project (along with subsequent remodelling)? How are amortization and depreciation handled?
  5. What is the relationship of time to change in both fields of architecture? What is the impact on economics?
  6. To what degree can we separate architect, the role, from architecture, the practice? What other roles practice or contribute to architecture, and how does this involvement vary from construction to software?
  7. What are the non-material artifacts and constructs that are of concern to a building architect, if any? What are the material constructs that are of concern to a software architect? In short: how much of architecture is related to material?
  8. To what degree do architects (in both professions) claim to work from pre-drawn plans? To what degree are the plans followed? What is the role of the architect in creating such plans?
  9. Collect stories of actual changes in which architects were involved in both fields, and look for the recurring patterns of constraints in the stories. Are there different considerations, particularly with respect to modifying legacy structures, in how the two professions balance constraints?
  10. What is the role of experience in balancing constraints?
  11. What is the average experience level of an architect in each profession?
  12. Is there a "constraint hierarchy" whereby constraints on the architect are translated into constraints for the builders and customers? How does the architect restructure these constraints and articulate them to builders and customers? Is the architect the primary source for more constraints in one discipline than in the other?
  13. Who decides what constraints are not constraints, but enablers which contribute to a "recurring pattern of enablers"?
  14. Does the metaphor extend to other roles (draughtsmen, for example)?
  15. What is the range of practices, in both fields, that goes beyond the stereotypes we hold both for building architecture and software architecture? Are many software perspectives of the archtectural metaphor colored by archetypes that hark back to the idealized architects that predate the industrial era? What are the ranges of responsibilities in current building and software architecture?
  16. What is the range of products built by architects in both fields, and the distribution of work across this range? Is most software architecture for parts of systems that rarely see daylight or receive any public exposure? Are most building architects, in fact, little more than project managers for small local projects?

A next step will be to design an exercise to elicit answers to a crisp subset of these questions, hopefully at a follow-on workshop at OT 2000.

Conclusions

There were several surprising conclusions from the workshop. From my perspective, the most surprising conclusion was that the software industry is further along in following the architecture principles of Christopher Alexander than building architects are. Among these practices is piecemeal growth: the fact that most software efforts are in fact an attempt to modify existing software. The economic investment follows the effort, which may suggest that software follows an economic model akin to that recommended by Alexander.

Attachment 1. Workshop Participants

  1. Ray Ashman, ray@ashman.v-net.com (Bounced)
  2. Phil Boardman, philb@lucent.com
  3. Stefan "Billy" Bogstedt, stefan.bogstedt@wmdata.com
  4. James Bryant, jamesbryant@compuserve.com
  5. Islam Choudhury, iarchoud@lgu.ac.uk
  6. Dave Cleal, dcleal@cix.compulink.co.uk
  7. Pat Collins, pwc@iol.ie
  8. Jim Coplien (leader), cope@research.bell-labs.com
  9. Scott Crawford, scobard@aol.com
  10. David Dench, d.j.dench@hud.ac.uk
  11. Cher Devey, cher_devey@bcs.org.uk
  12. Martine Devos (leader), martine.devos@eds.com
  13. Richard Drake, rdrake@objective.co.uk
  14. Nick Duncan, ndunkin@qatraining.com
  15. David Harvey, dihharvey@cix.co.uk
  16. Tony Heap
  17. Kevlin Henney, khenney@qatraining.com
  18. Robert James, robert.james@demon.co.uk (Bounced)
  19. Andy Longshaw, andy.longshaw@qatraining.com
  20. Ewan Milne, ewan@lucent.com
  21. Andy Moorley, moorley@compuserve.com
  22. Alan O'Callaghan, aoc@dmu.ac.uk
  23. Christine Pohl, christine_pohl@at.ibm.com
  24. Ken Power, kpower@acm.org
  25. Nilesh Sampat, nmsampat@technologist.com
  26. Peter Shillan, peter_shillan@nag.national.com.au
  27. Chris Simons, Chris.Simons@dial.pipex.com
  28. Kevin Watkins, kwatkins@objectdesign.com (No forwarding address)
  29. Charles Weir, cweir@cix.co.uk
  30. Steven Wheeler steven.wheeler@eds.com
  31. Russel Winder, russel@dcs.kcl.ac.uk
  32. Roy Woodfine?
  33. Jari Worsley, jari.worsley@adaptive.com
  34. Peter Wynkes, pwynkes@europe-data-consult.nl

  35. Attachment 2. The Elements of Grounded Theory

    From Naresh R. Pandit, The Qualitative Report 2(4), December, 1996 (http://www.nova.edu/ssss/QR/QR2-4/pandit.html)

     

    The three basic elements of grounded theory are concepts, categories and propositions. Concepts are the basic units of analysis since it is from conceptualisation of data, not the actual data per se, that theory is developed. Corbin and Strauss (1990, p. 7) state:

    Theories can't be built with actual incidents or activities as observed or reported; that is, from "raw data." The incidents, events, happenings are taken as, or analysed as, potential indicators of phenomena, which are thereby given conceptual labels. If a respondent says to the researcher, "Each day I spread my activities over the morning, resting between shaving and bathing," then the researcher might label this phenomenon as "pacing." As the researcher encounters other incidents, and when after comparison to the first, they appear to resemble the same phenomena, then these, too, can be labelled as "pacing." Only by comparing incidents and naming like phenomena with the same term can the theorist accumulate the basic units for theory.

    The second element of grounded theory, categories, are defined by Corbin and Strauss (1990, p. 7) thus:

    Categories are higher in level and more abstract than the concepts they represent. They are generated through the same analytic process of making comparisons to highlight similarities and differences that is used to produce lower level concepts. Categories are the "cornerstones" of developing theory. They provide the means by which the theory can be integrated. We can show how the grouping of concepts forms categories by continuing with the example presented above. In addition to the concept of "pacing," the analyst might generate the concepts of "self-medicating," "resting," and "watching one's diet." While coding, the analyst may note that, although these concepts are different in form, they seem to represent activities directed toward a similar process: keeping an illness under control. They could be grouped under a more abstract heading, the category: "Self Strategies for Controlling Illness."

    The third element of grounded theory are propositions which indicate generalised relationships between a category and its concepts and between discrete categories. This third element was originally termed 'hypotheses' by Glaser and Strauss (1967). It is felt that the term 'propositions' is more appropriate since, as Whetten (1989, p. 492) correctly points out, propositions involve conceptual relationships whereas hypotheses require measured relationships. Since the grounded approach produces conceptual and not measured relationships, the former term is preferred.

    The generation and development of concepts, categories and propositions is an iterative process. Grounded theory is not generated a priori and then subsequently tested. Rather, it is,

    ... inductively derived from the study of the phenomenon it represents. That is, discovered, developed, and provisionally verified through systematic data collection and analysis of data pertaining to that phenomenon. Therefore, data collection, analysis, and theory should stand in reciprocal relationship with each other. One does not begin with a theory, then prove it. Rather, one begins with an area of study and what is relevant to that area is allowed to emerge. Strauss and Corbin, 1990, p. 23. Emphasis added.)

    . . .

    Glaser, B. G., & Strauss, A. L. (1967). The discovery of grounded theory. Chicago: Aldine.

    . . .

    Strauss, A. & Corbin, J. (1990) Basics of qualitative research: Grounded theory procedures and techniques. London: Sage.

    . . .

    Whetten, D. A. (1989) What constitutes a theoretical contribution? Academy of Management Review, 14, 490-495.


    REFERENCES

    [Alexander1969] Alexander, Christopher. Major changes in environmental form required by social and psychological demands. Ekistics, volume 48, 1969, pp. 78-85.

    [Alexander1977] Alexander, C. A., et al. A Pattern Language. New York: Oxford University Press, 1977.

    [Archer1965] Archer, L. Bruce. Systematic Method for Designers. In Nigel Cross, ed., Developments in Design Methodology. Chichester: Wiley, 1984, reprinted from a work published by The Design Council, London, in 1965.

    [Brand1994] Brand, Stewart. How Buildings Learn: What happens after they're built. New York: Viking (Penguin Group), ©1994.

    [Dahlbom1992] Dahlbom, Bo. The Idea that Reality is Socially Constructed. In Floyd et al., eds., Software Development and Reality Construction. Berlin: Springer-Verlag, 1992, pp. 100-126.

    [Darke1979] Darke, Jane. The primary generator and the design process. In Nigel Cross, ed., Developments in Design Methodology, p. 177. Chichester: Wiley, 1984, reprinted from an article in Design Series 1(1), 1979, 36-44.

    [Grinter1999] Grinter, R. E. (1999) "Systems Architecture: Product Designing and Social Engineering." ACM Conference on Work Activities Coordination and Collaboration (WACC '99) San Francisco, California: February 20-22, 1999. 11-18.

    [Jones1988] Jones, John Chris. Softecnica. In John Thackara, ed., Design after Modernism. P. 219.

    [Mitchell1988] Mitchell, John. The product as illusion. In John Thackara, ed., Design after Modernism. P. 211.

    [NATO1968] Naur, P. and B. Randell, eds. Proceedings of NATO Software Engineering Conference, Garmisch, Germany.

    [Strauss+1998] Strauss, Anselm, and Juliet Corbin. Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory. London: SAGE Publications, ©1998.

    [Weinberg1999] Personal interview with Jerry Weinberg, 31 May, 1999..

    [WSJ1999] Petzinger, Thomas, Jr. The Frontlines: To get machines to talk to each other, two men write human language. Wall Street Journal, 14 May 1999, page B1.