As of the writing of this post Hacktoberfest 2021 by DigitalOcean is around the corner and will be starting on October 1st! To mark the occasion, we’ll be making several posts on the topic of all things open source throughout the month of October 2021.
Also check out all previous topics covered on the inspirezone blog related to open source.
Open source refers to projects where anyone is free to view, study and modify the source code.
Open source projects also welcome contributors from anyone willing to help out in the project. This can include enhancing the code, adding features, reporting bugs, suggesting an enhancement, performing tests, helping out with documentation and much more.
Open source maintainers are people who make efforts in keeping open source projects structured and maintainable. Open source maintainers review and sync contributions to the repository to ensure it remains organised. A repository can have one or several maintainers.
The key role of an open source maintainer involves taking on responsibility for an entire code base and therefore requires organisation and management skills. These are some of the reasons why becoming an open source maintainer is one of the most unique ways to accelerate your growth as a programmer.
We’ll discuss 5 compelling reasons why you should consider becoming and open source maintainer.
5 Reasons to become an open source maintainer
1. To develop organisational skills
Open source maintainers are the people we rely on to make order out of the chaos that can inevitably appear from several developers working on a single code base!
While tools such as git are available that aid in the process of maintaining software from several contributors, someone or several people are still needed to ensure code submitted to repo is relevant and functional for the purpose of the project.
Typical responsibilities of an open source maintainer include performing code reviews, merging code, maintaining builds, documenting, releasing packages and versioning management.
All these responsibilities require high levels of organisational skill especially for projects where many contributions are made to the repository.
The ability to remain organised is a valuable trait for every developer. Becoming an open source maintainer is certainly one way of pushing your limits on this ability as organisation is at the core of the role.
2. To understand the importance of documentation in software development
While some developers may shy away from it, documentation is an essential aspect of assuring the maintainability of software.
If you’re still yet to understand the important role documentation plays, you will after you begin your open source maintainer journey! In a previous article we also discussed why devs should be obsessed with documentation.
If you have some experience contributing to open source projects you’ll know the existence of documents in the repository such as a README, is essential in finding out information on the purpose of the repo and potentially, how you can contribute.
Having documentation in place is one thing. But ensuring the documents are a reliable source of information is another.
A key role of open source maintainers is writing those documents to clearly communicate everything that users and potential contributors of the project will want to know.
3. To learn from contributors
Open source maintenance is all about ensuring code submitted is aligned with the goal and functionality of the project. As part of this process the maintainer is constantly reviewing code submitted by other developers.
As a result, being an open source maintainer will naturally increase exposure to a variety of coding styles, development practices (good and bad) and generally will increase awareness of how different developers solve problems.
This will provide a regular practice of reading and interpreting other people’s code. Through this, you’ll ultimately find yourself improving how to approach the process of understanding code not written by yourself.
When contributors submit code to a repository, ideally you don’t want to merge it into the code base unless it has been reviewed and tested to be a valid contribution. This will require careful code reviews and ensuring the code submitted is of a suitable standard.
It may take some trial and error to determine how to properly filter out code that is not of the quality you want for the repository. However, the constant exposure to code submitted by developers and the requirements to review them will ultimately improve your ability to decipher other people’s code.
Due to this nature of open source projects, maintainers will be able to learn of various coding techniques and practices they may not have been familiar with.
Depending on the scale of the project you may work with other open source maintainers. In this case, you will also be able to learn from each other as you figure out the best way to maintain and collaborate on the project.
4. To improve knowledge of software management and deployment tools
DevOps, Continuous integration, Deployment, whatever you call it; these processes are an important aspect of software development, release and maintenance.
Software versioning control tools and platforms such as git and GitHub have become fundamental to software engineering.
Most open source repositories reside on GitHub, the world’s most popular git hosting platform. Open source maintainers working with GitHub will be interested in making use of features that will make their job easier.
While a contributing developer to an open source project may require basic understanding of git and GitHub tools, an open source maintainer will require solid and some advanced level knowledge of such tools.
Good understanding of features such as branching, forking and pull requests are fundamental to allowing multiple contributors to a repository. There are also automated features such as GitHub actions that improve the speed and efficiency of reviewing and testing code submitted to the repository.
By becoming an open source maintainer you’ll naturally be exposed to constant usage of software management and deployment tools. These are desirable skills that will in turn improve your overall proficiency as a programmer.
5. To grow in management and people skills
A significant duty of becoming an open source maintainer involves working with fellow developers and fostering an environment where everyone can be aligned on the goals of the project.
This is achieved by constant communication with those who interact with the project. This can be indirect communication in the form of documents, or direct communication by messaging contributors and providing code reviews.
While you’ll be working with code, you’ll also be working with the people who submitted the code or other contributions. This is why when becoming an open source maintainer you must also be prepared to take on manager-like roles and responsibilities.
Teamwork is also a critical part of bringing together contributions from tens, hundreds and in some cases, thousands of people. It’s the teamwork between the maintainers and the contributors alike that will determine how well it all comes together.
How you manage this may come down to how well you can communicate, manage and encourage an environment that welcomes help from others, while at the same time focusing on the mission of the project.
While acting as an open source maintainer, you’re also learning to grow your abilities to work in teams and to manage people and projects, all which will provide a source for your personal growth.
To summarise, getting into the world of open source by facing the challenges of being a open source maintainer will help you grow as a programmer in the following ways:
- Vastly improve your knowledge of software maintenance and deployment tools.
- Learn git and GitHub features and how it helps keep open source projects together.
- Have regular practice deciphering other people’s code.
- Learn coding techniques and concepts from contributors.
- Become more organised at handling projects.
- Learn to communicate and manage more effectively.
And much more..
There’s an endless amount of ways your proficiency as a programmer will improve by simply becoming an open source maintainer!
We hope you’re now convinced why you should become an open source maintainer. Also check out our checklist of what every maintainer needs to launch an open source project.
Do you already maintain open source projects? If not, would you like to become an open source maintainer? Let’s hear your thoughts in the comments!
See other articles you may be interested in below: