How to Make Your First Open Source Contribution
Keegan Henckel-Miller
Published 2020-09-18
Modern web development is about collaboration and building on the work of others. Between open source frameworks, web and cloud tools, networking and education, joining the open source development community can be an invaluable experience. The open source community is, first and foremost, an open and collaborative environment for improving a library of existing tools. Tools you likely already use!
In this post, we’ll show you how to go from open source user to open source contributor—even if you aren’t a programmer. So much about open source is community and communication, often overlooked and important areas.
You Don’t Have to Write Code
Regardless of whether you have a programming background, the easiest entrypoint into open source is outside of code. Take documentation—because teams don’t occupy a physical office together or may not share a Slack channel, documentation is a huge part of what keeps the open source world turning.
Additionally, There's more newbies can help with, from taking meeting notes or editing READMEs to summarizing and clarifying the project’s most pressing “issues.” In fact, that makes non-code a great place for engineers to begin participation with an open source community, too.
The open source community’s philosophy is that nothing cannot be improved. You can always leave things better off than you found them, regardless of your skillset or level of expertise. This is the overall mandate taken on by an open source contributor. The system thrives on passion and personal investment. So start by finding an ongoing project you feel strongly motivated to contribute to and improve, and let your talents take it from there.
Contribute Code to Tools You Use
Once you have a better idea of what is needed by the community, you can move on to code contributions. In this case, you’ll need some programming experience, but that doesn’t mean you need to be a senior engineer. Most projects have enough strategic direction—they need people to execute. You may spend some time searching through the vast repository of assets and flag or fix elements that can be improved. The best thing you can offer to the project in this case is your passion.
Perhaps start by looking over the project’s README for a small issue or bug fix you can work on. Don’t try to take on something too big too soon. Make sure that when you do dive in on a fix, you have communicated in forums or issue comments so you understand the problem you’re fixing. This sort of communication keeps the community all on the same page.
Additionally, look to add support for a tool you personally find useful. If you’re a user, nobody knows better than you how the user experience can be improved. Some open source projects have an integration or plugin architecture that makes them particularly good choices for expansion. You might already have an idea of what’s missing and have an idea for how to fix it. This is the project for you!
Work up to larger features by engaging with the community members working on that project and developing mutual goals. Your contributions will be reviewed by this community, so teamwork is invaluable here. You may end up one of the project’s leaders if you show enough interest in the collaborative nature of open source. That puts you in a good spot to be as open and helpful with the next generation of open sourcers as well.
Be Part of the Community
You may have noticed a “communication” theme. Discussions within an open source community are contributions, too. They might not get committed to a repository, but good conversations move the project forward. As you can read more about in our previous post, Ockam uses GitHub Discussions to facilitate communication with its open source community. It makes sense to chat in the same place where the rest of the project elements live. Good collaboration and willingness to participate are what makes the open source community greater than the sum of its parts. No project can survive if it’s difficult to communicate.
This means: don’t be afraid to share your opinion where it’s relevant! Every contributor is part of the team—even if the project has a Benevolent Dictator For Life. If a problem falls under your area of expertise, you should have the confidence and authority to captain the solution.
At the same time, ask questions when you’re confused. Everyone there is aware of the unusual form of the work environment and knows that helping others is one of the best ways to ensure the process goes smoothly, and the team maximizes everyone’s potential.
Finally, be ready to return the favor when someone newer than you comes along. Regardless of how green you feel, when someone new joins the project, they may very well need advice or practical help you can provide. Be generous with your support and offer friendly encouragement where it feels appropriate. When everyone is communicative, generous with newcomers and passionate about their work, the open source community can be a haven of collaboration and innovation, as well as an invaluable social experience.
Contribute to Ockam’s Open Source Community
If you’re looking for a place to make your first open source contribution, have a look at what Ockam is doing. Taking on the big problem of trust across connected systems, an open source approach is needed to make this work.
You can:
- Write a blog post (like this one) for its learning library
- Add documentation (or identify areas that could be improved)
- Create or summarize issues
- Build a feature (big or small)
Ockam even has a contribution guide to explain the process. Your first or next open source contribution could help improve our connected future!
Previous Article
Ockam: A Philosophy on Open Source Software Design
Next Article
Public Key Encryption Explained