Changing the metaphor – what if we didn't think about "shipping" software, or software "projects"?

The term "war on terror" has always made me squirm. But there's no denying the power of the metaphor. As a recent article in Scientific American argues, the metaphor you choose defines the way you think. Call the incompatibility between the West and fundamental Islam a "war on terror" and you are forced to think about how best to beat the "enemy" into submission; how to crush them militarily. It becomes a zero sum game, to be settled with violence.

But what would happen if you changed the metaphor? If you were to choose the metaphor of terrorism as disease, or crime, rather than military enemy? Then you would think about the problem in different ways. Rather than war, you might consider innoculation or policing as effective counter-strategies.

But this blog isn't about politics, it's about software. The reason I bring up the "war on terror" is because of something Tim Lister said last week. I'd always thought about our product plans as a "pipeline". But Tim said that his preferred metaphor was a bookshelf*.

Define product plans as a pipeline, and you immediately start thinking about funnels, filtering and distillation. You think about linear progression, of ideas entering the pipeline at one end and then emerging, linearly, first in first out, from the other. You worry about filling the pipeline and keeping the ideas flowing.

But change the metaphor to a bookshelf, and everything changes. Filling the bookshelf becomes a parallel task. You can put up different types and sizes of books, and you can take them down in any order. You pay attention to the book covers – how to make the book look good, and what blurb to put on the dust jacket so people will choose to pull your book off the shelf and read it.

What would happen if we changed an even more fundamental metaphor?

We aways talk about software projects. The word project makes you think of planning, spreadsheets, milestones, checkpoints and gantt charts. What if we chose a word other than project? What if we called them software organisms, or software shrubs, software herds or software jigsaws?

Would that change the way we thought about writing software? Would we come up with better ways of shipping software?

And how about "shipping" software? Is that another metaphor ripe for challenge?

Post your comments here …

Enjoyed this post? Follow me on twitter, or subscribe to my blog's RSS feed.

[* The bookshelf metaphor was actually one that Dom made and Tim picked up on]