1
00:00:03,937 --> 00:00:07,837
Yep right hello again,

2
00:00:10,917 --> 00:00:16,617
let's talk about i'm sure most of you have seen this picture at some point we're

3
00:00:16,617 --> 00:00:20,157
going to talk about laser pointers broken but you know who i'm talking about

4
00:00:20,157 --> 00:00:24,877
that guy what does he do who is he Why is he doing it?

5
00:00:25,637 --> 00:00:30,217
So we're talking about maintainers. What is a maintainer anyway?

6
00:00:31,097 --> 00:00:36,697
Chances are the maintainer of a certain project is the original author of the project.

7
00:00:36,937 --> 00:00:40,797
It's often the case, doesn't have to be the case, but let's assume it is.

8
00:00:41,797 --> 00:00:46,877
Then they are also likely the lead developer of the project.

9
00:00:47,217 --> 00:00:52,217
And also what in a corporate world one would call a software architect.

10
00:00:53,657 --> 00:01:00,017
Then when the project has some form of UI, chances are they are also the designer

11
00:01:00,017 --> 00:01:04,277
or the UI designer, the UX designer of that project.

12
00:01:04,337 --> 00:01:09,357
Whether that's a good idea or not is up for debate, but more often than not, that's the case.

13
00:01:11,075 --> 00:01:17,855
They are also likely the one who takes care of CI and CD infrastructure and

14
00:01:17,855 --> 00:01:26,195
are a sysadmin for the website of the project or any auxiliary build and promotion infrastructure.

15
00:01:27,255 --> 00:01:32,355
Then chances are they're going to take care of packaging for various app stores

16
00:01:32,355 --> 00:01:36,855
or package managers, distributions and so on.

17
00:01:38,035 --> 00:01:41,695
One, already mentioned, system administrator for various things.

18
00:01:42,715 --> 00:01:49,395
They're also the one who set out the guidelines for what's happening with the

19
00:01:49,395 --> 00:01:52,715
project and the product. So in a way, they are a product manager.

20
00:01:53,235 --> 00:01:57,595
And some people like to say the most important thing a maintainer can say is

21
00:01:57,595 --> 00:02:01,555
no to contributions that don't fit the vision of the project.

22
00:02:02,635 --> 00:02:07,355
They're also likely the one doing bug triage and bug fixing primarily,

23
00:02:07,735 --> 00:02:12,755
dealing with user support, questions, complaints, and everything.

24
00:02:13,335 --> 00:02:20,355
And once you have a certain community around you, of which about a third is

25
00:02:20,355 --> 00:02:26,055
reserved for sleep and most or a lot of maintainers don't only do that in their

26
00:02:26,055 --> 00:02:27,655
free time, which is very limited.

27
00:02:27,715 --> 00:02:30,255
And so things can get rather slow.

28
00:02:31,675 --> 00:02:37,515
There's also risk of bus factor, because if there's one guy or one person taking

29
00:02:37,515 --> 00:02:42,235
care of everything, if that person, something happens to them,

30
00:02:42,255 --> 00:02:45,755
doesn't have to be a bus, then that project is in trouble.

31
00:02:47,175 --> 00:02:50,815
And then there's the saying, jack of all trades, master of none.

32
00:02:50,995 --> 00:02:56,335
And when you have to take care of all of these things, then you are very quickly

33
00:02:56,335 --> 00:02:59,615
a jack of all trades, but not necessarily a master of anything.

34
00:03:01,555 --> 00:03:09,875
And with all of that, it's very, very likely that the person is at risk of burnout.

35
00:03:12,174 --> 00:03:16,274
And once you're at the point where you kind of burned out of the project and

36
00:03:16,274 --> 00:03:20,014
people keep coming to you with things to do and suggestions and complaints,

37
00:03:20,294 --> 00:03:26,174
you develop a sort of siege mentality where you block off any attempt at challenging

38
00:03:26,174 --> 00:03:32,474
the status quo and just refuse to do anything differently, even if it's a reasonable request.

