summaryrefslogblamecommitdiffstats
path: root/2021/captions/emacsconf-2021-maintainers--how-to-help-emacs-maintainers---bastien-guerry--main.vtt
blob: 0bd1e6d15ec739b6732e66360c191000c1db6181 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
      
                       
                          
 
                              
 
                                 
 
                       
                      
                       
                                    
                       
                                             
                       
 
                              
 
                       
 
                           
 
                       
                 
                       
                              
                       
 
                       
                                        
                                     
 
                               
 
                       
                                     
                       
                                     
                                
 
                                 
 
                       
                   
                       
                                                 
                                
 
                       
                       
                                  
 
                       
                                     
                                       
 
                       
                          
                                   
 
                       
                         
                       
 
                       
                                
                               
 
                       
                                     
                            
 
                       
                      
                                   
 
                       
                       
                       
                   
                                  
 
                       
                                   
                       
                                           
                                    
 
                       
                                       
                                   
 
                       
 
                             
 
                       
                                    
                       
                                     
                       
                                        
                       
                    
                              
 
                                       
 
                            
 
                       
 
                       
                        
                       
                     
                                           
 
                       
                       
                                
 
                       
                     
                            
 
                       
                        
                       
 
                       
                                
                       
 
                       
                                     
                              
 
                                
 
                       
                                
                                
 
                       
                          
                       
                                   
                         
 
                       
                                  
                                       
 
                       
                                             
                               
 
                       
                        
                                   
 
                         
 
                       
                       
                       
                          
                       
                               
                       
                                
                       
                                
                       
                      
                       
                               
                        
 
                       
                           
                       
                             
                       
                                         
                         
 
                                     
 
                       
                        
                       
                                 
                             
 
                       
 
                       
                      
                       
                             
                       
                                           
                           
 
                       
                     
                              
 
                                        
 
                       
                        
                             
 
                       
                                  
                       
             
                          
 
                       
                          
                               
 
                         
 
                       
                         
                       
                         
                                   
 
                       
                   
                             
 
                       
                                        
                                                
 
                       
                          
                         
 
                       
                      
                       
                                   
                       
                          
                       
                                 
                              
 
                       
                        
                                       
 
                       
                                            
                                       
 
                       
                                               
                       
                                            
                           
 
                       
                                          
                                               
 
                                          
 
                       
 
                       
                          
                               
 
                       
                    
                                         
 
                                      
 
                       
                              
                                          
 
                       
                        
                       
 
                                 
 
                       
                                       
                       
                                       
                                               
 
                                   
 
                                         
 
                       
                                    
                          
 
                       
                                        
                       
                                         
                                      
 
                                          
 
                                             
 
                                     
 
                                      
 
                               
 
                             
 
                              
 
                              
 
                                         
 
                                      
 
                       
                      
                       
                             
                                  
 
                               
 
                          
 
                       
                                          
                          
 
                       
                                    
                                     
 
                       
 
                                            
 
                                   
 
                                           
 
                                 
 
                                                 
 
                                     
 
                       
                                   
                                              
 
                                              
 
                       
                       
                                               
 
                                
 
                                            
 
                                          
 
                       
                                     
                                  
 
                       
 
                                    
 
                                  
 
                       
                                          
                                            
 
                       
 
                                           
 
                       
                          
                                           
 
                                             
 
                                  
 
                                
 
                       
                                              
                       
                    
                           
 
                       
 
                         
 
                       
                                  
                       
 
                          
 
                       
                                       
                       
                
                                               
 
                                      
 
                       
                          
                       
 
                       
                             
                       
                                         
                                        
 
                             
 
                       
                                   
                       
                            
                       
                         
                       
                               
                       
                                
                                        
 
                       
                                
                                           
 
                       
                                
                       
                             
                       
                                  
                       
                                          
                                  
 
                                             
 
                          
 
                            
 
                       
                                 
                                       
 
                            
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]