WEBVTT
00:00.799 --> 00:00:02.734
Hello, I'm Bastien Guerry,
00:00:02.734 --> 00:00:04.701
and I'm happy to be here.
00:00:04.701 --> 00:00:07.734
I've been the Org-mode maintainer
00:00:07.734 --> 00:00:09.501
for the last 10 years,
00:00:09.501 --> 00:00:11.368
and I would like to ask the question
00:00:11.368 --> 00:00:14.034
how to help GNU Emacs maintainers in general.
00:14.400 --> 00:00:15.519
By GNU Emacs, I mean
00:00:15.519 --> 00:00:18.080
the whole GNU Emacs ecosystem,
00:00:18.080 --> 00:00:19.520
including packages,
00:00:19.520 --> 00:00:21.039
not just the core GNU Emacs
00:00:21.039 --> 00:00:24.880
that we all love.
00:00:24.880 --> 00:00:28.268
After a decade of dealing with
00:00:28.268 --> 00:00:29.368
the Org community,
00:00:29.368 --> 00:00:32.934
my view of what a maintainer is changed.
00:00:32.934 --> 00:00:35.101
I'd like to share some ideas with you
00:00:35.101 --> 00:00:37.234
as I think they could be useful
00:00:37.234 --> 00:00:39.201
to help Emacs maintainers in general.
00:00:39.201 --> 00:00:41.968
And hopefully, these ideas also apply
00:00:41.968 --> 00:00:43.601
to other free software projects,
00:00:43.601 --> 00:00:45.901
at least those where contributors
00:00:45.901 --> 00:00:47.568
are all volunteers.
00:00:47.568 --> 00:00:51.368
First of all, what is a free software maintainer?
00:00:51.368 --> 00:00:54.601
- Obviously this is some rich dude
00:00:54.601 --> 00:00:56.268
with a lot of free time
00:00:56.268 --> 00:00:58.968
- Acting both as a supersmart hacker
00:00:58.968 --> 00:01:02.401
and a super-patient community manager
00:01:02.401 --> 00:01:05.101
- Someone who acts as the central hotline
00:01:05.101 --> 00:01:06.901
for users and contributors
00:01:06.901 --> 00:01:09.568
- Who knows how to write many emails,
00:01:09.568 --> 00:01:11.468
probably at the same time
00:01:11.468 --> 00:01:14.101
- Who does not hesitate
00:01:14.101 --> 00:01:16.934
to publicly scold annoying users
00:01:16.934 --> 00:01:19.801
- and someone narcissistic enough
00:01:19.801 --> 00:01:22.668
to seek credits for community efforts
00:01:22.668 --> 00:01:26.034
- But really looking for a job
00:01:26.034 --> 00:01:27.768
in some big IT company
00:01:27.768 --> 00:01:32.234
Right? Well... no. That was a joke.
00:01:32.234 --> 00:01:34.601
But maybe you did smile
00:01:34.601 --> 00:01:36.634
and that's probably
00:01:36.634 --> 00:01:39.401
because there is some truth to it.
00:01:39.401 --> 00:01:43.834
Why? Because our culture encourages
00:01:43.834 --> 00:01:45.634
free software users and casual contributors
00:01:45.634 --> 00:01:47.868
to think about maintainers this way.
00:01:47.868 --> 00:01:51.568
Don't we continue to use the expression
00:01:51.568 --> 00:01:54.001
"Benevolent Dictator For Life"?
00:01:54.001 --> 00:01:56.434
This is what I'd call
00:01:56.434 --> 00:01:58.068
the "Spiderman syndrome":
00:01:58.068 --> 00:02:01.268
maintenance is perceived in terms of
00:02:01.268 --> 00:02:04.168
great power and great responsibility.
00:02:04.168 --> 00:02:07.268
But I believe our culture of superheroes
00:02:07.268 --> 00:02:09.101
is not helpful here:
00:02:09.101 --> 00:02:11.301
it does not reflect the truth,
00:02:11.301 --> 00:02:14.134
it does not set the right expectations,
00:02:14.134 --> 00:02:16.334
and it prevents contributors
00:02:16.334 --> 00:02:17.601
to properly understand
00:02:17.601 --> 00:02:19.601
how to help maintainers.
00:02:19.601 --> 00:02:21.334
So let's start again.
00:02:21.334 --> 00:02:24.968
Instead of asking what a maintainer is,
00:02:24.968 --> 00:02:27.068
let me take the list of
00:02:27.068 --> 00:02:30.001
what I do as the Org maintainer.
00:02:30.001 --> 00:02:31.034
Here is my TODO-list:
00:02:31.034 --> 00:02:33.934
- First of all, I take care of
00:02:33.934 --> 00:02:35.201
the orgmode.org website.
00:02:35.201 --> 00:02:37.401
- I also take care of the
00:02:37.401 --> 00:02:41.434
org-contrib NonGNU ELPA package.
00:02:41.434 --> 00:02:44.034
- I do gardening on the
00:02:44.034 --> 00:02:46.168
community-driven documentation, Worg.
00:02:46.168 --> 00:02:48.401
- I do add contributors to Worg.
00:02:48.401 --> 00:02:51.134
- I read emails on emacs-orgmode@,
00:02:51.134 --> 00:02:54.134
emacs-devel@ and bug-gnu-emacs@.
00:02:54.134 --> 00:02:56.868
- I contribute to email moderation
00:02:56.868 --> 00:02:59.801
of the emacs-orgmode@ list
00:02:59.801 --> 00:03:02.468
with a bunch of other contributors.
00:03:02.468 --> 00:03:05.134
- I reply to private emails
00:03:05.134 --> 00:03:06.834
asking me for help about org-mode.
00:03:06.834 --> 00:03:10.168
- I coordinate with GNU Emacs maintainers
00:03:10.168 --> 00:03:12.934
and thanks to them for Emacs/Org integration.
00:03:12.934 --> 00:03:16.034
- I contribute with public emails
00:03:16.034 --> 00:03:17.801
on the Org mailing list.
00:03:17.801 --> 00:03:20.501
- I release new versions of Org-mode.
00:03:20.501 --> 00:03:22.634
- and sometimes, sometimes,
00:03:22.634 --> 00:03:24.601
I contribute with code.
00:03:24.601 --> 00:03:27.168
Do you see a pattern here?
00:03:27.168 --> 00:03:30.468
Yes. I bet the last three tasks
00:03:30.468 --> 00:03:31.801
is what most people have in mind
00:03:31.801 --> 00:03:34.201
when they think of a maintainer:
00:03:34.201 --> 00:03:35.534
it's all about hacking
00:03:35.534 --> 00:03:37.734
and being an efficient hotline.
00:03:37.734 --> 00:03:39.734
But in fact, these tasks
00:03:39.734 --> 00:03:41.601
are only a superficial part
00:03:41.601 --> 00:03:43.201
of what I do as a maintainer.
00:03:43.201 --> 00:03:47.001
Some would consider that these core tasks
00:03:47.001 --> 00:03:48.501
are the /interesting/ ones,
00:03:48.501 --> 00:03:51.634
while the others are the /boring/ ones.
00:03:51.634 --> 00:03:53.901
I don't see it that way:
00:03:53.901 --> 00:03:56.534
some tasks are about the product,
00:03:56.534 --> 00:03:58.801
others are about the project.
00:03:58.801 --> 00:04:00.834
Without a good product,
00:04:00.834 --> 00:04:02.168
there is little chance
00:04:02.168 --> 00:04:03.401
you will have a good project,
00:04:03.401 --> 00:04:07.534
but maintaining a project requires thinking
00:04:07.534 --> 00:04:09.301
in terms of infrastructure,
00:04:09.301 --> 00:04:11.068
not in terms of bugs,
00:04:11.068 --> 00:04:13.334
thinking in terms of resources
00:04:13.334 --> 00:04:16.701
that enable both users and contributors,
00:04:16.701 --> 00:04:18.401
not in terms of commits.
00:04:18.401 --> 00:04:21.001
So let me try to define again
00:04:21.001 --> 00:04:23.334
what a free software maintainer is
00:04:23.334 --> 00:04:24.434
or should be.
00:04:24.434 --> 00:04:26.234
A free software maintainer
00:04:26.234 --> 00:04:28.368
is someone who cares about
00:04:28.368 --> 00:04:30.968
enabling users and contributors
00:04:30.968 --> 00:04:32.768
so that they collectively
00:04:32.768 --> 00:04:34.201
take care of the project.
00:04:34.201 --> 00:04:36.734
See another pattern here?
00:04:36.734 --> 00:04:40.301
That's all about the /project/,
00:04:40.301 --> 00:04:41.501
versus the product.
00:04:41.501 --> 00:04:43.634
It's about /taking care of it/,
00:04:43.634 --> 00:04:46.934
versus being a direct hotline for users,
00:04:46.934 --> 00:04:49.901
caring about the project infrastructure
00:04:49.901 --> 00:04:52.134
and about empowering users
00:04:52.134 --> 00:04:54.234
with tools and incentives
00:04:54.234 --> 00:04:55.268
so that they care too.
00:04:55.268 --> 00:04:58.434
How can you help such a maintainer?
00:04:58.434 --> 00:05:00.901
By focusing on the project
00:05:00.901 --> 00:05:03.901
and becoming an enabler yourself.
00:05:03.901 --> 00:05:06.934
Let's pause and summarize:
00:05:06.934 --> 00:05:08.801
our culture wants heroes
00:05:08.801 --> 00:05:12.434
and this leads us to expect maintainers
00:05:12.434 --> 00:05:15.234
to be superhackers and superactive hotlines.
00:05:15.234 --> 00:05:19.568
This is the HOT mindset of maintenance,
00:05:19.568 --> 00:05:23.368
where the maintainers are Headmasters Of Tweaks
00:05:23.368 --> 00:05:26.901
and soon becomes the Headmaster Of Troubles.
00:05:26.901 --> 00:05:29.501
To resist this HOT mindset,
00:05:29.501 --> 00:05:33.201
I suggest to redefine maintenance as ACDC:
00:05:33.201 --> 00:05:36.534
*Asynchronous Collective Distributed Care*:
00:05:36.534 --> 00:05:38.968
- /Asynchronous/ because time management
00:05:38.968 --> 00:05:40.168
is a private matter
00:05:40.168 --> 00:05:41.968
and we are all volunteers.
00:05:41.968 --> 00:05:44.168
- /Collective/ because, well,
00:05:44.168 --> 00:05:45.634
no man is an island.
00:05:45.634 --> 00:05:49.201
- /Distributed/: because the more power
00:05:49.201 --> 00:05:51.601
to the "edges", the more resilient
00:05:51.601 --> 00:05:53.534
the system and the project is.
00:05:53.534 --> 00:05:56.368
- /Care/ because this is all about care:
00:05:56.368 --> 00:05:58.501
with each other as users
00:05:58.501 --> 00:06:00.134
or as contributors,
00:06:00.134 --> 00:06:02.101
with the project's infrastructure
00:06:02.101 --> 00:06:05.301
(servers, websites, bug trackers, etc.)
00:06:05.301 --> 00:06:08.701
and care about having a useful product.
00:06:08.701 --> 00:06:13.901
/Enabling/ users and contributors means
00:06:13.901 --> 00:06:16.468
encouraging them to take ownership,
00:06:16.468 --> 00:06:19.801
which is more than just delegating tasks.
00:06:19.801 --> 00:06:22.068
Let your users and contributors know
00:06:22.068 --> 00:06:23.901
that they need to tap into
00:06:23.901 --> 00:06:26.434
the collective attention pool with care:
00:06:26.434 --> 00:06:28.801
the more autonomous they are, the better.
00:06:28.801 --> 00:06:33.801
So, with this ACDC definition in mind,
00:06:33.801 --> 00:06:37.534
how can /you/ help Emacs maintainers?
00:06:37.534 --> 00:06:41.268
- First of all, by *becoming a maintainer
00:06:41.268 --> 00:06:44.334
for your own project*, however small.
00:06:44.334 --> 00:06:47.001
Think in terms of project (vs product).
00:06:47.001 --> 00:06:49.034
Empower users and contributors.
00:06:49.034 --> 00:06:50.668
This will help you understand
00:06:50.668 --> 00:06:54.068
how to help other maintainers.
00:06:54.068 --> 00:06:56.501
("More power to the edges!")
00:06:56.501 --> 00:07:00.001
- *Volunteer as a contributor steward
00:07:00.001 --> 00:07:02.201
for another project*: you don't need to
00:07:02.201 --> 00:07:03.868
be a supersmart hacker
00:07:03.868 --> 00:07:05.634
to help others to contribute.
00:07:05.634 --> 00:07:07.701
(For Org-mode, we are lucky to have
00:07:07.701 --> 00:07:10.901
two great contributor stewards.)
00:07:10.901 --> 00:07:12.868
- *Learn how to teach*,
00:07:12.868 --> 00:07:16.468
because pedagogical skills are invaluable.
00:07:16.468 --> 00:07:18.301
(Taking the time to explain
00:07:18.301 --> 00:07:20.868
how to write a bug report or a patch
00:07:20.868 --> 00:07:23.834
is invaluable and this is a core part
00:07:23.834 --> 00:07:25.401
of the Org culture.)
00:07:25.401 --> 00:07:27.801
- *Test and enhance the project's
00:07:27.801 --> 00:07:30.001
contribution process*. (For Org-mode,
00:07:30.001 --> 00:07:33.268
you would read and suggest contributions to
00:07:33.268 --> 00:07:35.634
the org-contribute pages on Worg.)
00:07:35.634 --> 00:07:38.601
- *Take care of the project's calls for help*.
00:07:38.601 --> 00:07:40.968
(For Org-mode, this would be this list
07:40.560 --> 00:07:43.599
that we have on updates.orgmode.org
07:43.599 --> 00:07:47.234
For Emacs, this would be =etc/TODO= file.)
00:07:47.234 --> 00:07:50.834
If the calls for help are not explicit enough,
00:07:50.834 --> 00:07:52.834
try to contribute some.
00:07:52.834 --> 00:07:56.701
- *Encourage users from outside the project
00:07:56.701 --> 00:07:58.434
to contribute to the core forum*.
00:07:58.434 --> 00:08:01.434
(For Org-mode, there are many hacks and fixes
00:08:01.434 --> 00:08:03.901
being shared on reddit and stackoverflow:
00:08:03.901 --> 00:08:05.401
and that's fine, but we we should not
00:08:05.401 --> 00:08:07.401
wait for months before having this
00:08:07.401 --> 00:08:08.801
shared on the list.)
00:08:08.801 --> 00:08:11.434
- *Let the core forum know about
00:08:11.434 --> 00:08:13.701
what happens in this outside world*
00:08:13.701 --> 00:08:16.601
by sharing important information yourself.
00:08:16.601 --> 00:08:19.868
- *Propose your help for non-code tasks*:
00:08:19.868 --> 00:08:21.368
maintain a website,
00:08:21.368 --> 00:08:23.734
enhance the (community-driven) documentation,
00:08:23.734 --> 00:08:26.101
help with bug triage, etc.
00:08:26.101 --> 00:08:29.568
- *If you expect someone else to fix your bug,
00:08:29.568 --> 00:08:33.234
try fixing someone else's bug too*:
00:08:33.234 --> 00:08:36.234
that's how you'll learn Emacs Lisp
00:08:36.234 --> 00:08:37.668
and that's how you'll concretely
00:08:37.668 --> 00:08:40.501
train your empathy, your sense of taking care.
00:08:40.501 --> 00:08:42.068
That is so critical.
00:08:42.068 --> 00:08:44.101
- *Don't expect the maintainer
00:08:44.101 --> 00:08:45.168
to be a hotline*,
00:08:45.168 --> 00:08:46.801
especially a private one.
00:08:46.801 --> 00:08:49.234
Address yourself to the community.
00:08:49.234 --> 00:08:51.968
- and last but not least,
00:08:51.968 --> 00:08:53.120
*complete this list*.
00:08:53.120 --> 00:08:54.959
I'm trying to open a conversation here,
00:08:54.959 --> 00:08:57.168
so don't be shy.
00:08:57.168 --> 00:09:01.760
That's it. Is it hard? Yes, this is hard,
00:09:01.760 --> 00:09:04.640
and that's because helping maintainers
00:09:04.640 --> 00:09:07.760
by becoming such a enabler
00:09:07.760 --> 00:09:09.839
in this ACDC mindset
00:09:09.839 --> 00:09:12.080
is not immediately rewarding,
00:09:12.080 --> 00:09:15.168
whereas fixing a bug clearly, clearly is.
00:09:15.168 --> 00:09:17.701
But if you start thinking of the project
00:09:17.701 --> 00:09:19.301
as something that enables you
00:09:19.301 --> 00:09:21.440
to do amazing things, and I believe
00:09:21.440 --> 00:09:23.434
Org is this kind of project,
00:09:23.434 --> 00:09:25.034
and if you start thinking
00:09:25.034 --> 00:09:26.634
of the maintenance as something
00:09:26.634 --> 00:09:28.934
that enables more contributions,
00:09:28.934 --> 00:09:31.734
you will see how important and rewarding
00:09:31.734 --> 00:09:35.668
it is to become such an enabler.
00:09:35.668 --> 00:09:39.701
So, definitely grateful to all enablers
00:09:39.701 --> 00:09:41.401
that we have in Org's community!
00:09:41.401 --> 00:09:43.734
And to everyone who maintains
00:09:43.734 --> 00:09:45.701
a culture of teaching and learning
00:09:45.701 --> 00:09:49.068
through polite and respectful interactions
00:09:49.068 --> 00:09:50.801
on the mailing list and elsewhere:
00:09:50.801 --> 00:09:55.001
we always need more "power to the edges".
00:09:55.001 --> 00:09:57.168
And I'm also very grateful
00:09:57.168 --> 00:09:59.034
to the EmacsConf 2021 organizers,
00:09:59.034 --> 00:10:02.568
because that's really taking care
00:10:02.568 --> 00:10:03.568
of the community! Thanks very much.
00:10:03.568 --> 00:10:04.000
[captions by sachac]