WEBVTT

00:00.000 --> 00:20.880
There's a couple of devices, there's probably some AI's listening to us, but this is actually

00:20.880 --> 00:28.200
they talk for us as people, and I was an amazing bunch of events before the conference,

00:28.200 --> 00:32.840
and one of them yesterday during the workshop, I overheard across the room somebody showed

00:32.840 --> 00:37.560
out, we are developers, not humans, and I tend to disagree.

00:37.560 --> 00:44.080
I think we're humans first, even if we do stay up late, drinking up Clibmata, like we do

00:44.080 --> 00:49.680
in Germany and Berlin and everywhere else, but what I want to talk about, if I can get

00:49.680 --> 00:58.240
my slide to work, is finding ways to reframe our work and open source as compassionate

00:58.240 --> 00:59.240
activities.

00:59.240 --> 01:08.960
I'm not going to talk too much about the importance of finding peace and being gentle, we

01:08.960 --> 01:09.960
can still argue.

01:09.960 --> 01:13.800
I think it's important to find the right names for things, and I'm going to be coming

01:13.800 --> 01:15.960
back to that quite a few times in the book.

01:15.960 --> 01:21.240
I mean, my name, Daniel, I earned that name, but I'm meeting because I was in a meeting

01:21.240 --> 01:24.840
with another Daniel, actually this was in Germany, so there was a Daniel in a Daniel

01:24.840 --> 01:28.800
and the person who was taking notes at the meeting didn't know our surnames, which is

01:28.800 --> 01:32.080
why I didn't tell you my surname earlier.

01:32.080 --> 01:36.040
I Daniel, but she didn't know how to write that, so she used the phonetic spelling that

01:36.040 --> 01:43.360
she would use in tuning in to differentiate between one Daniel and another Daniel, and

01:43.360 --> 01:52.160
I've never made it a topic of a talk to discuss why we get names that we used to talk

01:52.160 --> 01:53.160
about things.

01:53.160 --> 02:01.280
I think a lot of it is accidental, right, like bus factor, right?

02:01.280 --> 02:06.200
Raise your hand if you don't want bus factor is, it's about half the room, so I'll try

02:06.200 --> 02:10.760
to describe it in a gentle way, bus factor is when you're walking down the street and

02:10.760 --> 02:19.400
you get hit by a bus, you end up in the hospital or the grave, that's what it needs.

02:19.400 --> 02:25.000
In software development, what we mean with bus factor one is the number of people that

02:25.000 --> 02:29.360
have to get hit by a bus before your system start to fall apart.

02:29.360 --> 02:38.760
That means that one individual has all the knowledge of an organization, probably not a good

02:38.760 --> 02:45.080
thing for the longevity of an open-source project, if it can be derailed by one person

02:45.080 --> 02:47.920
leaving an organization.

02:47.920 --> 02:56.280
I've heard there's a new word in town called lottery factor, and this one is, I think it's

02:56.280 --> 03:03.560
even more interesting than bus factor, because it means that if somebody on your team wins

03:03.560 --> 03:07.360
a lot of money in the lottery, they're just going to leave.

03:07.600 --> 03:12.160
Money is the factor, just like getting hit by a bus that's going to stop you from contributing

03:12.160 --> 03:15.280
to open-source or working on the project.

03:15.280 --> 03:22.560
I mean, I think that if we were to use one of these terms to talk about the problems

03:22.560 --> 03:31.800
of losing people in open-source, then maybe we should choose the gentler one of, hey, you

03:31.800 --> 03:34.800
want the lottery, congratulations, see you next Tuesday.

03:34.800 --> 03:39.440
That's because you want money, doesn't change who you are, doesn't change what it means

03:39.440 --> 03:49.160
to be a part of a community, leaving the planet does.

03:49.160 --> 03:56.440
So if you stop talking to people, they don't know what you're doing, they don't know that

03:56.440 --> 04:05.160
you're not around, they don't know why you're not around.

04:05.160 --> 04:12.760
In community building, I wish I had a joke from the community TV show I don't, but all

04:12.760 --> 04:19.680
of community is about relating and relationships and collaboration, and you can't collaborate

04:19.680 --> 04:21.680
if you don't talk.

04:21.680 --> 04:27.640
So I'm ashamed to say there's been times when I've ghosted people because I didn't

04:27.640 --> 04:35.240
know what to say, right, I think I've been on receiving end of that too, and it's hard

04:35.240 --> 04:41.640
to overcome, but ghosting is another kind of bus factor, right, it's this is for some

04:41.640 --> 04:57.520
emotional fear of not being able to relate, right, and overcoming that challenge is really

