In my last article for Linux.com, I explored a few ways newcomers to open source projects can get started. While there are many resources to explore open source project communities, choosing which project to contribute to can still be a quite daunting task. You could go searching in the more than 23 million repositories on GitHub, the world’s largest source code hosting platform. But there are better ways. This article is meant to be a short guide to help novice open source practitioners more easily identify the first project they’d like to contribute to.
Start with the Humans, End with the Source Code
With some time and training - be it in university classes, via online tutorials, enrollment in a coding workshop, etc. - you can learn a different programming language or work effectively with the new framework of your choice. To be most successful contributing to an open source project, choose one that not only appeals to you technically but socially. You’ll be spending time and effort getting involved, so look for a project that matches your interests and values.
Many projects will explicitly state their mission on the website’s About page, so take a look there first. Are the contributors trying to solve a technical or social problem that inspires you to get involved? For example, I volunteer with the Privly Foundation, a non-profit organization that both develops software and creates online & offline educational materials and events to educate users and developers about online privacy. As the person who is always asked by family and friends just what those complicated permission settings on each social networking site actually do, Privly’s mission deeply resonates with me.
Depending on your interests, you can find open source projects dedicated to the democratization of online publishing to tracking the health of honey bee populations worldwide. If you’re interested in working on projects with humanitarian aims, there are over 25 listed in this recent article. While the well worn “scratch your own itch” phrase originally referred to solving a bug that impacts the developer personally, I find it’s more valuable to think of it more expansively; work on something that passionately interests you and knowledge will follow.
Figuring out whether or not you get along well with a project’s community can seem tough when many of your interactions occur online, but there are a few pointers that can make sifting through the many choices faster and easier.
How Are New People Treated?
Is there an explicit space on the website with guidelines for new contributors? Does the project have a listing on OpenHatch with an offer to provide mentors to new participants? Are questions in the project’s IRC channel or discussion forums met with useful advice or are the answers along the lines of “read the manual” or “go search the internet”?
If you’re looking for a good place to get started contributing, look for a group that provides an onramp to new folks that’s both immediately useful and inherently welcoming.
Does the Project Value Contributions Beyond Code?
Many contributors to a project get started by working on so called “peripheral contributions,” e.g. something other than source code; perhaps a developer first contributes a fix to the project’s documentation or gives a how-to lightning talk at a local user group. Does the project celebrate these successes? Are they even acknowledged on the project’s website, newsletter or in its social media streams?
If the answer to these questions is no, you may find that the amount of time that passes before you feel well integrated and rewarded for your work on the project is longer. When getting started with something new, a small amount of immediate reward keeps you motivated to continue. Plus, no one wants to spend their free time working on someone else’s free software unless they feel appreciated. Seeing that a project values all contributions to it is a strong sign that you’ve found a great community to spend time with.
What’s It Like to Hang Out with This Community IRL?
If you’re just getting a feel for a project’s landscape, try spending some time with its community members offline. Many open source projects and their members regularly convene events, from large global user conferences to smaller regional events. Before making arrangements to attend, you may also want to see if the conference or event has a Code of Conduct for attendees. (Providing these ground rules to all participants helps ensure a safe and productive space for everyone. Personally, I will neither speak at nor attend events without a CoC in place.)
If time constraints or travel costs are an issue, you can also spend time with your would-be project community at user group meetings. Check the project’s website for user group listings or check out sites like meetup.com to find local meetings within your area of interest. When attending the meetings, do you enjoy the atmosphere? Feel like you’d enjoy spending time with some of the group members outside of the user group? Like you can ask questions without prefacing them with the words “Sorry for the stupid question?” If you’re answering yes to these questions, chances are good that you’ve found your tribe.
If you are unable to make evening meetings due to family or work obligations, there’s nothing wrong with politely asking the organizers if they ever set up meetings as lunch and learns or weekend breakfasts. Chances are they’ll ask you to help organize, which can be an excellent very first contribution to both the open source project of your choice and its local community.
Using these tips can help you get started finding a project to contribute to, but one of the greatest things about participating in the open source world is the opportunity to benefit from the collective wisdom of many peers and mentors. If your open source project is searching for new contributors or you’ve interacted with a project community and found it particularly rewarding, I hope you’ll share your knowledge in the comments section of this article.