WEBVTT

00:00.000 --> 00:07.000
Yeah, no, it's fair, I guess.

00:07.000 --> 00:12.000
Well, when you provide your speaker biosphere, then that is the speaker biosphere.

00:12.000 --> 00:13.000
All right, yeah.

00:13.000 --> 00:14.000
Yeah, yeah, yeah.

00:14.000 --> 00:15.000
I fucked up.

00:15.000 --> 00:16.000
I threw up.

00:16.000 --> 00:20.000
And with that, can we give our formal welcome to Tony?

00:20.000 --> 00:29.000
All right.

00:29.000 --> 00:34.000
Well, first of all, thank you very much for having me.

00:34.000 --> 00:39.000
So today, what I want to talk about is not this year, eh, let's put tomorrow.

00:39.000 --> 00:43.000
Today, what I want to talk about is governance for software engineers.

00:43.000 --> 00:50.000
What I mean by this is a lot of us at some point a project grows to a certain size.

00:50.000 --> 00:53.000
And then we have to stop thinking about governance.

00:53.000 --> 00:56.000
How to organize the work of that project?

00:56.000 --> 01:01.000
And I have ended up doing a lot of this.

01:01.000 --> 01:08.000
And it's sometimes quite a stretch for folks who are developers and engineers at first

01:08.000 --> 01:15.000
to get into that world of governance and figure out how to do it.

01:15.000 --> 01:20.000
And the way that's intuitive and like close to the practices that we already have.

01:20.000 --> 01:25.000
And so the idea of this talk is to show that like it's not a different world where you just

01:25.000 --> 01:29.000
have to blindly sort of like copy paste what others are doing.

01:29.000 --> 01:32.000
But it's actually quite close to coding.

01:32.000 --> 01:37.000
And there's lots of like good practices that are really, really normal for us to

01:37.000 --> 01:41.000
do when we code that really apply to governance too.

01:41.000 --> 01:46.000
And essentially what I'm trying to do here is to get people to write better and more

01:46.000 --> 01:52.000
maintainable governance just like we try to write better and more maintainable code.

01:52.000 --> 01:55.000
So that's kind of the background.

01:55.000 --> 02:00.000
And so we're going to do two things, split up in two parts.

02:00.000 --> 02:05.000
First part is we're really going to talk about what is governance because like so many people

02:05.000 --> 02:09.000
when they talk about governance mean completely different things.

02:09.000 --> 02:13.000
And don't realize that they're talking about completely different things until like halfway through

02:13.000 --> 02:16.000
like the conversation is finished.

02:16.000 --> 02:19.000
And so we're going to talk about what it means for open source projects.

02:19.000 --> 02:23.000
And so what it really means is governance for open source projects.

02:23.000 --> 02:28.000
And then in the second point when actually like give you some really basic,

02:28.000 --> 02:31.000
a basic framework that I think works really well.

02:31.000 --> 02:37.000
And that encourage projects to use rather than a whole bunch of like much larger things.

02:37.000 --> 02:40.000
So yeah, you've heard about who I'm already.

02:40.000 --> 02:46.000
So I ended up as I was saying doing a lot of like governance see things in around open source.

02:46.000 --> 02:48.000
But yeah, anyway.

02:48.000 --> 02:51.000
So what is governance?

02:51.000 --> 02:53.000
So here are three things.

02:53.000 --> 02:58.000
First we're going to look, we're going to build a working definition of open source governance.

02:59.000 --> 03:02.000
And then we want to talk about delegation of authority as a concept.

03:02.000 --> 03:04.000
I think it's something that we don't talk about enough.

03:04.000 --> 03:06.000
And it's like if you actually understand this,

03:06.000 --> 03:10.000
it's a super great tool to understand not only how open source works in software works,

03:10.000 --> 03:13.000
but like more broadly than I think the world.

03:13.000 --> 03:17.000
And then when I want to talk about third point as governance is bounded,

03:17.000 --> 03:19.000
then we'll get into what I mean by this.

03:19.000 --> 03:23.000
So here's a working definition of what governance is.

03:23.000 --> 03:25.000
Again, for open source projects.

03:25.000 --> 03:28.000
And then we want to talk about what governance is,

03:28.000 --> 03:33.000
the formalization of implicit norms and culture in order to scale and collaboration.

03:33.000 --> 03:40.000
And there's a lot in this and so we're going to unpack it.

03:40.000 --> 03:44.000
You know, the first point is about scaling collaboration.

03:44.000 --> 03:49.000
It's the first thing that I find really important about governance.

03:49.000 --> 03:54.000
And at some point because you only start to need governance after a certain sites.

03:54.000 --> 03:57.000
The mistake a lot of projects do is to, you know,

03:57.000 --> 04:00.000
want to formalize a bunch of things way too early.

