A few weeks ago we told you about how open source software had changed the world, coinciding with our round table discussion “Open source as a driver of digital transformation in the Public Administration”. And how in this changing world, the community that was contributing to improving open source software had become an indispensable part of improving the security of developments, standardizing best practices and working in a coordinated and agile way to respond to the challenges posed by both Public Administrations and companies.
We find in this “Open Source community” the work of multinationals such as Intel, Google, Microsoft, Meta or Red Hat itself. Companies that guided (let us never forget) for their own economic benefit, contribute to the development of the Linux kernel and a huge number of projects.
One of the issues that hovered over that debate was in this sense, whether this “industrialization of open source software” would not have taken its toll in the form of ending that “romantic spirit” of the independent developer who wants to contribute his bit of sand to help maintain an interesting project, selflessly devoting their effort and time to it.
And although there is some of that, the truth is that we are in 2023 and there are still channels and ways to continue being a “champion” of open source software and be able to boast of it. Here’s the way to go if you’re interested in taking the first step.
1. What do you know how to do?
Before you jump to work on GitHub or other software development platforms, you should carefully consider what your technical skills are and how you can best contribute. Maybe you master web development, or are an expert in operating systems. Maybe you have experience developing with C or have started to get interested in the world of containers and microservices.
Make a list of all the technologies you’re familiar with, along with some you’d like to learn along the way. Then, rank those technologies based on your experience, so it’s easier for you to find an interesting project to get involved with.
2. Find an Open Source project
Of course, the next step is to find a project that you would like to contribute to. With thousands of active ones, one way to start is to find out which ones in your field are popular. One way to determine it is by looking at the evaluation of the users, the commits that are published or the number of forks with which it counts. And where can you find those projects? We present some spaces that you can start exploring.
Given that GitHub has become the world’s leading repository for software projects, GitHub Topics is certainly the best place to start looking, especially if you don’t want to jump into too big a project right away.
Probably the best site where you can start looking, in a huge space that orders the projects according to their popularity, technology used, if they are trending, etc.
CNCF Contributors Page
The CNCF Contributors page offers a well-organized list of open source projects along with the main programming language used. You can click on a particular project, which will take you to a section highlighting the project’s repository, official website, its social media handles, and more.
The Google Summer of Code Organizations website offers a complete list of open source projects to which you can contribute. The website gives you a search field, sorting features, and a category view so you can filter the ones that match your skill set.
When you’re ready, click on an organization’s card and you’ll be redirected to their website. From there, you can learn more about it and browse the available projects and view their code.
3. Understand the project
Once you have chosen the project to which you are interested in contributing your knowledge, you must understand how it works both at the software level, and the way in which the community that supports it is structured. You can for example use the software for a personal project to get an idea of how it works and how it is structured until you are familiar with it. And if you’re ready…
- Join their mailing list: The best way to understand the code is to join the official mailing list. If it’s a big project, be prepared to be bombarded with email after email containing issues and feature requests. When you feel up to it, you can send an email, introduce yourself, and explain that you’re willing to contribute your knowledge to the project. You’ll start at the bottom, probably patching a bug that is at the level of your knowledge.
- Join their communication platform: Many open source projects make use of Discord, Slack, or some other communication platform for developers to chat with each other. This is the next space you have to be in.
4. Contribute to the project
You have familiarized yourself with the project, you have introduced yourself and you have made some minor contribution. What’s next? On GitHub for example, developers list bugs and feature requests in a section labeled “Issues”. You can scroll through this list and find a problem that you think is solvable. If you are just starting out, click on the Tags option and filter the list by clicking on “Good First Issues” or “For Beginners”.
If you don’t feel confident enough to solve an issue yourself, you can filter issues with the tag Help, Help wanted, or Help required. and that include issues that some developers are working on, but need a hand.
What if you don’t know how to program? People who don’t know how to program can also contribute to open source. You can help create a user interface for the project website or improve the existing README file or documentation to make it understandable to everyone for example.
Now, all that’s left is to troubleshoot an issue and create a “Pull Request” to submit your code changes for approval. If your modifications fix the problem without breaking anything, the project owner will incorporate your “Pull Request” and you will have completed your first open source contribution. Congratulations!