A recent report from Red Hat on the State of Enterprise Open Source found that 90% of IT leader respondents use enterprise open source in their organizations, compared to 83% and 89%, respectively, in the previous two reports. Additionally, The 2020 Linux Foundation Open-Source Jobs Report found that 77% of respondents, consisting of 175 hiring managers and over 900 open-source professionals, said that over the next 12 months, they intend to increase their use of open-source software. The field is steadily growing and, as more companies adopt open source, it creates great opportunities for those involved in open-source development professionally or as a hobby.
While exact licensing details vary, in general, open-source software is freely available for anyone to use; additionally, anyone can view and work with project maintainers to make edits to the project’s code. You can see how the library, program, or application works and then suggest changes to the code for consideration, whether to solve a problem or build a new capability. This collaborative process is where a lot of the value of open source comes from and equips the community with the tools to innovate and solve new problems continually.
Having a hand in the development of open-source software is just one of the benefits of contributing to the community. By making contributions, you’ll be able to practice, network, and build an online portfolio to demonstrate your skill set to future employers.
So, how do you get involved in open source? Before diving in, select a project to focus on and take some time to familiarize yourself with the community and the tools you will use. Looking through community discussions on GitHub, forums, and mailing lists will allow you to absorb the current discussions in the community, giving you the context and knowledge needed to begin contributing. You will also need to know how to use relevant development tools for the project you’re working on. Watching tutorials on how to use GitHub and testing frameworks will be helpful as you navigate through the different development tools used in the open-source community. Every project is different, so even if you are already familiar with one open-source project, you may need to change your approach when contributing to another project.
Making your first open-source contribution
Contributing to open-source software doesn’t require advanced expertise. Often, projects need help with answering user questions, confirming and replicating bug reports, or writing examples for documentation. While there are many paths to contributing, learning how to replicate an already-reported issue is an excellent way to practice and begin your journey of contributing to the open-source community.
The first step to contributing to the open-source community is identifying an issue with a project you use and care about. Before you can effectively contribute to a project, you first need to be a proficient user of the project, so focusing on tools you already use is a good place to start. Issue reporting and discussion can happen in several ways, but GitHub is the most popular tool for Python-related projects. Issues such as adding documentation or examples and looking for typos are good first contributions because it is less difficult for beginners, and changes are more accessible for maintainers to review. On GitHub, look at issues that are marked “good first issue” or “help needed,” which will indicate that this is an excellent place to start for your first contribution. Along with picking an issue that is beginner-friendly, you’ll also want to choose one that has the problem clearly explained, along with a way to test the solution included in the description.
Once you have your issue identified, you can begin working to fix it. To do this, you’ll want to create your own copy of the code. On Github, you will fork the repository to your personal GitHub account and work there. Next, you’ll enter the development and testing phase; you’ll want to ensure any changes to the code run successfully by testing them and making sure they adhere to any style requirements in the repository. Each project has its own style and communication patterns, so taking the time before and during your project to observe the standard procedures and contributor guides will enable the project maintainers to review your contribution more easily. After you make your changes, you will commit your code, push a new branch on your own repository, and make a pull request. From there, your pull request is reviewed, and maintainers and contributors offer suggested changes. After several rounds of updates, the pull request can be merged once the maintainers are satisfied that it meets the project’s quality requirements.
When interacting with open source maintainers and other contributors, you should try to be patient and open to feedback and suggestions. Everyone needs to make changes to pull requests based on feedback, even experienced contributors! If you want to get feedback on an approach you are thinking about before you fix an issue, you can create an issue or forum post and describe the work you are planning. Doing so will allow others to give feedback and save time for you and the maintainers who would otherwise have to provide the feedback after you had written a bunch of code. Keep in mind that feedback and constructive criticism of your pull request isn’t personal and is being shared because everyone wants the project to improve overall. Maintainers of open-source projects have to juggle several competing priorities, like improving the software design to enable future growth, avoiding the introduction of bugs or breaking user’s applications, and maintaining a consistent codebase style. If you don’t initially understand or agree with a suggestion from a maintainer, it is often because the maintainer is trying to balance factors you may not be aware of. It is okay to ask for clarification, but when you are getting started, you will need to trust the feedback from maintainers until you learn more and understand the bigger picture.
After your first open-source contribution
Contributing to the open-source community can take some getting used to; it’s a way of working that you probably won’t be familiar with, especially if you are in a corporate or academic environment. However, there are many benefits to getting involved with open source that make overcoming any learning curve a worthwhile investment. In addition to being a great way to build your skill set, network with other developers, and create a portfolio, participating in the community allows you to be at the forefront of software innovation. It’s no secret that many cutting-edge and industry-changing software developments originate in the open-source community. You can experience the innovation force multiplier of collaborative, community-led engineering firsthand by becoming involved.
There are multiple paths that you can take in your open-source journey. And contributing to open-source projects is a win-win scenario, benefiting the specific project and broader community innovation as well as your professional development.
There are multiple paths that you can take in your open-source journey. And contributing to open-source projects is a win-win scenario, benefiting the specific project and wider community innovation as well as your own professional development.
As you begin your open-source journey, some helpful tips to remember are:
Use the available community resources
Take feedback from community members as an opportunity to grow
Be realistic about your commitments. Start small and don’t overpromise.
The best open-source contributors are constantly listening to and learning from community needs.
Are you looking for more tips on making your first open-source contribution? Watch our tutorial for more details on getting started.