Somewhere in the overlap between software development, process improvement and psychology

Direct, Indirect and complex metaphors


An extract from some blurb I wrote elsewhere:

A metaphor is the use of words diverging from their normal meaning to provide an image or story to represent something else. Metaphors are used in education:

  • to express complex meanings in simple ways
  • to provide a representation of a more abstract notion
  • to add dramatic effect

Some linguists and philosophers have even argued that metaphors may actually be people’s primary mode of operation (1) and that the metaphors we use to conceptualize abstract concepts influence the way we understand them. The importance of metaphors and analogies into our thought processes is a field of study in cognitive science (2).

I find this pretty interesting since I work in a field of abstraction layered upon abstraction so I thought I’d expand on it here. I indeed cognitive metaphors are used everywhere in computer science, business change, education and normal human interaction. I think that our understanding of things is often through analogy and metaphorical representation and since our representation is our understanding metaphorical teaching can be a powerful way to communicate a message.

There are two distinct methods of metaphorical teaching that I use, simple metaphors and indirect metaphors.

Simple metaphors:

When teaching object orientation theory and practice I’ve always started by talking about Plato who apart from having a fabulous beard discussed the idea of Forms. Forms are (at least in my interpretation) the essential essence of a thing (3). If you look at a bunch of chairs they may have very different structures but you can identify them all as a chair. They’re all reflections of some idealised version of a chair. I shall call this idealised form “Chair”.

You can probably see where I’m going this… I’m building an analogy between physical objects and abstract concepts in computer science – a metaphor. I’m also simplifying the complex by chopping out lots of tedious detail to make a few silly jokes about ancient philosophy. I can then extend it to talk about types, attributes, operations, relationships etc.

I normally shift the metaphor to pens, whiteboard pens in particular since that’s what I’m normally holding when going on about this stuff. Anyway, no one cares about object orientation anymore! Actually I don’t think that’s true at all, I think it’s just not special anymore, the development community at large just “gets it” and has grown up past the point that it’s a special thing, it’s just part of the foundation now.

To create a simple metaphor you start with the message create an analogy and then discuss the analogy. These sort of analogies should be pretty obvious and often followed with the core message.

Indirect metaphors

Sometimes there are messages you want to get across to people that they may not directly want to hear for personal/political/other reasons, or messages you might not want to give directly due to a similar set of reasons. In these cases an indirect metaphor might be more useful.  Indirect metaphors are often used in business change to overcome initial resistance to change by aligning the change with a behaviour that the audience already sees as positive.

To create an indirect metaphor you do the same as a simple metaphor, you create an analogy and then discuss it, however it’s like to the core message is less obvious and often the core message is never directly communicated.

For example, I once used to teach an iterative software development course that had an element of serious gaming (3). In the course we had people programming Lego Mindstorms robots with a simple task (avoid boundary and keep wandering about) amongst other things.

Obviously there was a simple metaphor about the robot and it’s software being a business product etc. However there was also an indirect metaphor, in playing the game the teams always found it quite difficult and always had difficulty developing what  was (on paper) a trivial algorithm using visual building blocks in a language and IDE designed for young kids. I liked this indirect metaphor that software development is intrinsically creative and difficult. My hope was that project managers discovered a new-found appreciation for their clever developers doing clever things 🙂

Complex Layered metaphors

This is a bit more complicated… I tend to call a collection of recursed indirect and direct metaphors a complex layered metaphor. More on this in Serious Gaming for education with complex layered metaphors.

See also: Metaphor restrictions


  1. Lakoff, G. & Johnson, M. (1999) Philosophy in the Flesh: The Embodied Mind and its Challenge to Western Thought. New York : Basic Books see also Lakoff, G. & Johnson, M. (1999) Philosophy in the Flesh: The Embodied Mind and its Challenge to Western Thought. New York : Basic Books.
  2. Mark Turner, Gilles Fauconnier (2002) The Way We Think. Conceptual Blending and the Mind’s Hidden Complexities. New York: Basic Books
  3. Kahn, Charles H. (2004). “The Framework”. Plato and the socratic dialogue: The Philosophical Use of a Literary Form. Cambridge University Press
  4. Prensky, M, (2004) Digital Game-Based Learning McGraw-Hill

This blog is part of a series on Holistic Communication: The linguistics of business change. Introduction, ethics and table of contents is all in the first post.


7 responses

  1. Pingback: Linguistics of business change: Holistic communication, ethics and morals « The Mac Daddy

  2. Pingback: Holistic Communication: Metaphor Restrictions « The Mac Daddy

  3. Pingback: Working with Maven multi-module projects in RTC Jazz SCM with m2 « The Mac Daddy

  4. Pingback: Serious Gaming for education with complex layered metaphors « The Mac Daddy

  5. Pingback: Definition of done « The Mac Daddy

  6. Pingback: Advanced RTC SCM Streaming – Part 1 Development, Integration and Release Streams « The Mac Daddy

  7. Pingback: Daily Standup Epiphany « Mike MacDonagh's Blog

What do you think?

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s