Use Metaphors when Speaking with Non-Technical People

There’s an image I like when I speak about software development: the construction of a house. Like any metaphor, it has limits, but it helps non-technical people understand what their requests mean to us by comparing them with something they can understand.

Building a Software Project Is Like Building a House #

It’s quite simple, really: your software project is a house (or maybe a building if it’s a big one). The idea is not mine! Ten years ago, my project manager was renovating the house he built and such comparisons came to him naturally.

Once, the client wanted to discuss a feature and he answered, “We can’t do that now. That’d be like adding a window, but we don’t even have the walls up yet.” That, the client understood. We could have spent time explaining that communication channels couldn’t work until there was an engine that provides actual data, but can you see how that can be confusing to someone who doesn’t work in the field?

Put yourself in your client’s shoes: they don’t know a thing about the code or technology behind their project, and they hire us so that they don’t have to. They ask questions and we answer with gibberish. We seem to type random words on a screen and, a few weeks or months later, we deliver a new feature or application. Might as well be a feat of demonic magic!

But everybody knows that building or maintaining a house requires to lay down bricks, cementing them properly, not neglecting the foundations, pipes, electricity… Using a metaphor can help us explain what we do by giving them something they can relate to.

Some Example Illustrations by Vincent Déniel #

A few months back, I discovered Vincent Déniel’s drawings, which I love because they describe quite accurately, with a dry humour, what we live everyday.

What’s more, he’s used this metaphor in several of his drawings. Here’s a selection of my favorites. Don’t hesitate to browse his gallery for more.

The Wonderful Explanation of the Technical Debt #

A client in front of a broken house complains about the time required to add a window

Technical debt is an investment you made at one time to save some time, but like any debt, interests build up, so you’d better reimburse it as fast as you can.

Revisiting “I Want a Facebook-Like Site in Three Weeks” #

A client asks to build a skyscraper in three weeks

The Myth of the Full-Stack Developer #

A manager asks a superequipped man to fix the roof, do plumbing, paint the house…

There are several other drawings in the same style:

Find Metaphors You’ll Be at Ease With #

Of course, the house building is only one possible metaphor. You should find something you’re at ease with. I sometimes used a car as an image, the dashboard and commands being the interface the engine, the back end.

Do you use metaphors, too? Care to share in the comments?