04:57.520 --> 04:59.720
hard if you're doing it alone, right?

04:59.720 --> 05:04.280
So we come back to this whole idea of, well, there is no bus factor, there is no lottery

05:04.280 --> 05:10.560
factor, there is just a group of us working on something together.

05:10.560 --> 05:15.640
That's why what we've tried to accomplish in our community is to just keep on checking

05:15.640 --> 05:16.640
on people.

05:16.640 --> 05:21.680
If you don't hear from somebody, say hi, don't be that person that says, oh, you were supposed

05:21.680 --> 05:27.920
to contact me and you didn't, so I'm not going to contact you.

05:27.920 --> 05:35.120
It turns out that people aren't always, mentally, well, maybe they have problems, maybe

05:35.120 --> 05:40.520
there's things in their family, maybe it's about their job, maybe they're overworked,

05:40.520 --> 05:56.120
maybe they're suicidal, and I think the challenge for leadership in open source projects

05:56.120 --> 06:00.520
is remembering, you can't do everything yourself, you have to have a group of people

06:00.520 --> 06:05.320
that you're working with and that you, that we're all accountable to each other, and this

06:05.320 --> 06:09.880
is a really nice, a nice hack, maybe the salient point of this whole talk, the one that

06:09.880 --> 06:15.880
gave me the idea for this talk, and that is to engage the painful parts, right?

06:15.880 --> 06:21.320
So, everybody here knows what imposter syndrome is, do you know imposter syndrome

06:21.320 --> 06:22.680
as your hand?

06:22.680 --> 06:29.960
It's almost everybody, okay, for those of you on stream, who, maybe raise your hand

06:29.960 --> 06:36.560
as well, imposter syndrome is the feeling that you don't know what you're doing, you're

06:36.640 --> 06:42.000
not good enough at what you do, and people are judging you.

06:42.000 --> 06:50.800
That's a pretty decent summary of imposter syndrome, and then there's the other side of

06:50.800 --> 06:52.200
the imposter syndrome.

06:52.200 --> 06:55.760
This is the side that turns into entitlement, who here knows what entitlement is and opens

06:55.760 --> 07:01.000
our software, issues and poor requests, right?

07:01.000 --> 07:05.680
Entitlement is like the same term as bus factor, we shouldn't use it, because what we're

07:05.760 --> 07:12.640
saying, let me say, oh, don't be so entitled, is we're judging that person for how they

07:12.640 --> 07:17.920
want to try to interact with us, and honestly, in every community, there are people who struggle

07:17.920 --> 07:23.200
with birds, maybe even native English speakers struggle with birds, and I know in German,

07:23.200 --> 07:27.280
I struggle with German, and in French, I struggle with French, and in Italian, I struggle with

07:27.280 --> 07:32.320
Italian, and I don't always say exactly what I want to say, and that can be frustrating

07:32.400 --> 07:37.360
for me as a speaker, and actually that problem accompanied me for the first seven years,

07:37.360 --> 07:43.360
I was learning German, I was always angry, but at myself, because I couldn't say exactly

07:43.360 --> 07:53.040
the thing I wanted to say, and when you have an issue pop up in your repository, and it says

07:53.040 --> 07:58.880
something like, hey, I found a problem in your code, why don't you even fix it, because I

07:58.960 --> 08:07.360
need this to be fixed for my project, and most people in our community would just take 100

08:07.360 --> 08:14.320
of time for this, kind of entitled person, who do they think they are? They think that there's

08:14.320 --> 08:24.720
17 minutes left in this talk, they think that the problems that they have are suddenly my problems,

08:24.800 --> 08:29.760
and in a sense, and I'm going to argue that they actually are, and I think it's important to

08:29.760 --> 08:36.400
engage people who you think are acting entitled, because if you don't, you start to ghost them,

08:36.400 --> 08:42.320
you start to show them that they're not important, and that you're actually framing your community

08:42.320 --> 08:50.080
in a way that says some of us are better than some of us, and you create this type of polarity

08:50.080 --> 08:58.400
where some of us don't feel empowered to contribute, right? So when I'm talking about

09:00.160 --> 09:07.520
challenging yourself to address that person, the strategy that I've adopted is when it's

09:07.520 --> 09:12.560
called to anyone's attention in the community that someone is misbehaving, I will go look at

09:12.560 --> 09:21.280
the situation, try to stay neutral and detached, and find a private channel to talk to that person,

09:21.280 --> 09:28.720
whether it's in the real world, maybe it's a coffee shop. If it's discord, then a DM, if it's an email,