04:00.000 --> 04:02.000
And that's usually not a good idea at all.

04:02.000 --> 04:07.000
You want to wait until you actually feel the pain of not enough governance

04:07.000 --> 04:09.000
to start adding governance.

04:09.000 --> 04:13.000
And really the purpose of governance is to,

04:13.000 --> 04:18.000
yeah, say this in a second was the right slide.

04:18.000 --> 04:20.000
That's the purpose of governance.

04:20.000 --> 04:25.000
The purpose of governance is to scale collaboration by really

04:25.000 --> 04:28.000
formalizing the implicit norms and cultures.

04:28.000 --> 04:31.000
And what I mean by implicit norms and cultures is,

04:31.000 --> 04:36.000
every project, whether it has written down governance or not,

04:36.000 --> 04:38.000
has governance, right?

04:38.000 --> 04:39.000
But it's implicit.

04:39.000 --> 04:40.000
It's in the culture.

04:40.000 --> 04:41.000
It's how you do things, right?

04:41.000 --> 04:44.000
Maybe it's like, you know, this person who, like,

04:44.000 --> 04:46.000
reviews poor cost, right?

04:46.000 --> 04:47.000
That's governance.

04:47.000 --> 04:49.000
It's not written down, right?

04:49.000 --> 04:52.000
But if it's, you know, there's an unwritten way of doing something

04:52.000 --> 04:54.000
that is governance, right?

04:54.000 --> 04:57.000
And as you scale, as a project becomes bigger,

04:57.000 --> 05:01.000
what you want is to encode those, so that you can,

05:01.000 --> 05:04.000
so that they no longer are just implicit,

05:04.000 --> 05:06.000
but that they are explicit.

05:06.000 --> 05:09.000
That's also important because when you have explicit norms,

05:09.000 --> 05:12.000
they're the same for everyone, right?

05:12.000 --> 05:15.000
Whereas if they're implicit, like they're only those that know,

05:15.000 --> 05:17.000
and then the other ones are kind of lost, right?

05:17.000 --> 05:21.000
And it creates like some really unbalanced structure.

05:21.000 --> 05:28.000
Yeah, and then, you know, that's the last bit, right?

05:28.000 --> 05:32.000
Is that you want to formalize it, right?

05:32.000 --> 05:36.000
You want to write it down in a way that is easy for everyone

05:36.000 --> 05:39.000
to understand and agree about what it means, right?

05:39.000 --> 05:43.000
And so, you know, those really are the, for me,

05:43.000 --> 05:47.000
the key things about governance, which is, again,

05:47.000 --> 05:49.000
happens when you do need a scale.

05:49.000 --> 05:53.000
It is essentially encoding the existing practices,

05:53.000 --> 05:55.000
so that they're the same for everyone,

05:55.000 --> 05:57.000
and everyone agrees about them.

05:57.000 --> 06:01.000
But, on, I think, that's super important.

06:01.000 --> 06:05.000
All of this, like, happens in a system of authority

06:05.000 --> 06:08.000
delegation, and I'm going to explain what I mean by this.

06:08.000 --> 06:12.000
Now, so, when we write software,

06:12.000 --> 06:15.000
we tend not to think about all these things,

06:15.000 --> 06:20.000
but there is a concept of delegation of authority that happens,

06:20.000 --> 06:24.000
kind of a regardless, and of what, you know,

06:24.000 --> 06:27.000
as a fact that we don't like to think about it,

06:27.000 --> 06:34.000
and usually there is someone thinking about it, right?

06:34.000 --> 06:40.000
And I'm of the opinion that it is better when everyone actually thinks about these things,

06:40.000 --> 06:43.000
because then you don't have bad surprises down the road,

06:43.000 --> 06:45.000
where someone was, you know,

06:45.000 --> 06:49.000
cunningly thinking about this while the rest of the community wasn't, right?

06:49.000 --> 06:52.000
So, thinking about, like, who owns what,

06:52.000 --> 06:54.000
and what authority gives them,

06:54.000 --> 06:57.000
and how they're delegating that authority to the community,

06:57.000 --> 06:59.000
is really important.

06:59.000 --> 07:02.000
And, you have, you know,

07:02.000 --> 07:08.000
so, the thing is that we all live in countries that have legal frameworks,

07:09.000 --> 07:12.000
and an open source,

07:12.000 --> 07:16.000
this really materializes itself around copyright and licenses,

07:16.000 --> 07:19.000
trademarks, right, and to some degree, hopefully,

07:19.000 --> 07:22.000
very little degree pathets, right?

07:22.000 --> 07:25.000
But those are important, and actually who owns those,

07:25.000 --> 07:29.000
and, like, how, you know, that group of personal company or nonprofit

07:29.000 --> 07:33.000
is allowing others to use or reuse these things,

