Maintainer vs. Community

Mikeal Rogers
Apr 18, 2017 · 3 min read

The increasing tension in how we build sustainable open source.

Spoken version of this article.

Open Source Sustainability is a hot topic these days. Everyone seems to be thinking about how we sustain the success we’ve had in open source adoption as the demands on contributors also grow.

In these discussions I’ve noticed a distinct disparity between two points of view. There is a maintainer centric view and a community centric view. These different views color not just how we frame solutions but also in how we understand the problem.

And because we have different understandings of the problem it has become increasingly difficult to collaborate.

The Maintainer Centric View

As adoption of open source accelerates so do the demands on those that maintain open source. Maintainers are increasingly frustrated and burnt out.

From this point of view the maintainers need to be protected from the worst parts of this growth and given tools to help them manage this ever increasing work load.

From this view a pull request that isn’t ready to merge is a liability. A bug report without steps to reproduce is a waste of time.

The solution to sustainability is to fund maintainers so their limited time can be more dedicated to important tasks. The solution is to add issue templates and bots that don’t allow any random person to access maintainer time until they can ensure that time is spent on something meaningful.

The Community Centric View

As adoption of open source grows so must the contributors to the projects being adopted. Growing the community’s competencies is the only way to handle ever increasing demands on a project as it is adopted.

From this point of view any “problem” in a project, anything that is not sustainable, is a deficiency in that project’s community to be remedied. Poor behavior is due to poor incentives. Too much workload on maintainers means there aren’t enough maintainers and that is likely due to a lack of incentives and tools to educate and retain more of them.

From this view a pull request not yet ready to merge is an educational opportunity and a lead on a potential future maintainer. A bug report without steps to reproduce is a window into a community member more representative of the project’s average user than a current maintainer.

The solution to sustainability is to build processes that can grow contributors and maintainers at the same rate the project is being adopted. Tooling and automation are there to help contributors, not to gate keep against new participants.

Exponential Growth

These views can also be viewed as a spectrum, with many sustainability ideas falling somewhere in between.

The problem with solutions along this spectrum, solutions that are not firmly from the community centric view, is that they can only, at best, offer incremental improvements to these projects.

It’s hard to imagine a new tool that makes more than incremental improvements in maintainer workflow. It’s hard to imagine a new funding mechanism that can double the number of existing maintainers.

Regardless of what view you have the problems we’re dealing with are exponential. Demands on projects track with their adoption and incrementally adopted open source projects aren’t the ones dealing with sustainability issues. In open source “successful projects” are the ones that experience exponential growth in their adoption.

The title of “Maintainer” is reserved for those already engaged in the project. “Community” refers to a project’s entire ecosystem, including its users. Solutions to sustainability that are not anchored to the community can’t scale along with a project’s adoption.

While I empathize with maintainers burning out and asking for support, trying to tackle sustainability from a maintainer centric view is a to paddle against the flow of the river. We continue to see barriers to adoption and participation fall away, enabling a new generation of contributors to be involved as long as we can view them as part of the solution rather than the problem itself.

Developers like to think they code their way out of any problem. We know how to scale servers but most of us are inexperienced with scaling people. It’s easy to fall into the trap of thinking of PR’s and issues as units of data to scale in a pipeline. The problem is that every PR, every issue, was created by a human being and, depending on how you view them, they can be a participant or a liability.

Image for post
Random picture from NodeConf cause Medium embeds don’t like it when you have no pictures.

Open Source Communities

Thoughts on creating, growing and learning about open…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store