09:28.720 --> 09:35.920
then I'll write them an email. I am, however, acting as a servant of the community, so I do document

09:35.920 --> 09:41.360
these conversations, and I share them with the rest of the mod team, the communications,

09:41.360 --> 09:46.640
between each other is important, because generally speaking, someone in our community's self-assented,

09:47.200 --> 09:52.320
and I don't always know if that was intended, maybe it was, sometimes it is.

09:53.200 --> 09:58.240
Generally speaking, people learn to wear that they're behaving in a way that doesn't feel appropriate

09:58.240 --> 10:03.600
in the community, and that's why as a warden of the community, it's important to just talk to people,

10:04.240 --> 10:10.000
find them, meet them where they are, talk to them, and hold everybody accountable to this. I think

10:10.080 --> 10:16.240
that at the beginning of this devroom, we heard some rules about being kind to each other,

10:16.240 --> 10:35.360
and if you have a problem, you raise your hand. In posters are the people that don't succeed.

10:36.000 --> 10:45.920
Are you an imposter? No, an AI might be an imposter, you are you, you are good, and everybody in

10:45.920 --> 10:54.000
your community is also good. The default mode is this is a good person who has interests, they might

10:54.080 --> 11:05.680
up in mind, but that's okay. If we deconstruct the word imposter, we get imposition to impose.

11:07.920 --> 11:14.000
Having the imposition that you're not good enough, that you can't communicate well enough,

11:14.000 --> 11:21.760
that you haven't talked to that person long enough, are reasons why you should get over it.

11:24.000 --> 11:34.720
If you can't get over it, what should you do? Ask for help. If you're not able to listen to

11:34.720 --> 11:43.760
someone asking for help, you can help yourself. I guess the campaign I'm on is that money isn't

11:43.760 --> 11:51.680
going to make open source better. Lottery factor or not, paying maintainers is not going to solve

11:51.760 --> 11:57.120
the real problem of open source. The real problem that open source faces is the motion above you.

12:00.640 --> 12:10.080
I don't think that we pay enough attention to the damage that we endured as individuals

12:11.840 --> 12:16.240
and in this context, how can we understand what other people are going through?

12:17.200 --> 12:26.800
Then we have to judge them and all the while we're judging ourselves in poster syndrome.

12:30.080 --> 12:34.720
Are we just using the words that we're given to us and not paying attention to what they're

12:34.720 --> 12:44.320
actually doing to us? Do I have imposter syndrome when I'm trying to debug rust?

12:44.400 --> 12:49.520
Absolutely, but I have the compiler. Thank you very much. She helps you. I have friends.

12:49.520 --> 12:58.320
If we can tell me how wrong I am in a loving but harsh way. It doesn't make me imposter.

12:58.320 --> 13:10.240
I'm a learner. I'm getting better. I don't know if the system we build to tell

13:10.560 --> 13:18.240
is the perfect one. I'll try to outline how we build the whole organization. It started with

13:18.240 --> 13:26.080
two friends and then we got more friends. We had a core team of like five or six people but then

13:26.080 --> 13:31.600
more people started coming with questions and issues and pull requests and then some venture

13:31.600 --> 13:36.800
capitalists said, hey, do you want to make some money? And we said, oh, so we joined the comments

13:36.800 --> 13:41.760
Conservancy. We created a program within the Dutch Foundation to protect the world's

13:41.760 --> 13:49.200
stewardship of the code and the license of the project. And one of the mistakes we made is we thought

13:49.200 --> 13:55.120
that the governance body was good at making decisions. The governance body is really good at

13:55.920 --> 14:01.840
paper, tiger's ship. If that's a word. Like at being the responsible legal entity in case

14:01.840 --> 14:06.000
you need to do things like fight red bull for the trademark of teller. Which we did, we came to

14:06.000 --> 14:15.440
it a good. But it's not going about deciding what the API should look like. And after a year of just

14:15.440 --> 14:21.360
insanely long meetings and not getting anywhere we empowered the working group to do two things.

14:21.360 --> 14:27.680
One to vote in or out the people on the board of directors. But two also to create individual

14:27.760 --> 14:37.840
work streams of people with particular skills. So there's an ops group, there's a security group,

14:37.840 --> 14:43.360
there's a dev group, there's a comms group and they kind of change as people come and go.

14:45.120 --> 14:55.760
And people come and go. I think every community has this fear of not having enough people to work

14:55.840 --> 15:05.440
on the project. And sometimes projects and people shouldn't. I think the great part about the

15:05.440 --> 15:09.360
teller community is that through the teller community I've joined other communities and made other

