1 line
8.7 KiB
Plaintext
1 line
8.7 KiB
Plaintext
<video controls="controls" style="width: 100%; margin: auto;"> <source src="https://bzg.fr/uploads/bzg-how-to-help-emacs-maintainers-emacsconf2021.webm" type="video/ogg" /> </video><p><em>You can <a href="https://bzg.fr/uploads/bzg-how-to-help-emacs-maintainers-emacsconf2021.webm">download the video</a>, discuss the ideas on <a href="https://news.ycombinator.com/item?id=29379154">Hacker News</a> andcheck Q&A on the <a href="https://emacsconf.org/2021/talks/maintainers/">EmacsConf 2021 webpage</a>.</em></p><p>Hi everyone!</p><p>I'm Bastien Guerry and I'm the maintainer for Org-mode since 2011.</p><p>After a decade of dealing with the Org community, my view of what amaintainer is changed. I'd like to share some ideas with you as Ithink they could be useful to help Emacs maintainers in general, notjust maintainers of GNU Emacs, but of any Emacs package out there.</p><p>Hopefully, these ideas also apply to other free software projects, atleast those where contributors are all volunteers.</p><p>First of all, what is a free software maintainer?</p><ul><li><p>Someone with a lot of free time, probably a rich dude</p></li><li><p>Acting both as a supersmart hacker and a super-patient manager</p></li><li><p>Someone who acts as the central hotline for users and developers</p></li><li><p>Who knows how to write many emails, probably at the same time</p></li><li><p>Who does not hesitate to publicly scold annoying users</p></li><li><p>Someone narcissistic enough to seek credits for community efforts</p></li><li><p>But really looking for a job in some big IT company</p></li></ul><p>Well… no. I'm joking. But why did you smile?</p><p>Because, of course, there is some truth to it.</p><p>Why? Because our culture encourages free software users and casualcontributors to think about maintainers this way. Don't we continueto call some of them "Benevolent Dictator For Life"? This is what I'dcall the "Spiderman syndrom": maintenance is perceived in terms ofgreat power and great responsibility.</p><p>I believe our culture of superheroes is not helpful here: it does notreflect the truth, it does not set the right expectations and itprevents contributors from properly understanding how to helpmaintainers.</p><p>So let's start again.</p><p>Instead of asking "what is a maintainer", let's make a list of what amaintainer does. As the org-mode maintainer, here is my TODO-list:</p><ul><li><p>Take care of the orgmode.org website.</p></li><li><p>Take care of the org-contrib NonGNU ELPA package.</p></li><li><p>Do gardening on our community-driven documentation, Worg.</p></li><li><p>Add contributors to Worg.</p></li><li><p>Read emails on emacs-orgmode@, emacs-devel@ and bug-gnu-emacs@.</p></li><li><p>Contribute to email moderation of the emacs-orgmode@ list.</p></li><li><p>Reply to private emails asking me for help about org-mode.</p></li><li><p>Try to design and develop a better "bug tracking" system.</p></li><li><p>Coordinate with GNU Emacs maintainers for Emacs/Org integration.</p></li><li><p>Contribute with public emails on emacs-orgmode@.</p></li><li><p>Release new versions of Org-mode.</p></li><li><p>Sometimes, contribute with code.</p></li></ul><p>Do you see a pattern here? </p><p>I bet the last three tasks is what most people have in mind when theythink of a maintainer: it's all about hacking and being an efficienthotline. But in fact, these tasks are only a superficial part of whatI do as a maintainer.</p><p>Some would consider that these core tasks are the <em>interesting</em> ones,while the others are the <em>boring</em> ones. I don't see it that way: sometasks are about the product, others are about the project. Without agood product, there is little chance you will have a good project, butmaintaining a project requires thinking in terms of infrastructure,not in terms of bugs, thinking in terms of resources that enable bothusers and contributors, not in terms of commits.</p><p>So let me try to define again what a free software maintainer is.</p><p>A free software maintainer is someone who cares about enabling usersand contributors so that they collectively take care of the project.</p><p>See another pattern here?</p><p>It's all about the <em>project</em> (vs the product) and about <em>taking care ofit</em> (vs being a direct hotline for users), caring about the projectinfrastructure and about empowering users and contributors with toolsand incentives so that they care too.</p><p>How can you help such a maintainer?</p><p>By focusing on the project and becoming an enabler yourself.</p><p>Let's pause and summarize: our culture wants heroes and this leads usto expect maintainers to be superhackers and superactive hotlines.This is the HOT mindset of maintenance, where the maintainer is theHeadmaster Of Tweaks and soon becomes the Headmaster Of Troubles.</p><p>To resist this HOT mindset, let's redefine maintenance as ACDC:<strong>Asynchronous Collective Distributed Care</strong>:</p><ul><li><p><em>Asynchronous</em> because time management is a private matter and we areall volunteers.</p></li><li><p><em>Collective</em> because, well, no man is an island.</p></li><li><p><em>Distributed</em>: the more power to the "edges", the more resilient theproject is.</p></li><li><p><em>Care</em> because this is all about care: with each other as users or ascontributors, with the project's infrastructure (servers, websites,bug trackers, etc.) and care about having a useful product.</p></li></ul><p><em>Enabling</em> means encouraging contributors to take ownership, which ismore than just delegating tasks. Let your users and contributors knowthat they need to tap into the collective attention pool with care:the more autonomous they are, the better.</p><p>So, with this ACDC definition in mind, how can <em>you</em> help Emacsmaintainers?</p><ul><li><p><strong>Become a maintainer for your own project</strong>, however small. Think interms of project (vs product). Empower users and contributors. Thiswill help you understand how to help other maintainers. ("More powerto the edge!")</p></li><li><p><strong>Volunteer as a contributor steward for a project</strong>: you don't need tobe a supersmart hacker to help others to contribute. (For Org-mode,we are lucky to have two <a href="https://orgmode.org/worg/org-maintenance.html">contributor stewards</a>.)</p></li><li><p><strong>Learn how to teach</strong>. Because pedagogical skills are invaluable.(Taking the time to explain others how to write a bug report or apatch is invaluable is part of the Org culture.)</p></li><li><p><strong>Test and enhance the project's contribution process</strong>. (For Org-mode,you would read and enhance the <a href="https://orgmode.org/worg/org-contribute.html">org-contribute</a> page.)</p></li><li><p><strong>Take care of the project's calls for help</strong>. (For Org-mode, this wouldbe <a href="https://updates.orgmode.org/#help">this list</a>. For Emacs, this would be etc/TODO.) If the calls forhelp are not explicit, try to contribute some.</p></li><li><p><strong>Encourage users from outside the project to contribute to the coreforum</strong>. (For Org-mode, there are many hacks and fixes being sharedon <a href="https://www.reddit.com/r/orgmode/">reddit</a> and <a href="https://stackoverflow.com/questions/tagged/org-mode">stackoverflow</a>: we should not wait for months beforehaving this shared on the list.)</p></li><li><p><strong>Let the core forum know about what happens in this outside world</strong> bysharing important information yourself.</p></li><li><p><strong>Propose your help for non-code tasks</strong>: maintain a website, enhancethe (community-driven) documentation, help with bug triage, etc.</p></li><li><p><strong>If you expect someone else to fix your bug, trying fixing someoneelse's bug too</strong>: that's how you'll learn Emacs Lisp and that's howyou'll concretely train your empathy, your sense of taking care.</p></li><li><p><strong>Don't expect the maintainer to be a hotline</strong>, especially a privateone. Address yourself to the community.</p></li><li><p><strong>Complete this list</strong>.</p></li></ul><p>That's it. Why is it hard?</p><p>Because helping maintainers by becoming an enabler is not immediatelyrewarding, whereas fixing a bug clearly is. But if you start thinkingof the project as something that enables you to do amazing things, andof the maintenance as something that enables contributions, you willsee how important and rewarding it is to become an enabler.</p><p>I'm definitely grateful to all enablers we have in Org's community!And to everyone who maintains a culture of teaching and learningthrough polite interactions on the mailing list and elsewhere: wealways need more "power to the edges".</p><p>Also thanks to the <a href="https://emacsconf.org/2021/">EmacsConf 2021</a> organizers: that's really takingcare of the community!</p><p>Thank you very much.</p> |