Recently, Greg Kroah-Hartman, the Linux kernel maintainer for the stable branch, blocked University of Minnesota developers from submitting any Linux patches because several had deliberately tried to introduce bad patches. That was bad enough, but besides the security aspects, Kroah-Hartman also pointed out that code maintainers "have enough real work to do" without wasting time on finding and smacking down deliberately bad code. That's for sure.
That's because the job of being an open-source maintainer is a hard one. While developers fix bugs and create features and reviewers look over their code, the code buck stops with the maintainer. They're responsible for the ongoing work across broad swathes of an open-source project. As you might guess there are more developers than reviewers and more reviewers than maintainers. Maintainers are the conductors of an open-source project orchestra. If a bug hasn't been fixed by a developer, they'll fix it. If the code hasn't been reviewed they'll review it. And, with large projects like Linux, there are often hundreds of code patches, which need to be maintained a week.
Given all that you might think open-source maintainers are well paid. Think again. While top maintainers such as Kroah-Hartman and Linus Torvalds for Linux make top dollar, a new Tidelift survey found 46% of open-source project maintainers aren't paid at all. And of those who are paid, only 26% earn more than $1,000 per year for their work. That is awful.
Tidelift, which offers tools to help manage open-source software, found in its survey of not quite 400 maintainers that nearly half of maintainers are unpaid volunteers. So, why do it?
According to the survey, the top three reasons maintainers enjoy their work are:
- "Making a positive impact on the world" (71%),
- "Allowing me to fulfill a need for creative, challenging, and/or enjoyable work" (63%)
- "Getting to work on projects that matter to me" (59%)
That's not a surprise.
As The Linux Foundation's Open Source Security Foundation (OSSF) and the Laboratory for Innovation Science at Harvard (LISH) recent report on the 2020 FOSS Contributor Survey found, the top reason developers worked on projects was to add a needed feature or fix a program they were already using. This was followed by the enjoyment of learning and fulfilling a need for creative or enjoyable work. At the bottom? Getting paid.
Mind you, getting paid -- whether you're a developer, reviewer, or maintainer -- is still important. The joy of volunteering doesn't keep a roof over your head after all.
Still, while getting paid for maintenance work ranked dead-last in the list of things maintainers enjoy today (21%), a deeper look at the data suggests it's because they haven't given it much thought due to not having been paid for it. So, while only 18% of those getting paid less than $1,000 per year say getting paid is a reason they enjoy being a maintainer, those who get paid more see it differently. For example, for those who are paid more than $10,000 annually, 61% rank pay as important.
Donald Fischer, Tidelift's CEO and co-founder, said: "The entire world relies on open-source components to power applications, yet our data shows that the open-source maintainers who create and keep open-source running well are not properly compensated for the incredible value they provide. The path to a safer, healthier open source software supply chain starts with ensuring more volunteer maintainers get paid adequately for the crucial work they do."
The bottom line is that, while there's a lot of joy to be found in working in open source, it gets old after a while. There's a thin line between love and hate. Besides being financially unrewarding, maintaining an open-source project is often stressful and thankless. How many times do you want to tell a programmer you can't accept the patch because he or she clearly hadn't RTFM? How often do you want to hear back from a developer who insists that their flawed code is just what the project needs? Honestly, I don't know how most maintainers do it.
Almost half of respondents (49%) cited "not getting financially compensated enough or at all for my work" as the top reason to dislike being a maintainer, followed by "adds to my personal stress" (45%), and "feel underappreciated or like the work is thankless" (40%).
Indeed, more than half (59%) of maintainers surveyed have quit or considered quitting maintaining a project. The more projects a maintainer handles, the more likely it is that they have considered quitting -- over two-thirds (68%) of those who managed 10 projects or more have quit or considered quitting.
Some developers, like Salvatore Sanfilippo, creator of popular NoSQL database Redis, quit being maintainers because they'd rather be developers than managers. But the No.1 most likely reason to quit, cited by 60% of respondents, was that "other things in my life and work took priority." That other thing is often making money from their primary job.
A lot more needs to be done to make a maintainer's life easier, but paying them real wages for their real work would be a great place to start.