How to grow a sustainable, inclusive open source community

Jenny Sahng
Level Up Coding
Published in
10 min readAug 2, 2022

--

Hi! I’m Jenny, a data scientist at Multitudes. I wanted to see if the insights that we provide at Multitudes could be helpful for open source software (OSS) communities, which we all rely on in the tech world. I spoke to contributors in OSS, read up on literature, and explored data mined from GitHub to identify key challenges & opportunities which are not only relevant for OSS, but any software team that wishes to improve their team wellbeing, collaboration, and delivery. This is Part 1, here are Parts 2 and 3(+ a bonus for data people).

Open source software is used by everyone, but it is built by a small group of people

“Open up your phone. Your social media, your news, your medical records, your bank: they are all using free and public code.”
Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure, Nadia Asparouhova (previously Eghbal)

Open source software (OSS) is critical to our digital world. There is a vast ecosystem of OSS tools, infrastructure, libraries, and apps that underpin our digital ecosystem, available free via publicly available codebases. This digital infrastructure is essentially a necessary public good, which should warrant adequate funding and investment (Eghbal, 2022).

However, a lot of OSS projects are sustained by groups of volunteers or paid software teams, where there is over-representation of certain demographics and under-representation of others (Wired, 2017; Robles et al., 2016, Linux Foundation, 2021). As well as the usual systemic inequalities that impact marginalised groups, the perception that OSS must be volunteer driven (as opposed to paid) reinforces existing barriers along lines of privilege, since it relies on people who have time to volunteer. What’s more, for projects that do rely on volunteers, the burden of maintaining widely used software in one’s spare time can lead to burnout and difficulties in succession (Raman et al, 2020).

For these reasons, a healthy, sustainable organizational culture is just as important to an OSS project as it is for a private software company team. With the usual efforts required to nail organizational culture, plus extra nuances of volunteer management, there are many challenges facing these important communities. What can be done to ensure a healthy, diverse, and sustainable open source culture within our tech industry?

We need more people contributing to open source

If we involve people from the cultures and communities affected by abuse of tech in the process, that’s how to anticipate and understand impact that can lead to better outcomes.

— Coraline Ada Ehmke, Founder of the Organization for Ethical Source (via Linux Foundation Diversity Report 2021)

For OSS projects, even ones that are well funded, a wide community of diverse contributors is critical for keeping a project thriving, bringing perspectives and approaches to solving complex problems, taking some of the load off core maintainers, and minimizing the risk of siloization. Therefore, onboarding and retaining new contributors is a core goal for OSS communities. We want to encourage people from all backgrounds to move up the “contribution ladder”:

Flow chart showing progression from open-source software user, to first time contributor, to regular contributor, to maintainer/manager.

🌱 Volunteering for open source brings many benefits, but did you know that not all open source contributions have to be free? In fact, governments and private companies already can, should, and do fund open source (just not enough!). Why not see if your company has a volunteer policy that lets you use some company time for open source projects, or inquire about whether they’d be willing to support by regularly donating to an open source project that they use in their product already!

There are various barriers to contributing for newcomers

Availability of quality documentation 📚

Given the neverending list of to-dos for a project maintainer, sometimes documentation can fall by the wayside (Herbsleb et al, 2001). However, this can create a barrier to entry for newcomers who aren’t sure where to start or how to contribute effectively (Steinmacher, 2015). What’s more, clear documentation including contributing guidelines and codes of conduct are more valued by underrepresented groups in OSS, like women (Open Source Survey 2017).

Lack of recognition for most types of contributions ☕

“There is a common misconception that you need to be a developer to participate in open source. That’s a barrier in itself, and an opportunity to expand how we bring people in by targeting a wider range of roles.”

— Neisha Fredericks, Allyship Consultant and Operations Manager of the Open Source Program Office at Red Hat (via Linux Foundation Diversity Report 2021)

The success of open source software is not just about the code; it’s largely about the culture of the people in its community. Many people I spoke to referred to “non-code contributions” (or, should we say, contributions that happen to not be code) as the lifeblood of any strong community. Much of a community’s culture is defined by what happens outside of the codebase — meetups, Slack groups, hackathons, podcasts, stackoverflow, issue triaging. Organizing and managing these communities of people is a significant and unfortunately often thankless task, particularly because the contributions are relatively hard to track. This lack of incentives means that these crucial roles attract less volunteers. Some open source communities have begun implementing their own kudos systems for giving formal, quantitative recognition for all kinds of contributions (e.g. Drupal’s contribution credits).

No feedback or toxic feedback 🤬

Just like in any project team, clear communication and fruitful collaboration is key to quality OSS software. The kind of feedback that one receives on their PR can leave a strong impression on a newcomer to a community (Steinmacher, 2013). One obvious turnoff for anyone to any community is any form of toxicity or bullying (Miller et al, 2022; Gunawardena et al, 2022). Here are some interesting findings from the 2017 Open Source Survey:

