Communicate Effectively To Get What You Want
Effective communication is a superpower for software engineers.
Welcome!
Hi this is John with this week’s Developing Skills - Skills for Developers looking to develop their careers.
🙏 Thank you for being one of the 13,071 software developers who have subscribed, I’m honoured to have you as a reader. 🎉
If there is a topic you’d like to see covered, please let me know by replying to this email📧
Tip of The Week: Communicate Effectively To Get The Result You Want
“Hey John, can I talk to you about 1918?” Steve called out to me as I walked past the meeting room he was leaving.
“Sure, Steve. What’s up?”
“Well it’s not going well, the algo team haven’t completed 1912 and Mimi hasn’t gotten us the requirements for the batch runner yet.”
“OK”, I replied as I carried on walking into the kitchen to grab a coffee.
“We should also talk about the Python contractor who started last week and the pen test results Dave got” added Steve.
“OK Steve, let’s catch up tomorrow afternoon” I said having checked my calendar as the coffee machine filled my cup.
I went on with my day full of meetings. Steve went back to his desk and fumed. As his manager I should have dropped everything to deal with these urgent issues. Why didn’t I get it? Didn’t I care he wondered.
I did care and when we talked properly the following day I wished we’d dealt with the issue when we’d talked. So why didn’t we?
Because we had a communication breakdown. Like most communication failures this was due to one or more of the following reasons:
A lack of context.
No clear purpose.
No clear topic or several topics are mixed together.
No focus and inability to get to the point.
In this case there was no clear context, I managed several teams and had no idea what ticket 1918 was about. The purpose of the conversation wasn’t clear either, what action was I supposed to take here? There was a jumble of topics mixed into this brief conversation: ticket 1918, the aglo team, Mimi, the batch runner, the new contractor and the pen test. And because we never got to the point, I rushed off to my next meeting unaware that there were issues I needed to help my team with.
So how could this have gone better? Well, communicating effectively requires three things:
You capture your audience’s attention and prepare them to receive your message.
You get to the point quickly, before you lose their attention.
You focus on actions and solutions, not problems.
So how do you do that?
Firstly, start the communication with an effective opening, which provides:
The context - what are you talking about?
The desired outcome - what do you want the other person to do with this new information?
The key point - the most important point you want them to take away.
In short, if the conversation ends after the opening, they should have understood the key point and know what they need to do with that information.
After the opening you should to provide a brief summary of what you want to talk about. It should include three core parts:
What you are trying to achieve / the outcome you want.
The obstacle that is preventing you reaching the outcome.
What you are going to do / what you want the receiver to do to overcome the obstacle.
So putting all this together, had Steve split out his issues and addressed them one at a time I would have understood how important what he was telling me was and would have dealt with it immediately. Here’s how that might have looked.
“Hey John, can I talk to you customer demo on Monday?” Steve called out to me as I walked past the meeting room he was leaving.
“Sure, Steve. What’s up?”
“We’re working on the batch runner, we need your help. Right now it’s not going to be ready on time.“
Here Steve set up the context - delivery of the batch runner for a customer demo on Monday, the outcome he wanted - my help, and the key point - it was going to be late if we didn’t take action.
Let’s see how the rest could have gone.
“We’re blocked because we don’t have the data loader component from the aglo team and Mimi hasn’t been able to deliver the full requirements. We don’t have any capacity to help them, can you spare anyone else to?”
Here it’s clear what outcome Steve is aiming for - on time delivery. The obstacles are specific - late deliveries from upstream and finally it’s clear what Steve wants me to do - free up someone to help with the two upstream deliveries. We could now have a meaningful conversation and take action to resolve the issue.
Try this approach next time you need to communicate effectively.
Two Ways I Can Help You Level Up As A Software Engineer:
I write another newsletter, Coding Challenges that helps you become a better software engineer through coding challenges that build real applications.
I have some courses available:
Become a Better Software Developer by Building Your Own Redis Server (Python Edition) which guides you through solving the Redis Coding Challenge in Python.
Build Your Own Shell (Go Edition) which guides you through solving the Shell Coding Challenge in Go.
This reminds me a lot of the techniques I read in "think faster, talk smarter". The "what - so what - now what" framework.
It's something I've both experienced and been guilty of, and it's very hard to practice. But if you force yourself to do it, it's really helpful to untangle the threads of thoughts we have in our brain and often come to a conclusion / solution by ourselves.
Great stuff, John. Loved your story.
I actually had similar experiences online! That's why a couple of weeks ago, I wrote about a similar subject and how it destroys the concept of effective asynchronous remote work.
Those famous "Hi" messages! 😃
https://akoskm.substack.com/p/what-prevents-you-from-doing-full