7 essentials to run a successful open source project
Written by Jaap Jan de Boer on 21st January 2016
This article is a follow-up on my previous article: ‘My research on open source projects’. That one was all about finding out what was already written and said about the contribution to open source projects. This article is an enumeration about my findings in that stage of my research, combined with new insights which I got from interviewing open source developers. So, let’s dive in the seven essentials if you want to run a successful open source project.
1. Be friendly
What appeared to be a recurring theme during my research is that people who participate in open source projects want to be treated kindly by the project owners and the community. Developers, for instance, like to put a lot of work in open source projects and they’re open for criticism, as long as it’s constructive. Don’t criticize them if their contribution isn’t of the quality level you want it to be. Instead, let the contributors know what’s missing, or which parts aren’t perfect yet and let them know how to improve their work.
2. Be active
If a developer wants to contribute to your project but you haven’t put any work in it for years, it’s not very attractive to contribute. So, even if you haven’t worked on the project for some time, let people know that it’s open for contributions and that you’re still monitoring the project. Also, be active in facilitating, monitoring and stimulating the community of your project.
3. Be visible
Write a great and extensive description of the project: how does it work, what do you want to achieve, what do you need to let it work. Making such things explicit will help the project to be found a lot easier. Also, write and talk a lot about your project in blogs, forums and meetups. Spread the word!
4. Be clear
This aforementioned description can often be found in the README.md. This is the first step for good documentation of your project. Make sure that this is available, so people can judge in a few minutes if this is the right project for them to contribute to. Documentation needs to be great so people won’t walk away from your project, for instance because they can’t find how to install the software.
5. Be approachable
What lacks in a lot of open source projects is that it isn’t clear for everyone how to contribute. Most of the times it is clear for a developer, but for instance, designers, copywriters and UX designers are forgotten in the process. Make sure it’s clear for everyone how to contribute to your awesome project: let a front-end developer work on the front-end, a back-end developer on the back-end, but also let a designer, a copywriter and a UX-designer contribute on the things they’re great at. Make all elements of a project open source and not just the code.
6. Be appreciative
No one likes to work for nothing. If someone contributes to your project, always thank them for it or even better, use their work in your project. Make sure you (or someone else in your team) monitor incoming contributions and review it all. This way you can be certain that every contribution will be processed and contributors get proper credits for their work. Also, a rating system for the best contributors will motivate people to keep working on your project. Many people work on open source projects to develop their career, so they can use your rating system for example in their job applications.
7. Be a great communicator
The community is one of the most important things of an open source project. It’s important to have close contact with your community. Be fast and clear in responding to questions or requests. There are a few ways this can be done, I will list a few: be active on IRC, have an open Slack team or a discussion board. Also, make your ticket board open to external people. Make sure you have some members of your team who will monitor all these communication channels.
Of course, a lot more can be said about this subject, but these seven things were recurring topics throughout my research. If you’re missing anything on my list, please let me know in the comments below!