“Negative interactions are infrequent but highly visible, with consequences for project activity.” — Open Source Survey 2017

21% of people who experienced or witnessed a negative behavior said they stopped contributing to a project because of it, and 8% started working in private channels more often. From an equity standpoint, women are more likely than men to encounter language or content that makes them feel unwelcome (25% vs 15%) as well as stereotyping (12% vs 2%) and unsolicited sexual advances (6% vs 3%).

Unhelpful or toxic feedback is tricky to detect programmatically, because a lot of common language AI models are trained on social media text corpora. The kinds of toxicity you see in domains like Reddit and Twitter are quite different to the more subtle disagreements seen in software code reviews. A good code of conduct that project leads enforce consistently is an essential first step in reducing this kind of behavior (see our Resources section at the bottom for more). Not only does this make it easier for people to maintain good standards of behavior, but it’s also a sign that people from marginalized groups look out for, to check that they are more likely to be safe & treated fairly in the community.

Long wait times on PRs ⏰

Newcomers are often discouraged by having to wait a long time to get feedback on their PRs (Li et al, 2021). Research from Mozilla suggests that maintainer responsiveness is a critical factor in encouraging repeat contributions. While it might not always be possible for an open source community to improve their wait times given limited volunteer hours, it is still important to measure it in order to get visibility over the experience that contributors are having.

One process change that might reduce wait time is to set new contributors up for success by making it clear what the “easy first tasks” are (e.g. with pull request labels). That way, newcomers can work on a task that is suited to their level of familiarity with the codebase, and their PRs will be clearer and faster to review.

People & culture is at the heart of a successful OSS project

“Care about the people first and their contributions second.” — Jan Lehnardt

In face of the above challenges, why do people stick around to contribute to an OSS community? Well, you can learn new skills in a supportive environment, work with domain experts and inspiring leaders on some cool tech, be part of a remote-friendly online community, and contribute to something that is valued and used all over the world. All of these benefits are driven by people. As a senior, you can share your skills through a mentorship programme (e.g. Linux Foundation, Apache Software Foundation, awesome-oss-mentors), level up your technical communication skills, and shape the growth of technology with wide impact.

While contributing to open source can bring skill/career opportunities, the human side of collaborative software development — organizational culture and inclusivity — is at the heart of what attracts contributors to OSS, just like any other community. As we learn from Ruth Cheesley’s talk on contributor experience, potential contributors are asking themselves if they feel safe, welcome, and valued in this community.

🌱 Next time you participate in an online software community (whether it’s a PR on GitHub, an answer thread on StackOverflow, or a Slack discussion), ask yourself what you could do to make the person you’re interacting with feel safe, welcome, and valued!

Data can bring visibility to how an OSS community collaborates

Because OSS communities are largely run by volunteers, it’s not realistic to put time limits on maintainers & contributors (it would be stressful if you had to commit to reviewing PRs within a certain amount of time!). However, measurement of key metrics can help to:

  1. Set expectations for contributors
  2. Find a benchmark & improve over time
  3. Identify and resolve key contributor pain points before they become problems (this also helps maintainer to focus their time on the low-hanging fruit when nurturing new contributors)

There is existing research around DevOps and community health metrics in open source (take a look at CHAOSS, GrimoireLabs, and CNCF Projects Velocity), as well as fascinating academic research that analyzes feedback quality and toxicity in open source conversations (see papers linked above).

Through my work at Multitudes, I specialize in looking at metrics from a human perspective. Over the next few blog posts, I’m going to be exploring variations of well known DevOps metrics in the context of contributors — so rather than aggregating at the repo or organization level, I will be aiming to illustrate parts of the contributor experience. Part 2 is here, where I look at how review wait time differs for different portions of a contributor base, and Part 3 explores what factors might contribute to people staying vs. leaving an OSS community.

Conclusions

  • The health of the communities that drive open source projects are critical to our digital ecosystems.
  • We need more people, and a more diverse range of people, contributing to open source. However, there are various barriers to newcomers giving it a go.
  • Newcomers are attracted by safe, supportive organization culture. For this reason, it is the responsibility of all of us as beneficiaries of OSS software to be inclusive and considerate when interacting in collaborative online spaces.
  • Data can help visualize certain elements of a new contributor’s experience. This can help communities set expectations, benchmark & improve, and invest their time efficiently at removing the most pressing barriers to new contributions.
🌱 This is our first time looking into open-source data. Was it useful? Send us your feedback, questions, and thoughts via Twitter, LinkedIn, or hello@multitudes.co👉 Interested in ethical team health metrics? Apply to join our closed beta!

Resources

How to contribute for first timers

Codes of conduct

Recognising all contributions

State of open source

Tips for maintainers

Acknowledgements

I’d like to thank the following people for their time, guidance, and insights on this project:

Level Up Coding

Thanks for being a part of our community! Before you go:

🚀👉 Join the Level Up talent collective and find an amazing job

--

--

Data Scientist @ Multitudes, formerly Xero. Co-creator @climateclubnz