How to Better Communicate as a Software Developer
Communication skills are equally as important as technical skills. I will even say that failures in software teams result more often from communication issues than from technical problems. I believe that working in a team might be one of the most challenging aspects of being a software developer, and that a lot of us can improve in this area.
Let’s consider things you can do to improve your communication skills as a software developer.
#1 Learn to Listen
This is advice given in theatre and improvisation classes. If we expect you to react properly to what is said to you, then you have to give it the correct attention. The hard part is to be able to both focus both on listening and preparing your answer.
If you don’t want to forget an idea you just thought about when listening, you can ask for a moment, write it down quickly and focus back on your interlocutor. It can only lead to a healthier discussion.
How many times have you stopped listening to a teammate explaining his/her technical solution to you because what he/she was saying made you think about another one?
#2 Mind Your Written Tone
Written words are powerful. We often underestimate the impact of what we write. While we usually don’t mean harm, some words can hurt a lot, and create conflicts.
You never know in what state of mind the addressee will read your message. It doesn’t hurt to be a little more careful with your choice of words: when writing code reviews, for example. You could use smileys, as they usually soften a message.
“You have no idea how to write code 🙂 ” will always sound bad though.
#3 Put Yourself in Other People’s Shoes
Just imagine for a second that what is said to someone is said to you instead. How would you react? How would you feel in a certain situation? Understanding — or at least paying attention to — what your teammates can feel will help you at work everyday. This is called empathy, and I believe it’s extremely useful when working in a team.
But try to avoid this: “I would totally feel like an idiot, too, if I had broken the build.”
#4 Try Humility
We humans have a bad habit of trying to shine in the presence of others. Doesn’t it feel nice to be recognized by your peers? To make everyone laugh at your jokes? To appear like an irreplaceable piece in the team? Certainly.
I want, however, to emphasize the problem with this particular character trait. To me, it creates an environment where everyone tries to accentuate his own success, whereas what really matters is the success of the team.
“Boom! I’ve resolved 10 tickets and you didn’t even finish your second one. Lame…”
#5 Don’t Write, Talk
You probably can resolve issues over a written discussion, but how much time would you have wasted? Muster your courage, pick up your phone — or get up — and talk to people.
Sure, you really don’t want to disturb programmers every other 5 minutes. If the issue at hand is not really urgent, you can still write a note so you won’t forget your idea.
Honestly, the best way to get to know teammates.
#6 Accept the Fear
Do you fear to speak in public and do presentations? Who doesn’t? Instead of thinking of as an unpleasant chore, try to consider it an opportunity to engage with people and share your knowledge.
Anyway, focusing on your fears can only make them worse. Focus instead on what you have to say, and how important it is for your audience to know about it. How it can help them in their daily programmer life.
“I’m one with the force and the force is with me.”
Chirrut Imwe, before giving a technical talk
#7 Focus on Clarity
The impact of your communication (both verbal and written) depends on its clarity. Be concise but specific. When doing presentations, for example, I always try to keep just the essential ideas in my slides. It helps both my audience and myself to focus on the important things.
The same applies to coding, actually. You don’t want to define a variable name that only you will understand. You have to make your code easily readable. You also have to accept that other people generally think differently than you do. What may seem obvious to you won’t necessarily be obvious to someone else.
Is that clear?
#8 Welcome Healthy Conflicts
You don’t have to dread conflicts. I know that people consider them as taboo, especially at work. However, I believe that conflicts are useful — even necessary — for the well-being of your software team. No one should fear to disagree or to express a negative feedback.
It seems essential to me to have productive debates before designing solutions or making a decision, for example. That’s why I like to play the devil’s advocate. It often ends up being a time saver.
Might add some spice to your team meetings… **Grabs PopCorn**
#9 Practice Makes Perfect
Do you want to improve your communication skills? There is no magic — only practice. Take the opportunity to practice whenever you can find one. Doing stand-ups everyday? Practice. Joining a technical meetup? Engage with someone you don’t know and practice!
It’s ok to fail as long as you try. Programmers are introverted enough to know how difficult it can be for some of us to communicate. They won’t blame you, nor judge you (most of them at least).
Have you tried streaming? I recommend it!
#10 Always Be Eager to Learn
Being comfortable with communication means being open to others. Try to show some interest in the people you meet and exchange with. I believe that you can always learn something from someone, no matter how expert you are. There will always be a domain in which you can improve.
Be honest, though — don’t fake it. In the end, it will make you meet interesting people and grow your network. Might also open some career opportunities for you.
To infinity and beyond!
How much do you focus on your communication skills in your programming job? What issues have you encountered that you could have solved with a healthy discussion?
Don’t hesitate to leave a comment below to discuss these tips. I’ll be glad to know what helps you to communicate better with your peers.