The famous saying goes that “a picture is worth a thousand words” but when it comes to software development, an environment where you are expected to communicate with business people, I found the saying “an analogy is worth a thousand pictures” to be more applicable. Probably ever since the invention of the computer, those who work to develop software have had a tough time explaining its concepts to business people who may not know the lingo well. Programmers are familiar with data structures like queues or what LIFO and FIFO means, but we usually do a poor job of explaining it so that others get it.
One of the most powerful ways I have been able to drive a concept home with people is with the use of an analogy. One of the definitions for an analogy, as outlined on dictionary.com, is “a comparison made to show a similarity”. This means explaining a concept by relating it to another situation or familiar concept to draw a connection between the two ideas. If the person can relate to the familiar concept then they can apply that familiarity with the new thought you are trying to explain. The idea is to give the person a mental picture of the situation so that they relate that picture to the concept you are trying to explain.
For instance, the other day someone was trying to understand what was meant by a “stream” in C++. Other experts attempted to explain the concept by referring to object readers, writers and other classes that you knew the asker had no experience with. As far as they were concerned, they were explaining Greek with Greek. I decided to tackle the explanation with an analogy of a group of people standing in a single file line at an event ticket window. By explaining to the user that each person may represent a character or a byte and that readers were like people with clipboards moving down the line asking each person questions and processing them, the new person found the concept much easier to understand. Then to explain writing was then just a matter of telling them that it is like these people being placed in line (either in the back or inserted in the middle etc).
The person could relate to standing in line and thus they could relate to the idea of a stream. The better the analogy can relate to the person you are explaining to, the easier it is for that person to make the connection between concepts and follow along.
One of the most important tools I have found in an interview is the analogy. Often times you are asked to meet with some people and talk about what you do, how you would solve problems and perhaps how you relate to other people on the job. In these interviews you tend to get one or two business people (perhaps an executive) and they bring along a techie who can validate your answers for them. But wouldn’t it be powerful if you could explain a complex idea directly to the business person without the need of the techie to translate? Knowing the business person is all about business, and probably understands the almighty dollar, it is usually pretty easy to relate a technology concept to something money related and have it make sense. “By implementing this technology this way, you introduce a system that can save you $100k a year, this is like cutting out a pesky contractor’s wage.” (The business person may know a pesky contractor who is asking too much money and doing to little work so they can relate to the cost savings this system would provide.)
I know for a fact that analogies have helped me land jobs just because the business person liked the way I was able to explain something advanced into something easily understood. They don’t want to feel stupid because you are talking lingo that no one understands. They want to know that at least someone on the team can boil a concept down real quick and give them the gist of what is being talked about so that they can be well informed. This idea alone makes you very attractive in an interview.
By delivering an analogy that relates to the person you are speaking to, you can quickly explain a complex or unfamiliar idea in terms of something a person can relate to. This trick of being able to translate something complex into something simple is a powerful tool and helps when it comes to interdisciplinary communication. Employers like these people because it helps business minded people get a glimpse into the world of developers. Developers like it because it helps them avoid the long winded explanations to people who seem to “not get it”. They want to code after all, not have to explain themselves for 30 minutes.
This trick is great for interviews because it shows that you can think in both worlds, business and technology, and can help spread around ideas that include everyone in the conversation. They may even bring you along to high level meetings to help them relate to the topics being discussed (be their translator) and that in itself can help you shape a company’s direction. That can certainly make you worth your weight in gold and help you become a vital member of any team. Your development team will like this because you can help steer the company away from tricky implementations and make everyone’s coding life much easier.
What tricks do you use to help business people, or those unfamiliar with technology, to understand concepts? Let us know in the comments below!
Thanks for reading! 🙂