Creating an Awesome Open Source Community

An active community is probably the most important necessity for open source software projects. Leaders of open source projects should actively satisfy the members of their community because without them their project is not worth much. Makes sense right? I recently came across a PhD thesis called “Factors Influencing Participant Satisfaction with Free and Open Source Projects.” If you’re interested you can read the entire thesis here. In summary, the research question the thesis addressed was: “What influences community member satisfaction with free and open source software projects?”

The Hypotheses

After many interviews and surveys, the following hypotheses remained valid:

  • High quality and relatively frequent developer communication lead to better satisfaction.
  • A positive relationship exists between the amount of participation and participant satisfaction.
  • A positive relationship exists between process openness and participant satisfaction.

There were some others too but these cover the main points.

Ways to Create an Awesome Open Source Community

The paper ends with several recommendations for Open Source projects that will, in theory, create an awesome open source project and, most importantly, an awesome open source community.

Based on my involvement with several open source projects, both big and small, I agree that if a project has these 6 characteristics it has a good chance to become popular. It all comes down to the user base. In my view there is no better accelerator than a happy and involved user base.

The List

  • The “About” page should include information about what types of contributions are most needed. This page should also clearly explain how community members should go about contributing.

This is pretty self-explanatory. If you want people to help you need to tell them how to help.

  • Make sure to acknowledge and celebrate contributions. This will make people who do contribute feel appreciated and motivated to continue and help more.

I’ve made several significant contributions to open source projects and it’s always a little irritating if the Pull Request is merged with no comment of appreciation like “Thanks for your help.”

  • Monitor the project’s email discussion list and/or forums and answer questions — particularly those from newcomers to create a great first experience.

There’s almost nothing more annoying than emailing a list with many members and never getting a reply. I’ve done that several times. It really creates a welcoming environment when a member of that projects community takes a minute to reply to your request.

  • Provide information to the project’s about the future development, aka roadmap.

For free and public open source projects there’s little reason for the lead developers to hide their plans. Some might fear that other projects will borrow “steal” their ideas but that’s not a good reason. A roadmap shows commitment, dedication and organization.

  • Provide documentation that is up-to-date and clear, especially the more complex components.

Reading through documentation that is old, outdated, and written for who knows who isn’t fun for anyone. Creating a group in your open source community that focuses on writing clean documentation is a brilliant idea.

  • Finally, identify what barriers participants encounter when making a contribution to the project, and take steps to decrease or eliminate them.

Making it easy for people to become involved is important. Don’t assume everyone knows the process to submit Pull Requests.

What do you think are the best practices for creating successful open source communities?

4 thoughts on “Creating an Awesome Open Source Community”

      1. Well, they are all very important, but if I had to choose two I would go with: documentation for the project and the “About” page on how to contribute. After that, having a roadmap is very important for the future development of the project.

        Also having a way of communication like twitter is great. People can ask questions and then you can write a wiki page on github or else and send a link as response.

Leave a Reply to Patrick Nommensen Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>