A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.md 6.0KB

4 years ago
12345
  1. title: Maintainer vs. Community
  2. url: https://medium.com/open-source-communities/maintainer-vs-community-97edc28387ad
  3. hash_url: 4d5851d18f4b3e893490b3910de2597f
  4. <p name="c1f6" id="c1f6" class="graf graf--p graf-after--h3">The increasing tension in how we build sustainable open source.</p><p name="ad1f" id="ad1f" class="graf graf--p graf-after--p">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.</p><p name="f595" id="f595" class="graf graf--p graf-after--p">In these discussions I’ve noticed a distinct disparity between two points of view. There is a <strong class="markup--strong markup--p-strong">maintainer centric view</strong> and a <strong class="markup--strong markup--p-strong">community centric view</strong>. These different views color not just how we frame solutions but also in how we understand the problem.</p><p name="3ac8" id="3ac8" class="graf graf--p graf-after--p">And because we have different understandings of the problem it has become increasingly difficult to collaborate.</p><h3 name="ef22" id="ef22" class="graf graf--h3 graf-after--p">The Maintainer Centric View</h3><p name="6d27" id="6d27" class="graf graf--p graf-after--h3">As adoption of open source accelerates so do the demands on those that maintain open source. Maintainers are increasingly frustrated and burnt out.</p><p name="21d6" id="21d6" class="graf graf--p graf-after--p">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.</p><p name="061c" id="061c" class="graf graf--p graf-after--p">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.</p><p name="c67d" id="c67d" class="graf graf--p graf-after--p">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.</p><h3 name="6ce3" id="6ce3" class="graf graf--h3 graf-after--p">The Community Centric View</h3><p name="09aa" id="09aa" class="graf graf--p graf-after--h3">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.</p><p name="dafa" id="dafa" class="graf graf--p graf-after--p">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.</p><p name="86de" id="86de" class="graf graf--p graf-after--p">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.</p><p name="b1d2" id="b1d2" class="graf graf--p graf-after--p">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.</p><h3 name="1ba4" id="1ba4" class="graf graf--h3 graf-after--p">Exponential Growth</h3><p name="164f" id="164f" class="graf graf--p graf-after--h3">These views can also be viewed as a spectrum, with many sustainability ideas falling somewhere in between.</p><p name="b58a" id="b58a" class="graf graf--p graf-after--p">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.</p><p name="9d5e" id="9d5e" class="graf graf--p graf-after--p">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.</p><p name="fc70" id="fc70" class="graf graf--p graf-after--p">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.</p><p name="cca5" id="cca5" class="graf graf--p graf-after--p">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.</p><p name="f472" id="f472" class="graf graf--p graf-after--p">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.</p><p name="58bb" id="58bb" class="graf graf--p graf-after--p">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.</p>