Communicating

April 15, 2020

In my last role, I was a tech lead for the better part of a year. I worked with my fellow nerds, but I also spent lots of time communicating technical things to non-technical people. Through this time, I really learnt how being a good communicator can elevate you. Great communication is a superpower you’ll use throughout your career. For example, being able to communicate well will let you:

  • Explain to your friends and family what you actually do as a software developer.
  • Convince a colleague why you believe something is important and worth doing.
  • Explain why a particular change is difficult and might take longer than expected.

I like to ask myself a few questions to focus my thoughts, especially if I have a bit of time to prepare.

  • Why do they want to know it?
  • What is their current level of understanding?
  • How much detail do they need?
  • What’s the best way to explain this?
  • Do they have any questions?

Why do they want to know it?

Figuring out why somebody wants to know something lets you shape your conversation. I try to keep this in mind particularly when communicating with non-technical people. It helps me get to the heart of what I’m trying to say. Knowing who you’re talking to, and understanding what they want to find out lets you have better conversations. For example, if somebody asks you “hey, how do cookies work?”, understanding why they want to know this helps you a lot. If they’re asking because they saw a banner that mentioned cookies, you won’t need to be super detailed. Whereas if they’re trying to build something using cookies, you’ll be getting deeper into an explanation. Figuring out what the other person wants to know first will help you focus your conversation.

What is their current level of understanding?

Understanding what they currently know helps you avoid overloading them, and you won’t repeat what they already know. Everybody you speak with ranges in experience, and understands topics at different levels. If you’re explaining something and you have time to prepare, you can ask them in advance what they know right now. If it’s more spontaneous, you should figure this out at the start of your conversation. Basing an explanation around their current level of understanding will let you both walk away satisfied.

How much detail do they need?

As engineers, we have a tendency to go too deep too fast when explaining things. This is often counterproductive. At an old workplace I saw a conversation between an engineer and the CEO. The CEO wanted to know how a feature was going. To explain this, engineer pulled out his laptop and begun showing off the code they’d been writing. Our CEO was non-technical, and didn’t care about the code; they only wanted an update. Showing them the code lead to a bad conversation that didn’t answer the original question. Being aware of what information your audience wants leads to better conversations. They may not want a deep dive on a topic then, or ever. They may want to know how to print the contents of a file in their terminal, but might not care about the Unix philosophy. They might, but you should figure out if now is the time and the place.

What’s the best way to explain this?

When you’re explaining something, your job is to figure out the best way to explain it. As engineers, we have many avenues available to us. Next time try using some code, pair programming, or whiteboarding to aid your conversation. Another tool I love is the analogy.

Before I worked in software I worked at an Apple Store. This meant I spent a lot of time explaining technical things to non-technical people. Imagine trying to explain RAM to your grandparents and you’ll have an idea of what I mean. I used to explain RAM like this:

“Think about the RAM on your computer as your work desk. If you have a small desk, or a small amount of RAM, you can still fit all your documents on it. But you’ll have to move things around to find something particular, and you won’t be able to find your information as fast. Now, if you had a bigger desk, you can spread your documents out. You might even know where you put particular documents, especially the ones you use often. Having a bigger desk makes you more efficient, like having more RAM makes your computer more efficient.”

This is a pretty basic analogy, but it conveys what the other person needs to know and doesn’t go over the top. It doesn’t matter if they completely understand how RAM works, but it’s helpful for them to know why it matters. Next time you’re struggling to explain something, think about if you can use an analogy.

Do they have any questions?

It’s important to leave space for questions after you’ve explained something. I’ll always ask something like “does that make sense?” or “do you have any questions?“. It gives them space to get more information on what they care about, and shows that that you have time to fill in any gaps. This leads to more conversation and lets you discover areas where you can help the other person develop a better understanding.

Being able to communicate matters. It’s something you can improve at, and is a skill that will make you excel. It improves your relationships at work, your craft, and allow you to foster better relationships with people outside of work. It’s a skill you can use to distinguish yourself and will make you a more effective engineer.


© 2023 Scott Gangemi