views:

311

answers:

8

Possible Duplicate:
What software analogies have helped you?

Hi

Quite frequently I have to explain things to Project Managers who sometimes want to know a little bit more about something, and sometimes I try and come up with some analogy that best explains it.

Now, I can't really kick this off with a good analogy because mine usually suck, but I would be interested in yours, or some you've heard that have been used to simplify explanations.

One analogy that does come up often is when explaining Interfaces (i.e. .Net) to which I usually explain in terms of a vehicle has a driver interface, and all vehicles must implement that interface so that anyone who can drive a vehicle will be able to utilise it.

Any more? Would like to hear some, both serious and humorous. Please close if a duplicate.

+13  A: 
John Feminella
Yes I read this before, and it is a truly great analogy, and best of all anyone can understand it :-)
Mantorok
My oldest daughter was born in 7! :)
kenny
Managers have their own version of this which sounds like "induced premature birth with hope the child survives" a.k.a. push your team to the limit and hope they won't leave the company to work somewhere else.
dpb
@kenny: 7 months? Clearly you guys were following an agile development process! :)
John Feminella
Indeed! http://stackoverflow.com/questions/76526/i-need-this-baby-in-a-month-send-me-nine-women
Ed Guiness
You might be able to save a bit of time on conception though with a bigger team :o
UpTheCreek
@John Not intentionally. My daughter is just inpatient.
kenny
Rockstar programmer could born 9 babies in one month. hes that much productive.
01
+9  A: 

Open source is free, like puppies are free.

Shane MacLaughlin
A more complete version of this quote might read, "Open source is free, like puppies are free. But you'll never be able to make a cat do exactly what you want."
John Feminella
A: 

Sometimes people used to argue about whether software development was more like an art or more like engineering.

There have also been "construction" metaphors, which suggested that it's like creating a building (which was more approriate perhaps for the waterfall process).

ChrisW
Constructing software could be like constructing a building, except that customers have the unreasonable expectation that, when it comes to software, there's nothing wrong with changing the blueprints every week.
Dan Bryant
@Dan Bryant -- A buiding usually uses 'bottom-up' construction, whereas software needn't.
ChrisW
+3  A: 

Software is nothing more than an elaborate Rube Goldberg machine.

Bryan Oakley
+1 Rube Goldberg would be humbled by most software projects.
Cylon Cat
+3  A: 

Writing software is like trying to solve the puzzle you're in the act of creating.

JimDaniel
creating or re-creating? puzzle has only one solution.
01
+5  A: 

The best analogy, one that everyone gets, is to liken software development to gardening. It takes knowledge, experience, hard work, lots of maintenance.

Trees and plants (features) sometimes grow in ways that you don't quite expect, and you have to cope with that. Weeds keep sprouting (maintenance) and you need to keep on top of that. You might end up with a delightful garden or an overgrown horror.

You didn't ask, but the worst analogy has got to be brick laying. You cannot size up a programming job before hand in terms of bricks (function points), buy the bricks, hire the brick layers, and estimate to the minute how long the job will take. To think otherwise is naive or ignorant.

Ed Guiness
+1  A: 

I read one recently about Managing Your Debt:

Yes, you can produce code faster at times, but you are taking out a loan against quality and future productivity...and if you don't take the time to pay off the debt (clean up the code), the interest costs will potentially crush you.

Chris Morlier
Found the reference. This was from the 37signals guys: http://gettingreal.37signals.com/ch10_Manage_Debt.php
Chris Morlier
Steve McConnell has a length, and very good, exposition of the technical debt analogy at http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx.
Josh Kelley
+4  A: 

I forgot where I got this quote off, but i found it to be true and funny.

"Commenting your code is like cleaning your bathroom - you never want to do it, but it really does create a more pleasant experience for you and your guests." - Ryan Campbell

HoLyVieR
Depends on what pen you're commenting with!
kenny

related questions