Open Source projects are built around supportive communities. People come together from all over the world to work on code, attend conferences, share knowledge, learn, and above all to help and support other people in any way they can. Contributing to an Open Source project and being part of a community provides you with many opportunities for personal growth and possibilities to try new things that you might not encounter day to day as a developer.
But why should you embrace the human side of Open Source? What are the benefits? What are the challenges? How can the tough parts help us to be better humans? Let me explain.
Volunteer to help
Unsure about how to get started with Open Source? Approach an OS project or community and ask if anyone needs any help. Someone will always need help with something. Why ask for something to work on when you could just search for yourself? Asking others will reveal the biggest problems and needs of project. You also get to introduce yourself to people and possibly onboarded onto a project. It is much easier to collaborate and get things done once you connect with people and become part of a team.
Ask project maintainers if they need help organising a project or any specific help with issues. Find out if the Open Source project has an established communication channel that you can join. The Drupal community uses IRC and Slack channels for daily discussion and organises numerous local meetups and conferences all over the world. You can volunteer to help out with the code itself or you can write documentation. You can organise, volunteer and speak at events. You can participate in hackdays or contribution sprint events. There are endless opportunities to help out, you just need to track down the community or project leads and volunteer to help.
If an Open Source project doesn’t have a community or any events around you, try and create a small scale one yourself. Host a hack day in your office or at a coffee shop. Take a small group of friends or colleagues and work together on an open source project or tool for an afternoon. Start and promote an online community on Slack or Gitter. A community can start and easily grow from these small steps.
Volunteering is a great opportunity to try out new skills, tasks, roles and responsibilities. As a developer I had little opportunity and experience with things such as organising events and mentoring other people. When I volunteered, people suggested that I could help out with those tasks. I soon discovered that I thoroughly enjoy helping out people rather than the code. I can add those new skills into my career and continue to enjoy supporting Open Source communities in that way as much as I can.
Always be yourself
An Open Source community is a diverse place with many opportunities. Never try to be something you’re not or feel like you have to contribute in the same way as someone else. As long as you are helping a project or helping people, you are doing the right thing.
If you’re unsure of how to help, start by listing your strongest skills; things you would like to learn and things that interest you. Ask others how you can help and use your list find something that interests you and provides you with a sense of achievement. Try all of the opportunities offered to you and stick to the things that you enjoy the most. Don’t keep doing things that you don’t enjoy or get any value from out of a sense of obligation. The beauty of Open Source is that it’s a team effort and everything can carry on without you.
Consider your own time schedule and how Open Source contribution can fit into it. Do not feel guilty if you can’t contribute as much as other people or as much as you would like to. We all have busy lives as it is, don’t overcrowd yours, people will understand.
Don’t take negative feedback about yourself to heart. There are many ways of doing things and people will always have differing opinions. Earlier this year I received negative feedback about how I was maintaining a project. It devastated me. I thought I was going to have to change myself or worse completely step down from the role.
I eventually told others about the encounter and was immediately told to not get upset over one small piece of negative feedback from a stranger. Everyone does positive things that far outweigh a single vague piece of criticism. As long as you are helping others and having a positive effect on the work you are doing well. If in doubt, ask for feedback in a safe space with the people you closely collaborate with to see if you there is anything you can improve on.
Giving and receiving feedback
Open Source contribution aside from code, is mostly posting comments into an issue of some kind. Anyone, from anywhere, at anytime, can post something. It’s all too easy to lose a natural conversation flow in an issue queue or a forum. Written communication in itself is a tricky form of communication. Written words can be interpreted in so many ways by other people.
Here are some tips that I have collected over time from being amongst project bug trackers and issue queues.
You can never assume that the person who reads your comment is a native speaker of that language. This is one of the biggest challenges you will encounter. You need to make sure that your writing is as clear as possible for anyone to understand. Also you need to take into account that things can get completely lost in translation. If in doubt give or ask for further clarification.
When posting feedback always pause before posting. Take a minute to read it through again and see if anything could be misinterpreted by someone else. Rewrite your post if necessary. “Rage posting” or coming across bluntly can easily happen because you wrote and posted something in 30 seconds.
Ask someone else to review your response. Especially if you have drafted a lengthy review suggested improvements to a piece of work. Sometimes we just can’t see how we come across to others.
Remember that you are critiquing the work and not criticising the person who worked on it. Provide useful feedback for improvements and the context behind your suggestions. Avoid being purely negative with no constructive feedback.
If you are struggling to get your point across or can’t understand the point being given by someone else, take the conversation to a different medium. Use a messaging tool or have a video call to establish a real time conversation flow. If you can’t have a face to face conversation reinforce your thoughts with emoji. Make it absolutely clear when you are being positive about someone’s work and do mention the positives, it helps to outweigh the negatives. Try and be resourceful with your communication when situations gets tricky.
Always reply in the most positive way that you can. Even if someone is being completely disrespectful to you. Fighting back doesn’t help at all. Trust me it’s exhausting and doesn’t get yourselves anywhere. First ask the person if they are doing okay and explain in the nicest way possible that their comment is coming across as negative. The reasoning might be that they posted the comment in a rush, or it has been lost in translation, or they could just be going through a super hard time in their personal lives. All of these factors can easily creep into written communication.
If someone is being the absolute worst, ignore them and/or report them. More often or not someone else will be in the sidelines to support you and most Open Source communities have Codes of Conduct in place.
If appropriate, try and educate others on how to improve their communication in the future. And keep asking for feedback on yours. Communication takes a lot of practice and we can always improve. An Open Source community is a great environment to learn the ropes.
Listen and learn from others
There has been a lot of talk in 2016 about the downside of putting ourselves in a bubble. It’s a big world out there and we are all very different. We all have different backgrounds, cultures and opinions. Open Source communities are huge and diverse. The variety can be wonderful but we are always prone to making mistakes because there is so much to understand about culture and diversity. My best advice for Open Source and life in general is to always seek to understand the viewpoints of others, and to listen and learn from other people as much as we can.
Spare some time to engage with new people. Learn about their backgrounds and their cultures. Embrace the fact that you are in contact with people from all over the world who lead very different lives to you. When I travel to an event, I prefer to stay in apartments with friends I have previously met at events who are from all over the world. I use this opportunity to understand and appreciate their routines, their habits, and their mindsets based on their own culture and beliefs. It’s a fascinating and enriching thing to do. It helps you to be more empathetic and understanding of others. You will appreciate more and more that not everyone is like you.
The next time that you are at an event, break away from your company team or your usual group of friends and find a group of people you may not know that are seeking companionship and go do something together. My absolute favourite thing to do is to sit with a diverse group of people and talk. You can learn a lot in one evening and it’s interesting and fun at times to compare cultures and appreciate differences.
Let’s wrap this up insert gift emoji
Open Source projects and communities are wonderful environments to try new things and to seize opportunities offered to you by others. Open Source can enrich your life with new skills, opinions, culture and friends. Embrace being part of an Open Source community and collaborate together with others. Improve your communication skills through discussion and understanding of other people. Always strive to share your knowledge, your opinions and your values with others to help further enrich a project and the community behind it. But most of all have fun with what you do. Let yourself be supported by others and always strive to support other people. Have a fun productive Open Source filled 2017 everyone!