Software Architecture – Naïve Architecture

For the last few years, I’ve tried to figure out what “software architecture” really is. Frequently I’ve felt that the term is used casually, but that there are few meaningful definitions. Lately, I’ve begun to think that there isn’t anything to be found – no profound meaning. I think that whoever adopted the word decided to do so based on a naïve understanding of architecture.

I don’t think it means anything more than that “the architecture” is the overall design, the plan created at the beginning of the project, much as the architect, in the naïve image of architecture, draws plans and then hands them to the builders, who goes on to build the damn thing.

Le Corbusier and his plan for Chandigarh

And in the last few years, as systems increasingly are interconnected, the term “city planning” has been adopted as well1, but again this is due to a naïve image of what city planning is: Architects draw plans for buildings, and city planners draw plans for cities – prior to that, so that architects will have to make their plans fit into the city plans.

Also part of the reason that “city planning” is used as metaphor is that most (old) cities have emerged, without much planning, and city planning is seen (naïvely) as a measure to bring order to the resulting chaos.

The software that now has to talk to other software has been developed in isolation, and frequently has deteriorated, if it wasn’t poorly design to begin with. A particular organization might have several such systems, glued together in a quick and dirty fashion, so the “software city planner” is brought in to tidy up.

I seriously doubt that it goes beyond that.

Actually, I suspect that “architecture” originally referred to hardware, possibly at the time of punch cards, and that it began to be used for software as the code for systems got larger. (So “hardware architecture” is probably a retronym.) And the notion that “the architecture” was the plans for the circuit boards is closer to the naïve image of architecture.

1 For more on the city planning metaphor in software and enterprise architecture, see my posts “On Pat Helland’s ‘Metropolis’ and Explaining Enterprise Architecture By Analogies To Cities’, “Gartner’s View of Enterprise Architecture,” and “Gartner’s View of Enterprise Architecture, Part 2.”

The above was posted to my personal weblog on July 21, 2004. My name is Peter Lindberg and I am a thirtysomething software developer and dad living in Stockholm, Sweden. Here, you’ll find posts in English and Swedish about whatever happens to interest me for the moment.


Related posts:

Posted around the same time:

The seven most recent posts:

  1. Tesugen Replaced (October 7)
  2. My Year of MacBook Troubles (May 16)
  3. Tesugen Turns Five (March 21)
  4. Gustaf Nordenskiöld om keramik kontra kläddesign (December 10, 2006)
  5. Se till att ha två buffertar för oförutsedda utgifter (October 30, 2006)
  6. Bra tips för den som vill börja fondspara (October 7, 2006)
  7. Light-Hearted Parenting Tips (September 16, 2006)