Communication is frequently mentioned as one of the fundamental skills of a good software developer, but finding simple and actionable ways to get better it’s hard.
A couple of months ago I came into the realization that I needed to improve my communication skills, which was exacerbated by the fact that I work in a remote team. This is my intent to write down what gave me good results over the last six months; the conclusions I came after making an active effort to change my communication habits. Please take them with a grain of salt, this a work in progress and nothing is backed with more data than my own—probably very biased—experience.
For the sake of organizing things, I’ve grouped the bullets into three categories: the other, the group and the self.
The other alludes to 1:1 communication with other teammates, it’s partially different from group communications because the dynamics and the constraints are different, but almost everything in this section can be extrapolated to the group section.
- It may sound cliché, but communication is a two-way street, don’t expect others to hear you if you don’t pay attention them.
- Always make sure you understand 100% of what the other is trying to manifest, and ask until it’s cristal clear to you. Making “progress” based on wrong assumptions wastes way more time and adds frustration to both parts.
- Try to find the balance between not asking questions and asking too much. It’s easier said than done, but at the end of the day is a muscle that has to be exercised.
- If you are having a 1:1 conversation with somebody that needs your help, try to stay in the convo until the issue is sorted, async communication is great, but if you can unblock your teammate by giving exclusive attention to the chat for 10 minutes it’s worth it.
The group alludes to 1:many communication, this includes chat groups, mails with several recipients, pull requests, issue trackers, etc.
- If you are using pull requests or a similar way to deal with team collaboration, treat them as documentation, put as much info as you can so other members in the team can read and understand what is going on.
- If you are not posting in groups of people because you don’t want to disturb the whole team, think about that twice: you don’t need to mention
@everyoneevery time you post, if you are working on something and you think that could be beneficial for other people of the team to know about that go ahead and post.
- If you find anything interesting, whether is a tool or something related to the product that you are building, don’t keep it for yourself.
- Tools don’t matter that much: don’t be attached to them, communication is always possible when goodwill is present.
While the previous two sections are clearly self-actionable, I think there’s room for a third group: the self, here are some points that make your personal communication skills that are worth paying attention:
- Commit yourself to make an active effort to communicate better, communicating is hard.
- Take the time to re-read a long message before sending it, sometimes a brain dump is not clear for people that are not in your head!
- Try to be clean in regards to formatting, it helps to process the information.
- Find ways to express yourself and your work better, an image, a GIF or a video can show in a few seconds what could take a lot of text.
Communication is a complex and difficult topic, I plan to expand and revisit this list as the time goes on. If you have any tips or resources, please ping me at @roperzh!