07:33.000 --> 07:35.000
matter quite a bit,

07:35.000 --> 07:39.000
and there's implicit delegation of authority that happens through this,

07:39.000 --> 07:41.000
right, consider a project,

07:41.000 --> 07:44.000
you know, let's say the FUBAR project, right,

07:44.000 --> 07:46.000
that I create, right,

07:46.000 --> 07:48.000
and you'll contribute to it.

07:48.000 --> 07:50.000
Well, I own the FUBAR trademark, right,

07:50.000 --> 07:52.000
so you can't just go run around and say,

07:52.000 --> 07:54.000
and I own it by virtue of it.

07:54.000 --> 07:57.000
I don't have to do anything specific, really, right?

07:57.000 --> 08:00.000
I own it by virtue of, like, having started the project,

08:00.000 --> 08:04.000
and the project name is kind of, like, I made it, right?

08:04.000 --> 08:07.000
So these things have an impact then down the road,

08:07.000 --> 08:09.000
if I decide that, well, you know,

08:09.000 --> 08:11.000
I don't want your contributions anymore.

08:11.000 --> 08:15.000
You can work the code through the lessons, right?

08:15.000 --> 08:18.000
But you can't use the name, that's an example, right?

08:18.000 --> 08:21.000
So these frameworks exist,

08:21.000 --> 08:24.000
whether they're, you know, explicit or implicit.

08:24.000 --> 08:29.000
And, yeah, you know, sometimes they're quite explicit,

08:29.000 --> 08:31.000
like you have a foundation that owns a bunch of things,

08:31.000 --> 08:33.000
and it has a, you know, a structure,

08:33.000 --> 08:35.000
and you see, oh, you know, there's a board,

08:35.000 --> 08:37.000
and all of these things, that's quite clear.

08:37.000 --> 08:41.000
But even, you know, in the case where it's implicit,

08:41.000 --> 08:43.000
this still matters, right?

08:43.000 --> 08:45.000
And sometimes those, you know,

08:45.000 --> 08:48.000
the legal framework around it can be very, very simple,

08:48.000 --> 08:51.000
and sometimes it can be very, very complex.

08:51.000 --> 08:54.000
The example I was using when I made the top of the first time

08:54.000 --> 08:57.000
was opening an icus, that was, like, fresh at the moment.

08:57.000 --> 08:59.000
And they had, like, this whole, really, like,

08:59.000 --> 09:02.000
wild structure of, like, a for-profit, a foundation,

09:02.000 --> 09:04.000
and a whole bunch of things.

09:04.000 --> 09:07.000
And, you know, at the end of the day, what really mattered

09:07.000 --> 09:11.000
was, like, who actually, and I'll get to this in a second,

09:11.000 --> 09:15.000
but who actually, the power was not the same

09:15.000 --> 09:20.000
on paper as it was in reality, right?

09:20.000 --> 09:22.000
So a few examples, right?

09:22.000 --> 09:26.000
You know, sort of, like, a very basic structure.

09:26.000 --> 09:29.000
You have the legal system, trademark law.

09:29.000 --> 09:33.000
You know, your BDFL, who owns the trademark,

09:33.000 --> 09:36.000
whether, you know, they know it or not, right?

09:36.000 --> 09:38.000
That's how it works.

09:38.000 --> 09:41.000
And then, you know, delegates authority through, like, a governance

09:41.000 --> 09:43.000
that MDF all and whatever it is, to a core team,

09:43.000 --> 09:46.000
that then, like, you know, continues to delegate

09:46.000 --> 09:49.000
that authority to the broader community through a country

09:49.000 --> 09:52.000
contributing that MD and a code of conduct, right?

09:52.000 --> 09:55.000
I mean, this is literally what's happening.

09:55.000 --> 09:58.000
We don't think of it that way, right?

09:58.000 --> 10:02.000
But this is really how the world actually organizes

10:02.000 --> 10:05.000
the way we build software.

10:05.000 --> 10:14.000
So, funny story, as I'm like, I'm going to have to say this out.

10:14.000 --> 10:17.000
And then, I was just like, wait, what does this stand for already?

10:17.000 --> 10:20.000
And so, I'm going to, oh, maybe this is going to work out

10:20.000 --> 10:22.000
and then what's going to ask?

10:22.000 --> 10:24.000
And so, I don't remember, I know what it means,

10:24.000 --> 10:27.000
but if someone can spell it out for me, that would be great.

10:27.000 --> 10:29.000
Thank you.

10:29.000 --> 10:31.000
Benevolent dictator for life.

10:31.000 --> 10:33.000
Thank you for asking the question.

10:33.000 --> 10:34.000
And yes.

10:34.000 --> 10:36.000
I saw it, that was just like, a mile panic.

10:36.000 --> 10:39.000
Maybe it's going to go ahead, it's going to work.

