There are probably more metaphores for software development than for any other discipline.
Software development is like a game. No, it’s like a race. Or maybe it’s like building a building? Or maybe like building a bridge? Rock climbing? check. A battlefield? done this last week.
Metaphores can be very useful, but as we go down the list they seem to be less and less useful. The most useful one I know is the building metaphore, that is probably the most cited (for example, in Code Perfect, which also warns against useless metaphores).
Did you notice that these metaphores always tend to be “manly” ones? As if software developers suffer for some sort of infiriority complex, and are compensating by comparing them to military endeavors and exciting sports. No one ever compares software development to synchronized swimming, or group ballet dance for some reason. I wonder why? It also seems as likely as not that the person comparing development to X knows very little about X, and certainly is no expert about X.
This recent rock climbing metaphor is tenuous at best. I can make the same arguments for basically any professional endeavor. Let’s go with ballet dancing (which I know nothing about, but at least I tell you that):
Technical. The novice can only approach simple dances. With practice, the dancer can attack more and more difficult movements…
Tools. Tools are a requirement for serious ballet dancing: shoes, appropriate stage, clothing, practice equipment, and so on…
Planning and Improvising. Of course, each group performing Swan Lake approaches it with serious instructions, and yet every member contributes their own unique interpretation of things.
Fun. Dancers dance because it is fun…
Challenging. Dancers dance because there is a challenge. Can they really make it to the top (pun intended)?
Resource-limited. Ballet dancing works against a time and energy budget. The performance must be ready and rehearsed it’s time to perform, before the money runs out.
I’ll stop here, though I could conjure up more similarities.
My point is that many things are a lot like other things. Let’s stop making useless metaphores, and concentrate on those that seem unique, and actually contribute something to our understanding of ballet dancing. I mean, software development.