As the leader of a successful open source project, two of the questions I am asked the most are:
- How can I get involved with your project?
- I'm not a developer, is there a way I can help out?
While most projects have some sort of "getting started" guide, and within the open source community there is a general understanding of how to get involved, there seem to be few guides on how to do it.
This is an attempt at being a one-size-fits-all guide. Not all open source projects work this way, and this guide won't address every situation, but it should at least provide a general pointer in the right direction.
How can I get involved with your project?
The first thing you will need to is to read up as much as you can about the project. Look over their website; if a project has a getting started or how to contribute document, make sure you read it and do what it says. You need to also be a regular user of the software. As a project leader there is nothing more annoying to me than someone who wants to help but does not actually know how the software works. The more you know about the project, the easier it will be for you to know where and how to assist.
Once you have read everything you can find, make sure you join or watch all of their channels of internal communication. If they have an IRC channel make sure to join it, if they have a mailing list then subscribe to it. If you've done all your reading on the project then you'll likely already know where to go and what to do.
After you've done the previous two actions, wait a while and watch the project. This allows you to see how the project operates on a daily basis, who the different people are, and where you'd fit in. It also gives you the opportunity to decide whether or not you would be able to work with the project on a social and political level. All organisations have a culture and internal politics, and you might find that you cannot fit in to their culture. Better to leave before getting involved than to invest in a project that you cannot adjust to.
Now that you're sure you want to contribute to this project, find something small you can do, and use that to ease yourself in. Chat with the folks in the project, and check with them that the task you've picked is fairly simple and straightforward. There's nothing worse than floundering in the deep end when you barely know the project. Sometimes a task may sound trivial whereas in reality it means changing more than just what you see. A number of the core developers in my OpenLP project have started out by just fixing a small bug, only to find themselves as core developers a year later.
Make sure that you follow any and all project guidelines when you contribute. This shows the project that you're serious about helping them out and makes them far more inclined to help you out when you get stuck.
If you're a developer, make sure you check the coding style already established within the project. There is nothing more precious to a developer than their coding style, and by fitting in with the current style you are indicating to the project that you are serious about your contribution.
I'm not a developer, is there a way I can help out?
In my experience there usually more than enough developers to make a successful project. When you get to the point of being a successful project you start encountering a lot of users needing support, and developers typically hate dealing with users. This is where knowledgeable users are crucial.
Advanced users can help those less advanced than themselves with issues and queries, freeing up the developers to spend more time building the project. As a non-developer, you can also help out by writing things like a manual, frequently asked questions and their answers, helping other users on the forums, and assist the project with any marketing they might need.
Make sure you also follow the steps outlined in the previous section when you want to join the project. Just because you are not a developer doesn't mean you are exempt from knowing the project, even if you don't delve into the code.
I hope that this guide is helpful to those who are thinking about joining an open source project. If you have a question that I wasn't able to answer, please feel free to post it in the comments below and I'll do my best to answer it.