The term Open Source simply means software or projects with freely accessible source code that anyone can contribute to. The Open Source Initiative was founded in 1998 to promote this ethos in contrast to proprietary commercial models. Since then, the movement has expanded hugely, way beyond the boundaries of enthusiasts and hobbyists. These days even international corporations like Google are making extensive use of it. Google’s widely-used Chrome browser and its Android mobile OS are based on open source code. And even Microsoft is now using some open technologies.
As well as corporate giants, entirely free software projects are also now easy to encounter. For example, desktop users benefit from everyday applications like Firefox and LibreOffice. VideoLAN’s non-profit VLC media player is one of the most versatile available and has been downloaded over 4 billion times. Meanwhile, for techies, the two most popular web servers (Apache and Nginx) and the OS they usually run on (Linux) are all OpenSource. And the list of OpenSource web frameworks and developer tools is near-endless.
What are the usual roles inside an open source Project?
Open Source software benefits from a huge number of committed contributors. But while a community project takes contributions from virtually anybody, its management is still structured to maintain quality and integrity. The range of key responsibilities can expand or contract depending on the size of the project, but the roles are usually formalised as follows.
Author / Owner
The author and owner are often the same person, though this need not be so. The author is the original creator of the open source project. They hold overall administrative rights to the project and can assign roles to other members. If this management is delegated or transferred to another, they are deemed the new project owner. For big projects, in particular, this is a role with significant responsibility.
Maintainers
Maintainers are members with a lasting commitment to the project. Along with the author, they aim to keep project goals clear and work to ensure that quality standards are met. This doesn’t just involve code reviews, but also entails managing documentation, keeping development and deployment strategies coherent and maintaining communication channels throughout the community.
Contributors
Contributors are the most diverse group of project members. Anyone who adds to or edits the code base, or who writes documentation or translations, is classed as a contributor. Contributions need not be extensive or complex. Minor code edits or even a simple typo correction are still useful for the project, though, of course, contributors must adhere to the community’s code style requirements. Commits are reviewed by maintainers.
Who can contribute to Open Source projects?
Open means everyone can help regardless of their technical skills. Contributing to a software project can seem a little daunting for the uninitiated, but it isn’t only developers who can help out. The “source” in question is the code used to build software applications. Traditionally this was compiled into the finished application, and hard to reverse engineer. Open just means that any developers can gain access to it, and can, in principle, then build the application on their own machines. That said, many languages these days, particularly front-end web scripting, are interpreted rather than compiled. In both cases, Open Source licenses typically allow you to make full use of the source code, provided you also retain public accessibility for it.
For non-developers, this may feel like alien territory, but there are still many aspects of software production that do not require coding. Documentation is easily overlooked, but it is vitally important for software’s usability. Writing docs, as well as translating them into other languages, helps to bring OpenSource software to release quality. And if marketing or event management is your thing, skills here can also be useful for community projects.
Sites to start your contributor path
If you’re just starting your journey in open source, there are extensive resources for understanding how a project works. But you may find the easiest way to begin is simply to jump in. First Contributions is a tutorial project. Many community projects are now hosted on GitHub, and this resource takes you through all the basics of using this version control and issue tracking platform for community projects. You’ll go through the processes of forking a repository, creating branches, committing and pushing changes and then submitting them for review.
If you’re ready to start contributing for real, it helps to find some simple issues to solve. Outstanding issues are often labelled “Good First Issue” for precisely this purpose, and you can find aggregate lists at https://goodfirstissue.dev/ and https://goodfirstissues.com/. You can find similar listings for Mozilla projects on CodeTribute. This is a great way to get your hands dirty and start making a real impact.
For more experienced developers who want to plunge in at the deep end, another option is to get involved with events like Hackathons. Hacktoberfest, for example, is a month-long celebration of coding that takes place each October, bringing together developers from across the world to encourage contributions. A dedicated website allows you to search for suitable Hacktober projects using your preferred programming languages.
Find the right project to contribute to, with or without technical skills
You’ll soon see that there is a vast number of open source projects for you to work on. But as you get to know the community and gain a little more confidence in the process, you’ll want to narrow your scope. It helps to work on projects whose aims you share, where you feel you can make an important contribution and also where you can learn. And don’t worry if you’re not a committed techie, there is plenty of work in documentation and associated roles for you to take on too.
One of the best-known free software producers is Mozilla. They’re responsible for the Firefox browser, which accounted for nearly 8% of desktop web browsers in 2021. Firefox is a highly active project, releasing major updates every 50 days on average, and contributions are welcomed at all levels, for development, bug fixes, testing and documentation.
Wikipedia is a phenomenon in itself. This OpenSource encyclopedia was founded in 2001 and is now consistently in the top 15 websites globally. If writing documentation is your preferred activity, and especially if you have expert knowledge to share, Wikipedia is an ideal medium.
For desktop productivity, LibreOffice rivals proprietary office software from tech giants like Apple and Microsoft. Their global developer community welcomes new contributions, and they have mentoring and orienting schemes as well as bite-size tasks to get you started.
Of course there are myriad other options, including the Discourse discussion platform, Kubernetes for DevOps and cloud engineering, as well as some of the most coommonly-used web application frameworks like Django, Ruby-on-Rails and Meteor.
Why is it important to contribute to open source projects?
If you’re still wondering why you should spend your free time working on public projects, consider the wider benefits. Using software is one thing, but actually contributing to its development gives you a much better understanding of how it works. There’s so much to learn from addressing real-world requirements, bug fixes and development schedules. What’s more, you can take inspiration and tuition from some of the best global developers.
Working on community projects builds your reputation and broadens your perspectives. If you care about a career in software, you’ll find many openings directly and indirectly through your direct engagement with other developers.
Above all, everyone wants well-functioning software with good documentation. By committing yourself and contributing to open source, you get the satisfaction of knowing you’ve made the digital world just that little bit better!
Additional sources:
https://opensource.org/
https://producingoss.com/
https://opensource.guide/best-practices/
https://firefox-source-docs.mozilla.org/