39
00:03:33,114 --> 00:03:40,534
So a single maintainer project can quite quickly devolve to a dictatorship over that project.

40
00:03:42,174 --> 00:03:48,674
So, how do we do things in KDE? Most KDE projects don't have a formal maintainer.

41
00:03:48,854 --> 00:03:53,454
For frameworks, we even explicitly remove that information from the metadata

42
00:03:53,454 --> 00:03:55,634
files because quite often it was wrong anyway.

43
00:03:57,574 --> 00:04:02,094
And quite often we have something that Nates likes to describe as a council

44
00:04:02,094 --> 00:04:08,354
of elders, which is a couple of senior developers that do a lot of the things

45
00:04:08,354 --> 00:04:11,734
that the maintainer is supposed to do and make decisions about the project.

46
00:04:12,874 --> 00:04:17,214
Then we have a sysadmin team that takes care of CI infrastructure,

47
00:04:17,894 --> 00:04:23,214
website infrastructure, build infrastructure, email, a ton of things.

48
00:04:24,294 --> 00:04:31,114
We also have people looking after websites. We have a bug squad that takes care of bug triage.

49
00:04:31,554 --> 00:04:35,354
We have a visual design group. We have a promo team.

50
00:04:35,654 --> 00:04:41,934
We have KDEV taking care of a lot of legal and financial matters that nobody wants to deal with.

51
00:04:42,514 --> 00:04:45,534
We have people dedicated to doing user support.

52
00:04:45,874 --> 00:04:50,994
We have translators because no single maintainer can translate for all languages.

53
00:04:52,634 --> 00:04:58,354
We have distributions that take care of packaging and some form of user support.

54
00:04:59,134 --> 00:05:06,034
And generally, we have a community. And I think that's what makes KDE not unique, but special.

55
00:05:09,212 --> 00:05:15,872
Is this all fine and dandy and perfect? No, there's some unique risks and challenges to that.

56
00:05:16,512 --> 00:05:22,092
One of them is fragmentation of the community. If you have individual groups

57
00:05:22,092 --> 00:05:25,912
or people taking care of things, then things can get quite fragmented.

58
00:05:25,932 --> 00:05:29,372
And if those groups don't talk to each other, there will be conflict.

59
00:05:31,152 --> 00:05:36,072
Then there's overhead to it. If Plasma needs to wait for SysAdmin or SysAdmin

60
00:05:36,072 --> 00:05:41,192
needs to wait for Plasma or anyone waiting on anything introduces a lot of communication

61
00:05:41,192 --> 00:05:45,372
overhead and delays and generally not pleasant experiences.

62
00:05:47,512 --> 00:05:53,292
And when you are able to focus on only one thing, you may or may not become

63
00:05:53,292 --> 00:05:59,172
master of that thing, but you only become master of one thing and don't even

64
00:05:59,172 --> 00:06:01,072
get close to being a jack-of-all-trades.

65
00:06:03,092 --> 00:06:07,432
Then not only does the community fragment, the knowledge in the community fragments

66
00:06:07,432 --> 00:06:13,112
because very few people outside of Ben know how to run our infrastructure which

67
00:06:13,112 --> 00:06:14,932
is causing bus factor issues,

68
00:06:15,892 --> 00:06:19,272
and there can also be a lack of ownership

69
00:06:19,272 --> 00:06:24,972
about some parts of the code that a community so if somebody writes something

70
00:06:24,972 --> 00:06:30,712
then disappears and then nobody feels like they should be careful care for something

71
00:06:30,712 --> 00:06:35,252
that thing can rot and if then somebody comes and wants to do something about

72
00:06:35,252 --> 00:06:38,192
it but no one's around to review and merge patches for it,

73
00:06:38,852 --> 00:06:41,852
that can cause a lot of frustration and issues for new-time people.

74
00:06:43,812 --> 00:06:46,672
Let's think about all of those. And with that, I'm done.

75
00:06:48,832 --> 00:06:49,572
Thank you.