15:09.360 --> 15:21.840
friends. And I think that I haven't met any imposter. I've been doing this for 20 years. I haven't met any

15:21.920 --> 15:32.000
imposter. Not a single one. I see a room full of people who care about people. I see people

15:32.000 --> 15:37.440
that I've worked with before. People that I might work with in the future. People who are going

15:37.440 --> 15:48.880
to tell other people that you're not an imposter, there's no bus factor. The thought I'd like to leave

15:48.880 --> 16:02.000
you with is that good governance of ourselves as individuals implies that we can govern as a body,

16:02.000 --> 16:06.000
as a group. I'm not talking socialism or communism or democracy or anything like that.

16:06.000 --> 16:12.640
I'm just talking about open-source communities. If we look at everything as a contribution,

16:12.640 --> 16:18.480
some contributions are good. Like, hey, the thing you just said, maybe we could try to reframe

16:18.480 --> 16:23.440
that because it seemed a little means to me. That's what you do when someone files a pull request.

16:23.440 --> 16:28.080
You're like, I don't like, you know, I don't like tabs. That's why we use lynching. So please,

16:28.080 --> 16:35.200
next time, when you make a pull request, run the winter. You don't have to like tabs or just

16:35.200 --> 16:39.840
like tabs. You can change it yourself. But as a community we all agreed, we don't like tabs.

16:39.840 --> 16:46.480
And if that changes in two years to be four spaces or to be two tabs, that's a thing that will

16:46.480 --> 16:52.800
we decide. And my point is that we can, if we are developers, not humans,

16:53.680 --> 16:58.480
at the very least treat other people as if we were talking to code and use the same rules of

16:58.480 --> 17:06.480
engagement that we've used to build codes to also build our communities. That helps us stay transparent

17:07.280 --> 17:17.520
and accountable. Friendly, accessible, honorable, maybe, and more communicative. I think

17:18.400 --> 17:24.160
when we stop talking to each other, it better because better be because one of us is dead,

17:24.960 --> 17:35.760
not because we're angry, not because we feel disenfranchised. Like, my goal here to

17:35.840 --> 17:41.520
to pep you up for the rest of this amazing Boston, the beginning of the community

17:41.520 --> 17:48.240
devroom, is to just remind you that we can do all of this stuff together. We can be better.

17:48.240 --> 17:56.160
We don't have to run away if we're afraid. And so I guess the final point I'd like to say is to

17:56.160 --> 18:02.240
be good to each other. Listen to my podcast. It was just a wrap last night about Tauri over at

18:02.240 --> 18:09.520
I know that. And I know I have seven minutes, but I also wanted to leave a couple of minutes at the

18:09.520 --> 18:18.320
end for you to ask me questions if you have them. Yeah. You're talking about entitlement

18:18.320 --> 18:24.560
to people in that way. I don't write wordings, but there are a lot of post-banned players out there

18:25.120 --> 18:30.080
right. They're just going to suck things away. How do you balance that? Okay, the question was

18:30.160 --> 18:36.800
with regard to entitlement. There is the perception that there are health vampires out there.

18:36.800 --> 18:42.800
And how do you address a health vampire? You can't ghost them. You cannot. You should not ghost

18:42.800 --> 18:47.600
them. My point is that you just address it head on and call a health vampire.

18:48.960 --> 18:56.560
Maybe not, don't call them a health vampire. Maybe the thing to do is to say, hey, you're asking

18:56.640 --> 19:04.880
a lot of questions that's great. Can I interest you in some documentation? In the rust community,

19:04.880 --> 19:12.880
we have slash examples. These are great places to have you tried rust things? Are you looking

19:12.880 --> 19:23.920
for a coach? Do you want to hire a trainer? And people will kind of recognize that they're doing

19:24.560 --> 19:32.240
and be like, oh gosh, I don't know. And I see this happen a lot with interns, junior developers,

19:32.240 --> 19:37.600
especially people that just kind of job and haven't been doing community work ever. And like,

19:37.600 --> 19:43.760
yeah, you're my stack overflow. You're my chat to PT. Come on, help me out. Don't use chat to PT.

19:47.200 --> 19:52.240
Or plot or anything for that. I'll get to you. I see you in back there. I'll get you in a second.

19:53.040 --> 19:59.760
The reason why I say that is you are disenfranchising your mind. You're disengaging from that

19:59.760 --> 20:12.560
person. All you are really doing is pretending. So, engage, honorably, honestly, and then let them

20:12.560 --> 20:16.960
recognize that their behavior isn't perfect. So, in the back there was another question.

20:16.960 --> 20:24.160
Yeah, so, following up on that, beyond how them hires or whatever, there are genuinely