10:39.000 --> 10:41.000
Thank you.

10:41.000 --> 10:46.000
So, yes, if there's other acronyms, I'm sorry.

10:46.000 --> 10:48.000
Please do ask.

10:48.000 --> 10:51.000
And for those who know, please help me out.

10:51.000 --> 10:52.000
All right.

10:52.000 --> 10:56.000
So, this is a much bigger sort of structure, like a legal system legislation

10:56.000 --> 11:01.000
that creates a family that allows you to have a foundation structure.

11:01.000 --> 11:04.000
That foundation has bylaws and executive director board.

11:04.000 --> 11:07.000
Through a charter, it has like project leadership.

11:07.000 --> 11:10.000
And then, like, through those, you know, all of these different files,

11:10.000 --> 11:14.000
you sort of like delegating this authority footer.

11:14.000 --> 11:19.000
And this is like an even, this is a foundation of foundation structure.

11:19.000 --> 11:21.000
Like CNCF, for example, right.

11:21.000 --> 11:24.000
It's like, you have like a foundation and it has like a foundation project.

11:24.000 --> 11:25.000
Oh, yeah.

11:25.000 --> 11:26.000
CNCF.

11:26.000 --> 11:27.000
Oh.

11:27.000 --> 11:29.000
Cloud native.

11:29.000 --> 11:31.000
Computing foundation.

11:31.000 --> 11:32.000
Yeah.

11:32.000 --> 11:33.000
Uh.

11:33.000 --> 11:38.000
See, I spotted out right below God.

11:38.000 --> 11:39.000
This is bad.

11:39.000 --> 11:43.000
So, anyway, you see how do you have these complex structures.

11:43.000 --> 11:46.000
I mean, I'm trying to, like, to take away of these things, right?

11:46.000 --> 11:52.000
It's like, um, all of these different pieces that look like completely

11:52.000 --> 11:53.000
disjoint, right?

11:53.000 --> 11:57.000
Like a code of conduct till like a governance.md or something like this.

11:57.000 --> 12:01.000
They're all part of the system that actually starts in like legislation

12:01.000 --> 12:03.000
at, you know, national and international level.

12:03.000 --> 12:04.000
And it all goes now.

12:04.000 --> 12:05.000
This is how it works.

12:05.000 --> 12:06.000
Right.

12:06.000 --> 12:09.000
So, I think it's super important to be aware of this because, uh,

12:09.000 --> 12:13.000
whenever things go really badly and sometimes like they do, right?

12:13.000 --> 12:18.000
Like understanding like where you set makes, helps you make right decisions

12:18.000 --> 12:22.000
for you and your company and like the community and the project.

12:22.000 --> 12:23.000
All right.

12:23.000 --> 12:26.000
And so, the last thing I want to say is governance is bounded.

12:26.000 --> 12:27.000
Right?

12:27.000 --> 12:28.000
People will talk about governance.

12:28.000 --> 12:33.000
And I'm here to tell you, like governance happens in this place in the middle

12:33.000 --> 12:36.000
where people are willing to work together, right?

12:36.000 --> 12:42.000
Um, and, you know, there's places where people are telling you what to do, right?

12:42.000 --> 12:45.000
And, you know, and that can be through legislation.

12:45.000 --> 12:46.000
You might have a board.

12:46.000 --> 12:49.000
You might have like, you know, there are social norms, right?

12:49.000 --> 12:50.000
For example.

12:50.000 --> 12:53.000
Um, and then on the other side, it's like, well, you know,

12:53.000 --> 12:56.000
uh, you can also just like not be interested in leave, right?

12:56.000 --> 12:59.000
Like there's, you know, if everyone leaves your project,

12:59.000 --> 13:02.000
oh, you know, this was the open AI situation, right?

13:02.000 --> 13:04.000
It's like if everyone leaves, you can like yell,

13:04.000 --> 13:07.000
governance governance, like there's no one that's listening to you.

13:07.000 --> 13:08.000
Right?

13:08.000 --> 13:13.000
Um, so essentially, like, there was this small, uh, middle place

13:13.000 --> 13:16.000
between what people tell you to do and like, you know,

13:16.000 --> 13:20.000
what, um, you know, people being willing to work with you, right?

13:20.000 --> 13:22.000
That's like, where we can work together,

13:22.000 --> 13:25.000
and this is where governance of open source projects happen.

13:25.000 --> 13:26.000
Right?

13:26.000 --> 13:28.000
So it's really important to understand that.

13:28.000 --> 13:31.000
If someone doesn't like it, and, you know, they won't,

13:31.000 --> 13:33.000
they can leave and like fork, right?

13:33.000 --> 13:36.000
And if everyone leaves, well, then whatever governance

13:36.000 --> 13:38.000
you've set up no longer matters.

