While much of last month’s KubeCon-CloudNativeCon North America was focused on specific software projects, case studies and tech challenges, there was a discernible undercurrent of concern. And it wasn’t just about specific projects, it was to do with keeping the open-source movement going as a whole.
The key words here were ‘contributors’ and ‘maintainers’. These are the people who keep projects alive and well, the former by contributing ideas and code, and the latter by pulling it all together and managing the project.
While you definitely need both, the maintainers are crucial. A busy project might have dozens or hundreds of code patches to review, plus there’s processes to document, contributors to mentor, motivate and co-ordinate, bugs to triage and more. Yet all too often, maintainers are not even paid for all this work – and for what’s actually a sophisticated and specialised set of skills.
Maintainers need recognition, respect – and funding
It’s not a crisis yet – most projects are fine for now – but it’s an issue that cannot be ignored. Maintenance tends to be a thankless task in any industry, and in open-source there is always the risk of burn-out or of real-life intervening, with someone needing to devote more time to their primary job or family, say.
In her KubeCon keynote, Priyanka Sharma, the Cloud Native Computing Foundation’s executive director, highlighted the importance of maintainers. “These people are one in a million, and they are holding up the cloud-native ecosystem – maintainers are our lifeblood,” she declared.
For example, trillion-dollar companies now rely on Kubernetes, she said. There’s three Kubernetes releases a year, and about 30 people on the release team, so those people are directly supporting billions of dollars of software projects. That in turn means billions of dollars of profits rely on hundreds of hours of volunteer labour, she added.
And that’s just the core container platform – a complete cloud-native application will include many more components, each with its own maintainers and contributors.
So what’s going to help here? Making sure maintainers are supported and recognised by their peers is important, as are codes of conduct to avoid the kinds of toxicity that can drive potential new team members away.
Open-source needs ‘give’ as well as ‘take’
But the big challenge for many maintainers is getting enough support from their employer for what looks like merely a side gig or private interest.
What this means is that companies which use open-source software, and value the shared ecosystem that surrounds it, also need to actually participate in that ecosystem. Whether it’s sponsoring an engineer, freeing up some employee time for maintenance or simply providing real-world feedback, there’s a lot they could and should do.
My own feeling is that companies using open-source software must also stop thinking of it as ‘free’. After all, this is the aspect of the open-source movement that often puzzles outsiders. How, they wonder, can you develop and give away for free software that is just as sophisticated as that offered by commercial organisations?
For many years, and peaking in the final decades of the 20th century, the answer was often quite simple: individual authors made pocket money from publishing hobby projects as shareware. Typically, they asked for donations in return, although that changed as the market matured. Often only a cut-down or time-limited version was shared, with full functionality unlocked after payment – but even then, the fee requested was usually quite modest.
While there are a few open-source projects like this, one or two of which are very widely used, such as cURL, most are far more complex. Yes, Linus Torvalds wrote the original Linux kernel in 1991, but it has expanded considerably since then, and now has dozens of maintainers.
So forget the free, and focus on the shared ecosystem and economies of scale. The big value is in co-operating to solve shared problems more effectively and less expensively than if we did it alone – but the key thing is we all need to contribute, whether it’s as donations, support fees, time or some other way. Frankly, it’s not sustainable otherwise.