David from Kodaps
1y ago
A neuro-spicy Parisian Brit who writes about software engineering, tech communication, entrepreneurial journeys & data. I help understand code, why it is fun, & how devs think.
Explaining technical challenges or features to a non-developer is often frustrating, but done right it is rewarding.
We use condensed jargon like "race condition" or "side effect" to express complex concepts. However for most people, those terms have no meaning. Which means explaining them out into non-technical terms.
Here are four tips to help you do just that
Tip 0: Determine the common ground
Start by defining the known common ground.
Ask questions like "What is your understanding of" whatever core concept you are trying to explain. This show you where the gap lies. And how to fill it.
And it means you don't waste the time of the people you are communicating with.
Tip 1: Use analogies to connect complex ideas to familiar concepts
Technical concepts have physical world equivalents people can relate to.
A database is a library of ledgers. A network message is an address. A program is a recipe. A commit is a record of which lines in the code were changed.
Once you have your analogy, tell a story with it. With diagrams if need be!
Tip 2: Simplify language and avoid jargon
Jargon permeates our language.
Among people who understand it, it speeds up communication. With a non-speaker, it kills it.
Use everyday words.
Tip 3: Highlight the business value and relevance
How does what you are doing translate in terms of time and money for the business?
How will it help have time, or make money? How does it help better meet the end-user's needs?
How can it benefit the people you are communicating with?
And remember: one of the better ways to ensure you understand a concept fully is to explain it to someone who is new to it. In other words: You too can benefit from the exercise.