13:38.000 --> 13:40.000
And then a bunch of examples in, you know,

13:40.000 --> 13:44.000
in our communities, uh, in the past of things like this happening.

13:44.000 --> 13:45.000
Right?

13:45.000 --> 13:48.000
Um, so I think it's really important to remember,

13:48.000 --> 13:52.000
um, it's governance happens in this bound, right?

13:52.000 --> 13:56.000
Um, and so, yeah, you know,

13:56.000 --> 14:00.000
as long as there's, and the slides are available, by the way,

14:00.000 --> 14:02.000
um, if you want to dig a bit more into it.

14:02.000 --> 14:05.000
Um, so essentially, like governance exists as long as

14:05.000 --> 14:07.000
this is willing as to collaborate, right?

14:07.000 --> 14:10.000
Um, and I like to think of governance as the organization

14:10.000 --> 14:13.000
of willing collaboration, right?

14:13.000 --> 14:18.000
Um, and if you're being unreasonable, people will leave.

14:18.000 --> 14:21.000
Uh, I think it's super important to remember.

14:21.000 --> 14:23.000
Um, but that said, like you still, you know,

14:23.000 --> 14:25.000
you can write all of the governance that you want.

14:25.000 --> 14:28.000
You still remain subject to, on the authority of entities

14:28.000 --> 14:30.000
that are above you, right?

14:30.000 --> 14:32.000
The law, um, etc.

14:32.000 --> 14:34.000
Um, and yes, again, you know,

14:34.000 --> 14:37.000
those authorities, they might be like very explicit.

14:37.000 --> 14:39.000
It might be like a legal framework,

14:39.000 --> 14:42.000
but it also might just be like if you're being really annoying

14:42.000 --> 14:46.000
to like the, your core contributors, like they have authority over you, right?

14:46.000 --> 14:49.000
Um, if you're being really annoying was a very large corporate

14:49.000 --> 14:52.000
member that actually is like funding a whole bunch of things,

14:52.000 --> 14:54.000
they can decide to just leave, right?

14:54.000 --> 14:56.000
So governance happened in that space.

14:56.000 --> 14:57.000
All right.

14:57.000 --> 15:00.000
So, key takeaway is from point one, then I'm going to have to start

15:00.000 --> 15:02.000
hurrying up a little bit.

15:02.000 --> 15:04.000
Um, so governance is the organization of willing

15:04.000 --> 15:06.000
collaboration, right?

15:06.000 --> 15:08.000
It's bounded by delegated authority and others

15:08.000 --> 15:10.000
willingness to collaborate with you.

15:10.000 --> 15:13.000
Um, it fits within an existing system.

15:13.000 --> 15:16.000
Um, and, um, yeah, at the point about it,

15:16.000 --> 15:20.000
fitting an existing system is just right the part of that,

15:20.000 --> 15:22.000
no, that part, right?

15:22.000 --> 15:26.000
You don't need to rewrite the whole of like a European legislation

15:26.000 --> 15:28.000
to explain why trademarks, blah, blah, blah,

15:28.000 --> 15:29.000
give you all of this stuff.

15:29.000 --> 15:31.000
You need to know what's there,

15:31.000 --> 15:35.000
and just like write the governance that actually is where,

15:35.000 --> 15:39.000
where you actually have authority over something, right?

15:39.000 --> 15:43.000
Um, yeah, governance should be proportional to projects

15:43.000 --> 15:45.000
reaching complexity.

15:45.000 --> 15:48.000
Like, uh, you know, make it as simple as you can.

15:48.000 --> 15:51.000
Um, like, I've never seen a project.

15:51.000 --> 15:53.000
I've never seen, um, two little governance.

15:53.000 --> 15:56.000
I've seen like too much like so many times.

15:56.000 --> 15:58.000
And as soon as there was too much governance,

15:58.000 --> 16:00.000
people are just stopping attention to it and make their own rules.

16:00.000 --> 16:02.000
And then you have like this complete,

16:02.000 --> 16:05.000
this joint, it's completely disjointed between like what is written

16:05.000 --> 16:07.000
and what people do and that's really bad.

16:07.000 --> 16:10.000
It yields to, you know, creates really bad outcome.

16:10.000 --> 16:12.000
Um, aspirational governance.

16:12.000 --> 16:15.000
Like people are just like, you know, kind of disorganized

16:15.000 --> 16:17.000
and they're kind of like, and they're like,

16:17.000 --> 16:19.000
oh, we got to write this stuff of how it would be

16:19.000 --> 16:21.000
if we did it well, right?

16:21.000 --> 16:23.000
And that never works.

16:23.000 --> 16:26.000
Like, write what it is and then bit by bit

16:26.000 --> 16:28.000
move through something better from there.

