Discover more from BioDrop
Open Source Maintainers: where would we be without them?
Maintainers.... the heart and soul of any Open Source project. Absolutely essential to make sure the project runs smoothly or even runs at all!
These are the people who will guide and lead your Open Source project and I see this daily whenever I look at the BioDrop GitHub Repo. Maintainers will do the code reviews, review pull requests and other contributions, triage and handle security fixes as well as community management and moderation.
Studies show that the vast majority of maintainers are performing their role voluntarily and for non-monetary motivations. Many do this role because they want to make an impact, learn new skills and technologies, or be more creative - all on top of juggling their full-time jobs.
Being a maintainer requires so much more than coding. Here are a few other tasks that the maintainers on the BioDrop project do:
Making sure that the project's guidelines and rules are followed by its contributors;
Encouraging others to come up with solutions to the challenges the project faces, whilst mentoring and helping them along the way;
Knowing when to say "no" if a contribution is not aligned with the goal of the project.
A maintainer has to wear many hats and needs to have many skills, plus they must be continually learning new ones all the time.
Picture this...you've started an Open Source project and at the beginning, you can deal with the Issues and Pull Requests that come in from the community.
Then, your project gains traction and increases in popularity...and all of a sudden you find that all you are doing is dealing with notifications and you are starting to feel buried under these.
I invited contributors and EddieHub community members to become maintainers on our Open Source projects as I felt that they could really help me deal with the issues and Pull Requests coming in. They had been active and consistent members of EddieHub and I was confident they understood what the community and projects were about.
But appointing maintainers is not just about getting help for dealing with notifications.
It can be a lonely place if you are working on an Open Source project on your own, regardless of how many contributions you get.
I cannot tell you how great it is and how much I have learnt from the maintainers on the EddieHub projects. Not only have they helped me when I am stuck, but they have also developed concepts and contributed amazing ideas to the projects.
So it is fair to say that at the beginning I chose my maintainers in quite a relaxed way.
Whilst there is nothing wrong with choosing your maintainers from the community members you know best and letting this relationship evolve organically...it is important for a project owner to think about what they should be communicating to the maintainers.
That is why we have recently introduced a proper procedure in our BioDrop project, designed to make maintainers aware of what to expect - but also as a resource for community members who would like to be maintainers one day.
Here are my tips for creating good communication and certainty with your maintainers:
1. Publish the criteria for becoming a maintainer
For example, with BioDrop maintainers need to be a member of EddieHub, have a full BioDrop Profile and have a consistent track record of:
Helping community members on Discord;
Reviewing and approving Pull Requests;
Creating issues which add value to the project;
Adding value by in the form of Pull Requests for new features.
When inviting someone to be a maintainer, make sure they know what the role consists of, but also the time commitment involved. Let the person make the decision as to whether that suits their schedule right now.
A good way to do this is to include in your Documentation what you expect your maintainer to do as well as give them helpful examples.
You should not expect someone to say 'yes' to the maintainer role if they do not know what to expect. This goes to prospective maintainers too - if you are asked to take on this role, ask questions!
When a project takes off, you get busy with it, you might keep adding more and more maintainers...the next thing you know you realise that perhaps there are maintainers who have not been active for quite some time.
Of course you cannot expect daily contributions from your maintainers. This still remains largely a voluntary role in the tech industry and it is super important to be respectful of people's time, other life and work commitments.
That said... lately becoming a maintainer on a project has become a bit of a "status symbol" that people want on their GitHub Profile. It is a little bit like chasing green squares but not actually adding value, which is a pet peeve of mine.
In my opinion, this is not something you want to support. This will not help move the project forward, but is also unfair to the other maintainers and also the rest of the community. We have recently introduced that we will review how a maintainer is doing. This can be a difficult conversation but you do need to ask questions such as:
Is the maintainer consistent?
Are they able to support new contributors?
Are they making suggestions to move the project along?
This brings me to my next point...
4. Renewing maintainers
I recently heard that often maintainers do not want to offend a project owner and ask to be retired from the role. I really do not want that - I want to keep things open and transparent. So we have publicly set out that if our maintainers no longer wish to have the role, then they need to let me know.
This goes both ways...if a maintainer has not been active for a long period of time, then we need to ask them to stop being a maintainer and make way for others in the community.
The important thing is that there is always ongoing communication - so if a maintainer leaves now for whatever reason, they can always come back in the future.
The reality is that the costs incurred by most Open Source projects (such as hosting), are being funded from the project owner's own pocket or, they rely on the generosity of GitHub Sponsors. As a result, it makes it difficult to provide financial compensation to maintainers even though they are deserving of it.
It is up to the project owner to come up with ways in which they can reward their maintainers. In the BioDrop project, some of these rewards include:
LinkedIn and BioDrop recommendation from me;
Participating in the monthly "Maintainers Lottery" where a randomly selected maintainer can choose a reward such as
a 30-minute 1-2-1 video call with me or
a social shoutout on Twitter or LinkedIn
Let me finish this blog by giving a massive shoutout to the EddieHub maintainers, especially BioDrop as it has the most notifications for them - we would not be where we are in this project without you!