Open source software is everywhere, from elementary os, to the heart of the Android operating system, to the applications that let you chat with friends, play games or design documents. Which project should you choose? What are the possible benefits and pitfalls? Learn what to look for when choosing an open source project to start contributing to.
Open source projects are supported by a worldwide network of contributors. On the surface they seem very similar, but it’s important to understand the differences between the different kinds of open source projects in order to choose the one that is best for you. This pamphlet will introduce some of the most common types of projects, and help you decide which one is right for you.
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.
Go for dependable solutions whenever possible
Projects in the hardening or enterprise stage have become mature technologies. The amount of commits will signal the level of investment in a project. Tthe type of commits tell a story, telling where the author(s) are trying to go with the code, revealing what they want to do by signalling interest in different features of the project. By now the initial excitement has died down and there is more demand for stability than new features. The initial development team may be working on other projects as it has developed a solid community — this is often a good sign of success of a project.
Obviously recent activity signals that the project is alive and maintained. Remember that there are many dead and abandoned projects living on Github.
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.
User statistics are a great indicator of how good an open source project is. If a large number of people are using the project, it is usually a good sign. Other indicators are the number of downloads, reviews, comments, contributors, forks etc.
The important thing is to deep dive into who the users are. Is the development team using their own project? That is a good sign for you to pick it up.
You’ll also need to decide whether you can make the necessary resource commitments, including developer time to be contributed to the project. Developer time will likely be similar initially to the amount of time they spend on internal code efforts. You’ll also need to consider what time, materials or help your developers will need to provide to help others in the new community get up to speed on the codebase. There will also be resources needed for the legal team that will be involved in creating an open source project that could involve competitors. And marketing investments will ensure that the project gains support and contributors after launch.
You’ll also have to set budgets for the infrastructure used to begin and maintain the project. This includes a project hosting and source control website like GitHub, where the code will reside and be maintained, as well as bug resolution, and other needed tools.
The open source project you want to adopt or implement must come up with regular release updates. Changelogs show project upgrades and the improvements that came into play with every change. Project lifecycle activity and documentation help determine how secure and updated the code is.
Moreover, the documentation must be well written and easy to understand to deem it an adequate open source project. Readable code is simpler to build upon, secure and fix.
Test the code quality
The readiness and maturity of the code you are considering for use in your open source project can also be an indicator that you are ready to start your planning. You want to ensure that the code is in good shape, and as we mentioned earlier, not junk code that will lead to a credibility disaster with the open source community.
At the same time, the trap you must be careful of is that perfect code isn’t required. If you think that the code has to be perfect, you’ll likely never get it started. Go with the best you’ve got and know others will be helping to make it better. You do also want to be sure that the code you start with doesn’t include code comments with trade secrets, references to your proprietary interfaces or profanities and other issues as you ensure it is mature enough to get out there into the community.
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.
Make sure it’s useful
Your project is also ready to move forward when you can see and demonstrate that it will be useful to others as well who are seeking such answers to their IT problems, which can be gleaned through traditional market analysis. You want to be sure that it’s something that others will seek out and be willing to contribute to so it can be a successful project. Do some research and ask around. Attend open source events and talk to developers and presenters about their problems and projects.
If you find that others have already started a similar project to solve a similar problem, then you can consider whether you want to join that effort rather than duplicate it. If a similar project already exists, it’s more powerful to team up, even if your competitor is driving it because collaboration is a critical part of open source communities.
Working with competitors on open source projects is important to consider. If your company starts an open source project and draws in competitors to get involved, you can build collaboration and goodwill, all for the greater good of the code, while leading instead of following.
One of the most helpful ways to get involved with an open source project is to contribute your time and resources. To do this well, you need to choose a project that fits your interests, your programming skills, and — sometimes most importantly — your personal work habits.