Today's open source communities include people from all around the world. What challenges can you expect when establishing an online community, and how can you help overcome them?
People contributing to an open source community share a commitment to the software they’re helping to develop. In the past, people communicated by meeting in person at a set place and time, or through letters or phone calls. Today, technology has fostered growth of online communities—people can simply pop into a chat room or messaging channel and start working together. You might work with someone in Morocco in the morning, for example, and with someone in Hawaii that evening.
Global communities: 3 common challenges
Anyone who's ever worked in a group knows that differences of opinion can be difficult to overcome. In online communities, language barriers, different time zones, and cultural differences can also create challenges.
English is the predominant language in open source communities, so people without strong English language skills may find it difficult to understand documentation or suggest changes. To overcome this problem and attract community members from other areas, invite bilingual people into your community. Ask around—you might be surprised by who is fluent in other languages. Bilingual community members can help others contribute by helping to bridge language barriers, and can help your project engage with a wider audience by translating software and documentation.
People also program in different languages. You might prefer working in Bash, for example, while others prefer Python, Ruby, C, and so on. This also means that people might find it difficult to contribute to your codebase because of the programming language. It is important for project leaders to choose a language that’s been adopted by the software community in general. If you choose a less-used programming language, fewer people will participate.
Different time zones
Time zones can present another challenge to open source communities. For example, if you are in San Francisco and want to schedule a video call with a member who is in London, you'll need to adjust for an 8-hour time difference. You may need to work very late or early, depending on the locations of your colleagues.
Physical sprints, in which your team works together in the same time zone, can help address this challenge, but few communities can afford this option. Schedule regular virtual meetings to discuss your projects, and establish a regular time and place where everyone can discuss pending issues, upcoming releases, and other topics.
Different time zones can also work to your advantage because team members can work around the clock. If you have a real-time communication platform such as IRC, users can find someone to answer their questions at any time of the day or night.
Cultural differences can be one of the greatest challenges for open source communities. People from different parts of the world have different ways of thinking, planning, and solving problems. Political situations can also affect work environments and influence decisions.
As a project leader, you should strive to build an environment of tolerance for different perspectives. Cultural differences can encourage discussion among the community. Constructive discussions are always good for projects because they help community members see different angles of the same topic. Different opinions also help improve problem solving.
To succeed in open source, your team must learn to embrace differences. This is not always easy, but diversity will ultimately benefit your community.
Additional ways to strengthen online communities
Go local: Online community members may discover contributors who are located nearby—meet up and start a local community. Two people are all you need to start a community. Invite other users and employees at local companies; they might even offer space for future meetups.
Find or plan events: Hosting events is a great, inexpensive way to build a local community. Get together at a local coffee shop or brewery to celebrate the newest version release or the implementation of a core feature. The more events you host, the more people will likely join you (even if just out of curiosity). Eventually, a company may offer you space for meetups, or you can raise funds to cover your expenses.
Keep in touch: After each event, reach out to local community members. Collect email addresses or other contact information, and ask them to join your chat platform. Invite them to contribute to the wider community. You will likely discover lots of local talent, and who knows—you might even find your next core developer!
Share your experiences: Your local community is a valuable resource, not only for you, but also for the wider community. Share your findings and experiences with others who might benefit from them. If you're sure how to start planning an event or a meetup, ask others for their insights. Chances are someone out there has experience that can help get you on the right track.
Consider cultural differences: Remember that cultural norms vary by location and population, so scheduling a particular event in the early morning might be fine for people in one location, for example, but inappropriate for people in another. Of course, you can—and should—use references from the wider community to gain a better understanding of such differences, but you will sometimes need to experiment through trial and error. Don't forget to share what you learn so others can benefit from your experience.
Check your personal views: Avoid airing strong opinions (especially regarding politics) in the work environment. This will only inhibit open communication and problem-solving. Instead, focus on engaging in constructive discussion with team members. If you do find yourself in a heated argument, take a step back, cool down, and refocus the discussion in a more positive direction. Discussions should always be constructive, and different perspectives should benefit your community. Never put your personal views before the community’s greater good.
Try asynchronous communication: Real-time chat platforms are on everyone’s radar these days, but don't forget email. If you can’t find someone in your online platform, send them an email. Chances are you'll get a quick reply. Consider emerging platforms that focus on async communications, such as Twist, and don't forget to check and update forums and wikis.
Try different solutions: There’s no single perfect formula, and the most effective way to learn is often through experience. Trial and error can teach you a lot. Do not be afraid to fail; you will learn from failure and you can never stop improving.
Communities require nurturing
Think of your community as a small plant. Each day you must water it and make sure it gets sunlight and oxygen. Take the same approach to your communities: Listen to your contributors, and remember that you are dealing with human beings who need to be in constant communication to function properly. If your community loses the human touch, people will stop contributing to it.
Finally, keep in mind that every community is different, and no single solution will ever apply to all of them. Be persistent and never stop learning from your community, and then adapt.