It seems right and good and a little bit obvious that my first post should be on the topic of communication. Everything begins and ends with some form of communication delivering an idea, solution, or challenge across networks of people, and that is absolutely true in software development. I’ve been delivering software for almost 30 years, and my communication skills have been critical in every role I’ve held – as an engineer, a program manager, an engineering manager, and a foundation chair.
I do hear engineers rumbling that communication is not something they’re good at, or even something they need to be good at, and that’s an extremely career limiting view of an engineer’s role. Growing into senior, principal, staff, and distinguished engineer positions is a function of not just knowing, but teaching, influencing, and leading others. It is impossible to do any of those things effectively without good communication.
And let’s set aside the individual success and consider the impact. Without engineers that communicate effectively, we misunderstand customer needs, fail to collaborate effectively with each other, and limit the delivery ability of the businesses we work for.
The trick to effective communication is evolving from conveying a message to aligning a team. I frequently respond to people with, “I understand your words. Help me believe them.” I want to internalize the ideas I’m hearing, but I can’t do that without believing the truth of them.
Take something simple like the Pythagorean Theorem. It’s easy enough to understand variables, exponents, and addition. I can communicate this formula to someone else very quickly, but knowing a2 + b2 = c2 doesn’t necessarily translate into being about to answer questions like, “if a = 3 and c = 5, what is b?” Moreover, if someone else presents a different formula for right triangles, I may not have communicated effectively enough for the recipient to know which information they can trust. I can’t just share the facts of the Pythagorean Theorem; I have to make the recipient believe it!
Getting to real communication takes conversation. I have to speak, but more importantly, I have to listen for understanding and confusion. As Steve Covey said, “Most people do not listen with the intent to understand; they listen with the intent to reply.” And that’s such a terrible experience for the other person. And such a lost opportunity to learn something yourself! Every single conversation with every single person, regardless of age, education, or station, is a unique chance to learn from someone important.

Here are a few of my tips for effective communication.
When you’re responding to someone, always begin by responding to what they actually said. If they asked a question, answer it. Answer it clearly and before you say anything else. It’s ok if your answer is “I don’t know” or “let me ask someone” or even “the answer to your question is different based on context.” The most important thing in your response is clearly conveying to the other person that you heard what they said/asked. Anything else makes the other person feel ignored, and the feelings that come with being ignored are going to make it hard for that person to hear you.
Don’t pretend. Don’t pretend to hear when you didn’t. Don’t pretend to understand when you don’t. Speak up, be real, and be present. Asking questions or admitting you need help earns trust and makes the communication so much better for everyone involved. Most people are actually delighted when I ask for more.
Know your audience and communicate effectively for them. Don’t describe intricate algorithm details to Vice Presidents. Don’t make arcane company culture references in conversations with candidates. Whether I am speaking, writing an email, or authoring a document, I work hard to curate the content for my audience.

Give everyone you speak to a surprise gift. Regardless of how a conversation goes, I always want the other person to walk away thinking, “I’m really glad I made time for that conversation.” I promise that you have something valuable you can gift to everyone. I’m not talking about the gift of advice. I mean data, insights, or entertainment that is valuable to the other person. Maybe you know someone doing overlapping work, or you can share an anecdote that is both insightful and amusing. Whatever you have to give, make it a priority to deliver it without expectation of reciprocation.
Be brief! If you can communicate an idea in fewer words, do it! Less is more. The winding path may be entertaining, but it is so much harder for your audience to follow. Keep it simple and make it easy for the listener to understand your ideas.
Be consistent in body language and words. When we say one thing with our words while communicating something different with our body language, we create confusion and ambiguity. Most people will give the body language more credibility than the words. Be consistent in all the ways you communicate.
Be clear and precise in your choice of words. So many conversations sound like some version of Abbot and Costello’s “Who’s on first?” routine. Naming the first baseman “Who” launches an escalating conversation of the two comedians yelling “Who’s on first?” at each other. Invest time in choosing clear and precise language – especially when you’re communicating something challenging.

Good communication is an act of setting aside self. It’s hard to do, and I have found it helpful to center myself with this question, “Do I want to be right, or do I want to be successful?” We cannot deliver much alone, and we cannot succeed as a team if we’re not communicating. Listen and learn.
If you have a communication tip/trick/story, please teach me! I’d love to learn from you.