Yea, I love analogies. They are a great way to get your point across. I started using them heavily when I managed a small team of developers and had to settle a number of disputes between particularly stubborn developers.

Analogy - Resemblence of relations; agreement between things in some circumstances but not others. Websters Dictionary (c) 1913

Ever since then I’ve employed them quite often, when I can really. In terms of conversations, especially with complex ideas they are a must, here are a few reasons why:

  1. Analogies simplify the problem
    In stead of worry about every little detail we can get down to the real nitty gritty of the problem. We are allowing for a distilling of the issue.
  2. Analogies provide an alternative viewpoint
    An analogy allows you to present a different story, often from a different point of view, this can allow people to see another side more easily.
  3. Analogies remove emotional investment
    Along the same lines as #2, when we are talking about something else entirely we remove the emotional investment some one may have in the original discussion point.
  4. Analogies are a point of reference
    Often times the biggest reason to use an analogy is to show that this problem has already been argued or solved in a slightly different case.
  5. Analogies often times provide new insights
    I’m often surprised by conclusions I draw from an analogy I created when I push the boundaries of the comparison.
  6. They’re fun!
    I love a good analogy. They’re just fun to talk about, and you’ll be surprised how far you can push one if you try.

Analogies aren’t just powerhouses in conversations, they have a lot of value when trying to explain concepts in software as well. So whether I want to get some one on board to a new pricing paradigm, or I want to show a user how to use a new widget, I’m always trucking these bad boys out.

How do you use analogies?

I have been working on http://idek.net for a little while now (it’s a url shortener with great stats, useful for twitter). It’s something I’ve been doing on the side because I love to create apps. Like many friends I have who are programmers I have had many side projects that never made it. So why did idek.net get launched?

Well, the answer is easy, I aimed small. I took a good bit of one cloudy weekend and wrote a useable app and launched it. Once it was live I slowly started adding to it. It now has most of the features of the competitors, and a few more great ones planned.

I was able to gain momentum and keep it by not taking on any huge tasks that would get stuck in the mud.

Don’t want to take my word for it? Here’s some one who went into a bit more detail on why shooting for attainable goals builds momentum.

Of course, if I could follow that philosophy more closely then I’d probably post here more often!