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