I like to think about open-source involvement in terms of levels. Although no level is more important than the other, they build up on top of each other and take you through a good path to become a key member of an open-source community. In short, the levels are:
- Observer
- Member
- Contributor
- Committer
- Maintainer
Become a user of the product#
The best way to get inspired and start contributing to an open-source project is by using it. It’s a natural first step. You’ll learn about the vocabulary around the product, its strengths, and its weaknesses from a user perspective. Your interest in improving the product will increase alongside your motivation to contribute back to the community.
This level makes you an observer.
Join the community#
Once you become a regular user of the software, you’ll feel comfortable using the software and talking about it. You’ll learn where to find help and how others use the software. You’ll visit community forums and start asking questions. Eventually, you’ll also answer questions. You are participating in the open-source community at this point. Forums are not the only way to participate in the community. You can present the software to others, talk about it, and promote it with your peers. The critical part here is that you interact with others who are or might be interested in the software.
This level makes you a community member.
Report bugs, issues, and improvements#
Once you become a regular user, you can start reporting defects (bugs, issues) to the maintainers. Open-source projects typically have online tools for this. For example, if the project is hosted on GitHub, you’ll most likely find an i ssues tab. Be considerate, and check if the bug has already been reported. If that’s the case, see if you have new information useful to the maintainers. If not, open a new case and provide valuable information on the issue. If they have any, follow the guidelines of the project to report issues. Make sure you use formatting tools (especially for logs or source code when applicable) and attach relevant screenshots if they are relevant. Suggest improvements but also new ideas.
This level makes you a contributor.
Send source code contributions#
If you are a software developer, this is the level you are most interested in. Your path towards contributing code can start with simple patches, add-ons, or documentation. They are frequently managed in the same way—through source code version control systems such as Git. Look for contribution guides in the project website, download the source code, and set up a development environment. Some projects are massive in terms of the number of lines of code, so be prepared to spend some time getting familiar with the big picture and focus on building and running the project. I guarantee you that seeing the software running from your very own built is a highly satisfying and motivating experience. Experiment by changing the code and seeing the results. Jump to the project’s bug tracker and see if there are any easy-to-tackle bugs you could hunt. Often, maintainers mark a bug as a “ good first issue” when they estimate that the effort required to fix it is low. Always go through the contribution guidelines for committers and stick to the processes that the project has established for good collaboration.
This level makes you a committer.
Become a key member of the project#
As you contribute more and more to the project, you’ll find that other community members start to recognize and trust your work. You have demonstrated your skills and passion for the project, and people trust your ability to make good decisions to help the project succeed. In many open-source projects, maintainers can nominate or even directly select community members to become permanent contributors to the source code. You’ll start reviewing other’s patches and, likely, implementing new features and help drive the future of the project. Only genuine interest and constant work in the project will take you there. The road can be long, but I promise, it’s an exciting one at each of the levels I describe here.
This level makes you a maintainer.