20:24.160 --> 20:29.840
negative people in the community. That is an unfortunate fact of the human condition.

20:30.720 --> 20:36.400
How do you suggest, and I'm sure engagement is part of this, but how do you suggest that

20:37.120 --> 20:42.240
we as community participate? Do you want people who are genuinely toxic in the digital world?

20:43.040 --> 20:48.240
So, the question was, how do we as a community deal with people who are genuinely toxic in

20:48.240 --> 20:55.760
the digital world? Because there are negative people. I wanted to say Nancy, but that's not fair.

21:00.480 --> 21:07.600
I'm going to work backwards. First of all, hammer band. Do you have the obligation to protect

21:07.680 --> 21:13.680
your community, and if somebody won't change their aggressive mean behavior, you ban them from

21:13.680 --> 21:20.400
the community, when they come back, you ban them again. Document everything. And not because you're

21:20.400 --> 21:25.040
going to file a lawsuit, but it's because if you start with a hammer band, nobody knows what's happened.

21:25.040 --> 21:30.800
You just deleted all their posts, whatever. Document it so that you can share it with your team,

21:30.800 --> 21:34.960
because that's the compassionate thing to do for your team, because it shows them that you

21:34.960 --> 21:41.920
did what they expected you to do before the hammer band. You address this person privately.

21:43.360 --> 21:52.320
If they don't react, what's they will if you ask them if they're a bot? Are you a chatbot?

21:52.320 --> 21:59.040
People who are mean hate that, because they want to be heard. That's the last step. That's my last

21:59.040 --> 22:04.320
resort. If they're saying, no, I'm not a chatbot. I'm just really mad at this guy, because he said

22:04.320 --> 22:10.320
this thing, by talking to them, I can unravel what happened. Maybe it has nothing to do with the

22:10.320 --> 22:15.920
code or the community. Maybe they're having a bad day. And engaging with someone like that is

22:15.920 --> 22:24.000
hard moderation work, but what it does do is it shows people that you care enough to listen to them,

22:24.960 --> 22:29.360
but you also have the big old stick. And you're going to ban them from the community if they don't

22:30.240 --> 22:35.120
live up to the expectations of the community as written in the guidelines, because the guidelines

22:35.120 --> 22:40.720
are what holds the community together, not the open source license. How will you agree to participate

22:40.720 --> 22:46.960
and communicate with each other to find who we are?

22:46.960 --> 22:52.800
So, all of that takes a lot of time. And so, all of you make sure that you have something

22:52.880 --> 22:57.840
ready to commit to an aspect of the time, because it's not always as involved, and you have to do it

22:57.840 --> 23:03.440
poorly. And so, all you do is make sure you do that all the time.

23:03.440 --> 23:09.840
The question was, all of this takes a lot of time. Being a mod is a thankless job and how do you

23:10.960 --> 23:18.560
make it sexy? I mean, I'm kind of reframing the question. How do you attract people to this?

23:18.560 --> 23:26.240
And I think that people are attracted to it. By posting the wrong thing on Reddit,

23:27.040 --> 23:31.840
one of our greatest contributors to the community saw something I don't remember who wrote it,

23:31.840 --> 23:37.040
doesn't matter, but it was obviously wrong to anyone who's been using rust for more than 30 minutes.

23:38.400 --> 23:42.960
And then they came over to tell us how wrong we were and ended up becoming one of the most

23:43.040 --> 23:49.280
prolific contributors to the project. And one of our, I don't want to say thought police,

23:49.280 --> 23:55.840
because it's not about policing people, but it's about being sensitive, and following the

23:55.840 --> 24:03.760
the stream. I mean, with 15,000 people on our discord and six years of chat history,

24:05.520 --> 24:09.840
I've been out of line two, and people call me on it, and that's okay to also get calls out.

24:10.720 --> 24:18.080
Right? Don't run away from the problem and change it. And I think that if you

24:20.480 --> 24:28.000
care, you're going to stick around, and no one walks alone. Bus factor or lottery factor or whatever

24:28.000 --> 24:34.880
you want to call it, it's not a community if you're doing it alone. That's a charity.

24:34.880 --> 24:42.240
So, one last question, have 30 seconds? Yeah.

24:50.480 --> 24:56.000
The question was, what does it mean when a project is over, the project is over when no one can maintain it?

24:56.000 --> 25:00.400
What there is not enough knowledge of how the project was built or maintained,

25:01.360 --> 25:09.440
specifically with regard to secrets. So, if the secrets are lost that hold the NPM keys,

25:09.440 --> 25:12.800
all you can do is for you. Thanks.

