Features

How to Retain Open Source Contributors

By Nisha Kumar, open source engineer, VMware

I recently wrote about my experience running a developer sprint at this year’s PyCon, the big annual Python conference. But another important side of conference going is the opportunity it affords for impromptu conversations with fellow developers. Specifically, I had an insightful discussion about how to effectively retain open source contributors. This post boils down the biggest takeaways so that hopefully you, too, can keep people engaged with contributing to your open source project.

open source contributors

Many open source project owners have trouble with retention, especially if theirs is not one that is well-known or has financial support or backing from prominent organizations. Tern is one of those newer, under-the-radar projects and currently has one active contributor (myself). I have actively been thinking about how to onboard and grow a more active pool of open source contributors around the project. I particularly wanted to grow contributors from groups that are underrepresented in open source, which is something I’m very passionate about.

While mulling around the PyCon expo hall, I came across a poster by Bhagyashree (Bee) Padalkar about Python-scripted tools being used by the Fedora project to collect community engagement metrics. One metric they analyze is contributor retention. Besides the fact that Fedora has a metric to track the retention of open source contributors in the first place, Bee listed a number of inferences that could be gained from those numbers regarding what does and doesn’t work for contributor retention.

This all led to a discussion with the CircuitPython folks about what they had learned from analyzing their own retention statistics. I came away with three main insights that I think are worth sharing:

  1. Reach out to previous contributors with an issue you think they might be capable of resolving.

I thought this was brilliant, as it is a way of converting first-time open source contributors into repeat contributors. The worst they can do is say “no.” And even if they turn you down, you have signaled that their work is valued – that in and of itself may very well inspire them to contribute again when they can.

  1. Be willing to mentor contributors, even for things that are trivial to you.

This point echoed conversations I have had with maintainers of VMware’s own open source projects, when contributors have had trouble submitting and updating pull requests. As CircuitPython’s @kattni reminded me, even the most experienced contributor was once a novice, needing to be led by someone more experienced to the point where they could act on their own without supervision. We can be that mentor, especially for contributors representing the full panoply of age, gender and racial diversity that we want to see thriving in our community.

  1. Have community discussions.

CircuitPython has a Discord channel where the community meets at specific times to discuss contributions, highlight open source contributors or run a show-and-tell. They make a point of moderating the conversation so that everyone has a chance to speak. One critique I have heard about other open source communities is that there are always a couple of voices that are the loudest and to whom everyone else feels obliged to listen. The CircuitPython discussion uses a round-robin approach where they invite each participant to speak in turn, whether to introduce themselves, talk about what they are working on or share what they have accomplished. That is a great model for creating an inclusive environment in which all contributors feel welcome.

Thanks to Bhagyashree Padalkar and the folks at CircuitPython for the inspiration. I hope to implement these ideas with the Tern project as it grows and adds more contributors.

Stay tuned to the Open Source Blog for more community tips, and be sure to follow us on Twitter (@vmwopoensource).