Hi friends 👋,
As we know, open source encourages open collaboration among contributors and maintainers. And collaboration requires good communication. Mostly, communication in open source happens asynchronously because of its remote environment. But there are also times when it occurs synchronously. I want to share how to communicate remotely in this article, especially in open source.
Asynchrounous Communication
Asynchronous (async) communication is a type of communication with a lag of time in sharing and receiving information and responses between recipients, for example, in writing conversations.
Tools
Most of the communication in open source happens on GitHub (or any other similar platform). It could be through the issue and pull request comments or via the organization's GitHub discussion board. Some organizations also provide chat services such as Slack or Discord for their community to communicate asynchronously.
Essential Things in Async Communication
Don't make assumptions
When you have doubts or need more clarification, ask questions and don't make assumptions. Async communication, more often than not, can lead to misunderstanding because writing is different from speaking. In an international community, cultural and language backgrounds also play a role in a loss in translations.
Keep transparency
In open source, you want to keep open communication and be transparent. That means you better use the comments and discussion board on GitHub or threads on chat service apps rather than direct messages whenever you want to share information or ask about something. This transparency is beneficial for the community to follow the threads, know what's going on, and help out when necessary.
Effective communication
You want to keep effective communication through clear and short messages. Consider this when committing your changes, creating issues, making pull requests, and writing comments on GitHub. It also applies to conversations on chat service apps. That way, others can easily understand your purpose. Consider also different cultures and language backgrounds; you want to use words with explicit meanings because not everyone understands specific cultural sayings, etc.
Timezone differences
In a remote environment, time zones play one of the significant roles. It is daylight at your place, but it might be midnight in other parts of the world.
Therefore, don't use the channel
or here
tags when asking questions in the chat service apps. Doing so will notify everyone in the app, which is disturbing, especially when it is not an important announcement for the community. These tags are usually only used by the maintainers or people to whom the maintainers already grant permission.
You can also take the initiative to turn off your notifications at particular hours. Some chat service apps have the setting to do so.
Have patience
Most open-source projects are volunteer-based. Contributors and maintainers collaborate at their convenience times. So, both sides should have patience in collaborating. When you ask questions, you cannot rush the maintainers to answer them immediately, and vice versa. Both sides should have reasonable expectations that are best discussed from the beginning.
Synchrounous Communication
Synchronous (sync) communication is a type of communication that happens in real-time, for example, in-person conversation or remote meeting conversation.
Tools
Sometimes, collaborators need to pair synchronously on a remote meeting app such as Zoom, GoogleMeet, etc.
Essential Things in Sync Communication
Active listening
In sync communication, active listening plays an important role. Who doesn't like to be heard and feel appreciated? Don't listen to the other person's talking while preparing your answer. Doing so will distract you and make you miss something they've said. You want to understand their intention fully by paying attention to what they say and their body language. Active listening means being fully present, showing interest in the topics, and engaging actively without judgment in a conversation.
Have empathy and be respectful
Sometimes, people need time to think about what to say. One of the reasons — especially in an international community — is that not everyone is fluent in English, amongst other reasons. Whatever the reason is, you want to be empathetic and respectful. Give them space and time to think about what they want to say without interrupting unless they ask. And you can always ask for clarification if you don't understand something they say rather than assuming.
There also can be a day you have a disagreement leading to a debate. Don't let this escalate to negative criticism and disrespect. You always want to keep a healthy conversation.
Appreciate others time
When you make an appointment for a sync meeting, you always want to respect other collaborators' time. Be there a few minutes before the agreed time. If you will be there late or something urgent happens and you can't even come, don't wait to tell the other person that you can't make it. You don't want to make them wait for you. Their time is as valuable as yours.
Final Words
Communication is a skill that you can learn through continuous practice. Good communication leads to positive conversations and relationships.
Most communication in open source happens asynchronously through writing. And written conversation is different from verbal. It is prone to misunderstanding. So, it is essential always to use empathy and be respectful in communicating. It applies to both sync and async communication.
🖼️ Credit cover image: unDraw
Thank you for reading! Last, you can find me on Twitter, Mastodon, and BlueSky. Let's connect! 😊
Top comments (5)
Thats very nice, I liked the points on both async and sync conversations. I've had real experiences where that first point "don't make assumptions" could've helped me. Thanks for the post!
Thank you for reading, Mateus! 😄
Things you need to learn before contributing to Open Source
End of the list!
great depth in information!
i learnt a lot
Thanks, Medea! Glad to hear that you learned something from it 😄