Contributing to an open source project can be a great way to deepen your technical expertise and network with other people. Here is some advice on how to find an open source project that might fit your skills, schedule and interests.
Software engineers contribute to open source projects for many reasons. Some want to give back to the community that’s given them so much, some are passionate about solving real-world problems and contributing to something larger, and some just want to get better at what they do.
Get to know GitHub
GitHub is the most popular platform for open source collaboration, so you’ll probably use it when exploring the world of OSS. First, you need to create a GitHub account and read the guide that helps you get started. On GitHub, you can contribute to projects by submitting issues and contributing code. Submitting issues means sending messages about errors in applications and suggesting ways to fix them. Contributing code involves sending pull requests with your corrections and improvements.
Improve software you rely on
Lots of open source contributors start by being users of software they contribute to. When you find a bug in an open source software you use, you may want to look at the source to see if you can patch it yourself. If that’s the case, then contributing the patch back is the best way to ensure that your friends (and yourself when you update to the next release) will be able to benefit from it.
Determine your goals
The starting point would be sitting down and jotting down a list of goals that you hope to accomplish through contributing to an open-source project. If any of your goals seem vague, sit down with them and flesh them out until they are explicit and actionable. The more explicit your goals are, the easier it is to judge if you can meet them.
Beware that you don’t start thinking of this as a competition or contest, and want to contribute only because others are doing it, or you have heard a lot about it, or want some swags or benefits out of it apart from the networking and learning involved.
Moreover, don’t think that these skills necessarily have to be technical skills, in fact, open-source is much more than that. You can contribute to open-source with all kinds of skills ranging from documentation to graphic design, to QA and testing, to project management.
Here are some questions to consider as you plan to contribute to a possible open-source project:
- What skills do I possess to contribute to a project?
- What skills do I wish to bring to a project?
- What are my passions/hobbies?
- How much time am I prepared to devote to a project?
Learn the basics
When working with GitHub, you should know how to use Git – one of the most popular version control tools (also known as revision control tools). Because developers constantly make changes to their code, they need a system that can manage those changes in a central repository. In this way, everyone involved in the development process can download a given piece of software, make changes, and submit updates.
Find mentors and teach others
Working with others on a shared project means you’ll have to explain how you do things, as well as ask other people for help. The acts of learning and teaching can be a fulfilling activity for everyone involved.
Understanding Open source licenses
Open source licenses are often overlooked, but they are an essential component of any open-source project as they govern what you can and cannot do with an open-source project. Before you start contributing to a possible project, it’s important looking at the license it is utilizing if it has one.
While there are many different types of open-source licenses to choose from, there are two main categories: copyleft and permissive. Anyone who works on these licensed projects must be able to read, alter, and share the source code under both types of licenses. However, the two licenses differ in terms of what the user can do with the work and whether the derivative work should be under the same terms as the original work or under different terms.
Copyleft License: A copyleft license prevents a derivative work from being relicensed under a more restrictive license. For example – The GNU Public License (GPL), the GNU Lesser General Public License (LGPL), and the Mozilla Public License.
Permissive License: A permissive license permits the creator of a derivative work to change the derivative work’s license. It also permits a creator to incorporate a work released under a permissive license into a proprietary work, with the derivative remaining proprietary.
A permissive license does not obligate the creator of a derivative work to make the derivative work available under a free or open-source license. The Apache License and the MIT License are two popular permissive licenses.
Join the community
You can easily join an open source project by subscribing to the mailing list for that project. You can find mailing lists on official websites or on GitHub pages. After being accepted to the list, you can communicate with team members and get support if necessary. Thanks to the vibrant communities present in nearly every OSS project, you are likely to get quick replies to your questions.
Determining signs of active development
Next, look at the history of your possible project to see if it is still active, both in terms of discussion and development activity.
Some questions to consider while calculating activity levels are as follows:
- Do those who ask questions get answers?
- Is the project welcoming to existing contributors?
- What is the tone of the project’s participants (i.e., are they pleasant, or does communication appear cold and uptight?)
All skills are welcomed
Even non-programmers can contribute to open source projects! Documentation is needed for all projects, and sometimes this is poorly written and maintained. Thus, you can help by writing, updating or even translating documentation. Also, your design skills might come in handy: every application needs an interface, after all. Finally, you can contribute by managing a community by replying to questions and guiding newcomers.
There are a lot of projects out there. The easiest way to decide is to think about what you’re good at and start helping in that area. If you’re unsure, try starting with something that sounds interesting to you and see if it feels right. Getting active in the project, even without a specific plan of action, can help attract people who need the skills that you have.