Monday, April 27, 2009

Metaphors Matter

Quoting from Chapter 2 in Code Complete: A Practical Handbook of Software Construction by Steve McConnell (Microsoft Press, 1993):
A confusing abundance of metaphors has grown up around software development. Fred Books says that writing software is like farming, hunting werewolves, or drowning with dinosaurs in a tar pit. Paul Heckel says it's like filming Snow White and the Seven Dwarfs. David Gries says it's a science. Donald Knuth says it's an art. Watts Humphrey says it's a process. Peter Freeman says it's a system. Harlan Mills says it's like solving mathematical problems, performing surgery, or butchering hogs. Mark Spinard and Curt Abraham say it's like exploring the Wild West, bathing in cold streams, and eating beans around a campfire.
I'm probably more in that Wild West school, but I'd think you'd want to use metaphors friendly to your subculture / ethnicity. There's no need to narrow it to one namespace surely.

For example, one of our upcoming OS Bridge talks looks at farming. I don't know much about farming, but was thinking of this proposal when I did my imitation of David Beazley's more professional introduction to coroutines in Python.