16:28.000 --> 16:31.000
But start by actually just saying what it is that you do.

16:31.000 --> 16:34.000
Um, and oh, last thing, I think that's super important.

16:34.000 --> 16:36.000
You want to convey intent, right?

16:36.000 --> 16:39.000
Don't just write rules, right?

16:39.000 --> 16:43.000
Explain what you're trying to do with those rules.

16:43.000 --> 16:44.000
So important, right?

16:44.000 --> 16:47.000
Because down the road, even yourself, you're behind.

16:47.000 --> 16:50.000
Why does it, you know, why did I make this rule of like not do,

16:50.000 --> 16:52.000
you know, XYZ, right?

16:52.000 --> 16:54.000
Think of it as like comments in code.

16:54.000 --> 16:55.000
All right.

16:55.000 --> 16:57.000
Um,

16:58.000 --> 17:01.000
you know, an updated working definition for me is governance

17:01.000 --> 17:04.000
as the formalization of implicit norms and culture in order

17:04.000 --> 17:07.000
to scale willing collaboration.

17:07.000 --> 17:08.000
Right?

17:08.000 --> 17:12.000
So I think this captures quite a lot of the things that we've talked about.

17:12.000 --> 17:16.000
Um, and, you know, that's for me like open source project governance.

17:16.000 --> 17:19.000
Um, and then just like shorter and less formal.

17:19.000 --> 17:22.000
It's just governance as the organization of willing collaboration.

17:22.000 --> 17:23.000
Right?

17:23.000 --> 17:28.000
This is what you essentially do to get people that want to contribute

17:28.000 --> 17:31.000
to something to work together well.

17:31.000 --> 17:32.000
All right.

17:32.000 --> 17:37.000
So now, how you actually do this concretely in a way that is,

17:37.000 --> 17:40.000
you know, is less, it's a little painful as possible.

17:40.000 --> 17:46.000
Um, so, um, think about this for a second.

17:46.000 --> 17:49.000
Right?

17:49.000 --> 17:52.000
Um, you know?

17:53.000 --> 17:56.000
Right?

17:56.000 --> 17:59.000
Um, and so, but the good part of like this, right?

17:59.000 --> 18:01.000
The good point of, sorry, I'm going to read it out.

18:01.000 --> 18:05.000
The good point of governance is code that has to be interpreted by humans.

18:05.000 --> 18:10.000
Is that everything you know about writing good quality code,

18:10.000 --> 18:12.000
like is even more relevant, right?

18:12.000 --> 18:15.000
You have like a squishy interpreter, right?

18:15.000 --> 18:21.000
Um, and you have to be like super explicit about what you do, right?

18:21.000 --> 18:24.000
And I mean, code is essentially writing things for human beings, right?

18:24.000 --> 18:26.000
So, it should be fine.

18:26.000 --> 18:29.000
Um, so, you know, I'm going to talk about, um,

18:29.000 --> 18:32.000
how do you write and maintain governance?

18:32.000 --> 18:34.000
I'm going to look at common issues,

18:34.000 --> 18:36.000
best coding practices as a solution to this.

18:36.000 --> 18:37.000
I've hinted at that already.

18:37.000 --> 18:41.000
A simple framework to get you started and then some additional tips.

18:41.000 --> 18:43.000
And I think there's a bunch of examples in there too.

18:43.000 --> 18:46.000
Um, so common issues, uh, you see in governance,

18:46.000 --> 18:48.000
and then the same as you see in code, right?

18:48.000 --> 18:50.000
We've got a code copy, paste governance.

18:50.000 --> 18:53.000
Like the number of times I see governance for a project,

18:53.000 --> 18:56.000
that's copied from a project that is structured completely differently,

18:56.000 --> 19:00.000
and doesn't work at all, like it's like so common, right?

19:00.000 --> 19:03.000
Um, hike up, coupling and location, uh,

19:03.000 --> 19:05.000
same thing, like everything is like kind of like stuck together

19:05.000 --> 19:06.000
in really weird ways.

19:06.000 --> 19:08.000
And if you want to change anything,

19:08.000 --> 19:11.000
it's really, really hard because you have all of these like weird

19:11.000 --> 19:13.000
connections between things that are not explicit.

19:13.000 --> 19:16.000
Um, and it's generally ends up to be poorly structured

19:16.000 --> 19:19.000
because everyone kind of writes a bit here and there.

19:19.000 --> 19:21.000
And we don't have frameworks, right?

19:21.000 --> 19:23.000
Like in, you know, we're right software where we usually tend to have

19:23.000 --> 19:25.000
like some form of framework and structure that we rely on

19:25.000 --> 19:27.000
and governance we don't.

19:27.000 --> 19:29.000
And so, you know, this is kind of the goal of this as to give you

19:29.000 --> 19:32.000
like a basic framework.

