« EMEA Architects Journal 2: less architecture, more practice | Main | Not in cwm, and definitely not in RDF »

It's called software for a reason

There are a few things in life I have done that are or were remotely like building software systems:

  1. Gardening.
  2. Farming.
  3. Oil painting.
  4. Cooking.
  5. Raising children.

This is counter to much orthodox thinking, and that is troubling. To be honest it's not what I expected starting out. Nor are these stock for juicy metaphors. I appreciate that the current metaphors have much more cachet - try going into a boardroom are describe what you're going to be to doing as gardening rather than architecting.

But, the disciplines we look to for metaphorical inspiration are racing headlong to become 'soft', to transcend their physical limitations. As Ralph Johnston pointed out, there are real difficulties in altering a bridge or any physical thing after its been made - theoretically no such difficulties exist in software. Many of them use computers and buy our software just for that purpose, most notably for simulation, and they are I think dissatisfied with our ability to give them the softness they want. Whereas we seem to be desperately hungry for a physics, any kind of hardness. It's the oddest thing.

nouvel Programming seems problematic, because it seems impossible to control. So - more process, more architecture, more tools, in the hope someday that programming will simply disappear in a puff of abstract modelling. I've talked about demonizing programming before as being a bad idea. It's like a physicist hating physics because he sees wave functions everywhere, and wills them into particles by writing down equations. Maybe that's not good architecture thinking in some people's books - sorry but I can't begin to talk about software architecture without taking programming and development into consideration. I don't think there's any getting away from practice.

April 21, 2004 06:08 PM


Jon Hanna
(April 23, 2004 03:08 PM #)

I've long compared programming to blacksmithing myself. There is a degree of skill, taste and experience involved. There is a use of science, but it isn't science (just as blacksmithing isn't metallurgy). It's a "building" metaphor rather than a "growing" or "raising" metaphor, but blacksmiths do melt down old shoes to make new ones, and beating metal that is cooling while you work with it is a lot more organic than drawing blueprints.

Mostly though I enjoy the comparison because people generally realise that if they want to discuss something with someone who is beating red-hot metal into shape while it cools as they work it and simlutaneously trying to neither burn or hammer themselves that really the polite thing is for them to wait until the smith's ready to acknowledges their presence, not for the smith to immediately switch their focus of attention.
Some people don't seem to realise that this ettiquette also applies if you want to talk to someone while they're hacking code.

Maybe if I actually did some smithing I'd no longer agree though.

Trackback Pings

TrackBack URL for this entry: