Caught in the metaphorical trap
May 3, 2010
Did you see what I just did there, in the header? I created a metaphor. Do you envision me as caught in a bear trap right now? Probably not if you’re an adult capable of abstract thinking. In fact, if anyone interprets my header to imply anything else then a possibly improductive side of metaphors, then my metaphor itself was improductive.
“Life is like a box of chocolates” according to Tom Hank’s character Forrest Gump (from the movie with the same name). However, I’d like to disagree with Forrest on this one; life is not at all like a box of chocolates … except maybe from one certain aspect – “You never now what you’re gonna get”. Oh, he said that too did he? Well, that would make the first statement somewhat useful but please don’t ever use it standalone if your life is not sweet, brown, sticky and delivered in a cardboard box.
Metaphors can sometimes be useful when you’re trying to explain a complex concept or when you want to be poetical about something. Comparing fractals to coastlines is a useful metaphor. Judith Moffetts translation of Karlfeldts poem “Winter Organ” contains several beautiful metaphors, e.g. when describing icicles:
“… On frosty evenings a silver arcade,
A glittering row of pipes, is made …”
Metaphors can also be bad and even harmful when applied in the wrong context or when people try to interpret them too literally. Godwin’s Law predicts with scary precision how metaphors and analogies can, and will be used in the wrong place. Most arguments in forum threads show no similarities whatsoever with Hitler and Nazis but yet we get to see the comparison again and again.
In the world of software development, we’ve been living with the house building metaphor for as long as I can remember and probably long before that. This is an example of a metaphor taken way too far. There might (in some cases) be certain aspects of software creation that resembles certain aspects of building a house, but when people try to fit other aspects of either side of the metaphor into the interpretation we end up with a horrible combination of code, hammers, foundation, architecture, languages, mortar and design. This is not a useful metaphor at all anymore. I’ve seen better and worse attempts at trying to get this to work but the heritage has rendered the metaphor completely useless and I hope that I never have to hear anyone use it again. I do think that we should continue to look at the world around us to find new patterns and similarities in order to learn from other fields but I don’t think that I want to hear another “creating software is like …” because most likely it isn’t.
Just one more for the road; creating software IS like a box of chocolates, you never know what you’re gonna get. At least not if you’re doing it right and have a willingness to learn along the way.