19:32.000 --> 19:35.000
So of course, this leads in governance as it doesn't code

19:35.000 --> 19:37.000
to those, you know, those horrible things.

19:37.000 --> 19:40.000
Uh, maintain this nightmare, governance that's hard to modify

19:40.000 --> 19:43.000
and update, uh, governance that's difficult to understand and follow.

19:43.000 --> 19:44.000
All right.

19:44.000 --> 19:47.000
Um, and then you also, as I was handing out before you started having

19:47.000 --> 19:50.000
two realities, right, what's on paper and what actually happens?

19:50.000 --> 19:54.000
Um, none of those, uh, desirable outcomes.

19:54.000 --> 19:58.000
Um, and so, you know, best coding practices as a solution, right?

19:58.000 --> 20:01.000
So every time you bump into something like this,

20:01.000 --> 20:04.000
just think about how you would do it in code, right?

20:04.000 --> 20:08.000
And you probably have a really good answer to this, right?

20:08.000 --> 20:12.000
Um, so simple framework to get you started, right?

20:12.000 --> 20:18.000
Like, limit yourself to these five kinds of documents.

20:18.000 --> 20:23.000
You handle the leg delegation of authority through charters, right?

20:23.000 --> 20:29.000
A charter is, you know, the board charters like the TSC to do these things, right?

20:29.000 --> 20:33.000
And it gives like scope of what the TSC can do.

20:33.000 --> 20:40.000
Um, and, um, it, um, you know, creates accountability in return, right?

20:40.000 --> 20:44.000
Um, and then I think something that's really important is you want to split policy

20:44.000 --> 20:50.000
and process and you can call these different ways, if you want, right?

20:50.000 --> 20:56.000
But essentially, um, policy is kind of like the what, right?

20:56.000 --> 21:01.000
What is it that you want to make sure it happens a certain way or doesn't happen?

21:01.000 --> 21:05.000
Um, and that can be kept like super high level, right?

21:05.000 --> 21:12.000
Um, and then process and I know these like names and terms sound like really, uh, uh,

21:12.000 --> 21:14.000
might rub people in a wrong way, right?

21:14.000 --> 21:15.000
Process policy etc.

21:15.000 --> 21:17.000
That's what governance is about.

21:17.000 --> 21:22.000
Um, I have to learn to deal with it and I'm sure you can too, right?

21:22.000 --> 21:26.000
Like it's a little unpleasant at first and then if you embrace it, it's fine.

21:26.000 --> 21:31.000
Um, and so yeah, if you separate the what from their how, right?

21:31.000 --> 21:36.000
So if you separate the, um, what is it that you're trying to, to organize from like,

21:36.000 --> 21:37.000
how you do that?

21:37.000 --> 21:39.000
Um, that's really good.

21:39.000 --> 21:41.000
Um, and I give a quick examples of that.

21:41.000 --> 21:43.000
And then like the two extra things are guidelines, right?

21:43.000 --> 21:47.000
The idea of guidelines is sometimes there's a bunch of things that are very complicated

21:47.000 --> 21:53.000
and a guideline helps address like a common use case, right?

21:53.000 --> 21:57.000
And then, you know, documentation for everything else, right?

21:57.000 --> 22:03.000
Um, and so the way I think about these things, right, is a charter is kind of like your framework

22:03.000 --> 22:06.000
or your config file or like your main, right?

22:06.000 --> 22:10.000
So this is like way you run the whole thing, right?

22:10.000 --> 22:15.000
Um, and then policy think of it as like, uh, API ahead of files,

22:15.000 --> 22:18.000
type deaths, interfaces, depending on what language you come from, right?

22:18.000 --> 22:22.000
This is like, this is like, you know, the functions are going to do this, right?

22:22.000 --> 22:26.000
And then process is like that's where you write the actual implementation code.

22:27.000 --> 22:33.000
For me, like, that like entirely, once I found this is like everything started being so much easier.

22:33.000 --> 22:34.000
Right?

22:34.000 --> 22:40.000
Um, and then, you know, think of guidelines as like, um, you know, the facade, uh, a seat, I'm French.

22:40.000 --> 22:43.000
Like a nice, uh, city here.

22:43.000 --> 22:45.000
Um, I don't know how that happened.

22:45.000 --> 22:48.000
Uh, you know, the facade, the facade pattern.

22:48.000 --> 22:53.000
Um, like, essentially, like, you have like a complex, the main model that's, um,

22:54.000 --> 22:56.000
design, like, you know, very low level.

22:56.000 --> 22:59.000
And then, like, there's a common use case that you do all the time, right?

22:59.000 --> 23:01.000
And you just write an API for that.

23:01.000 --> 23:02.000
That's the facade pattern.

23:02.000 --> 23:06.000
Um, high level API, right, on the web, like, uh, something that you can do just in

23:06.000 --> 23:10.000
HTML versus it's like writing like 29s of JavaScript, something like that, right?

23:10.000 --> 23:12.000
Uh, so think of guidelines as that.

23:12.000 --> 23:14.000
Super useful tool.

23:14.000 --> 23:16.000
Um,

23:18.000 --> 23:19.000
Yeah.

23:19.000 --> 23:22.000
The last thing that's important, right, is like, who owns what?

23:22.000 --> 23:23.000
Right.

23:23.000 --> 23:26.000
And so essentially, um,

23:26.000 --> 23:29.000
think of it, like, there's a authority that delegates power to you.

23:29.000 --> 23:32.000
And you can delegate some of that power, uh, to, like, say, like, a dedicated working

23:32.000 --> 23:34.000
group with something, right?

23:34.000 --> 23:42.000
Um, and so shorter, um, and policy, the delegating authority wants to, to, um, right?

23:42.000 --> 23:46.000
And then the process, uh, you want to keep it really close to the people who are actually

23:46.000 --> 23:47.000
doing the work.

23:47.000 --> 23:48.000
So they own it.

23:48.000 --> 23:49.000
Right.

23:49.000 --> 23:51.000
So that separation is also super useful to actually make things effective.

23:51.000 --> 23:53.000
Oh, boy, I have to hurry up.

23:53.000 --> 23:54.000
All right.

23:54.000 --> 23:57.000
Um, so how this works in practice, I'm going to do that real quick.

23:57.000 --> 24:02.000
So, you know, you can have, um, uh, let me, yeah, examples, right?

24:02.000 --> 24:04.000
Uh, moderation policy forget how, right?

24:04.000 --> 24:06.000
You write the policy about your goals for community,

24:06.000 --> 24:08.000
monitor, and general, right?

24:08.000 --> 24:11.000
Um, where you explain where this is important, et cetera.

24:11.000 --> 24:14.000
You charter a GitHub moderation group to handle it, right?

24:14.000 --> 24:19.000
And then that GitHub moderation group, like, figures out how to implement this in the way

24:19.000 --> 24:21.000
that makes sense for GitHub, right?

24:21.000 --> 24:22.000
And what's really nice, right?

24:22.000 --> 24:26.000
Um, is that if you want to do the same thing for discord, you don't have to rewrite a

24:26.000 --> 24:27.000
charter.

24:27.000 --> 24:29.000
You don't have to rewrite, like, um, uh, policy, right?

24:29.000 --> 24:31.000
It's just like now implementation for discord, right?

24:31.000 --> 24:33.000
So that's super effective.

24:33.000 --> 24:34.000
All right.

24:34.000 --> 24:37.000
I'm going to rush for the last, uh, I'm going to jump the examples,

24:37.000 --> 24:39.000
bug charging, same thing.

24:39.000 --> 24:40.000
You have the slides.

24:40.000 --> 24:42.000
You can look at it and you can come ask questions.

24:43.000 --> 24:45.000
Um, and so why is it good?

24:45.000 --> 24:48.000
High level goals was the leadership, right?

24:48.000 --> 24:55.000
Um, and you, um, you essentially empower the people who are doing the work to do it in

24:55.000 --> 24:57.000
the way that they want, right?

24:57.000 --> 25:01.000
The separation is really clearly articulated between both.

25:01.000 --> 25:07.000
And, um, like this, um, you also have, you can have, like, really great conversations between folks

25:07.000 --> 25:09.000
because they know what they need to talk about.

25:09.000 --> 25:14.000
And in 26 seconds, um, I'm going to jump this.

25:14.000 --> 25:15.000
Yeah.

25:15.000 --> 25:16.000
So why is it good?

25:16.000 --> 25:20.000
Flexible, maintainable and simple as a system, right?

25:20.000 --> 25:26.000
Um, and I'm going to let leave you with two additional tips about governance in general, right?

25:26.000 --> 25:32.000
It's like, don't think that engineering anything is going to save you from having

25:32.000 --> 25:35.000
hard conversations with human beings, right?

25:35.000 --> 25:37.000
You have to have those.

25:38.000 --> 25:42.000
Um, and when you have to have those, call people up, right?

25:42.000 --> 25:44.000
And do it one on one.

25:44.000 --> 25:49.000
Don't, like, fix things in public or, like, enlarge your circles, right?

25:49.000 --> 25:51.000
And yeah, sorry, rushed a little bit at the end.

25:51.000 --> 25:53.000
Hope that was useful.

25:53.000 --> 25:54.000
Slides will be online.

25:54.000 --> 25:57.000
Um, and if you have any questions, come and talk to me.

25:57.000 --> 25:58.000
Thank you very much.

25:58.000 --> 26:00.000
Thank you.

