 Hello, thank you all for coming today. We're so glad that you've come to our talk about growing your Contributors and keeping your project healthy. So we are planning on answering questions At the end we'll leave like five minutes for questions So when you send them to the chat, please include as much context as you can and we will read them off and answer them so Let's get started. I am Kendall Nelson. I Have been working in the open staff community since 2015. I am currently the technical committee vice chair I'm involved in the release management team. I Do a lot of work on teaching people how to contribute to the project So I've run upstream Institute our training Class and I work on our contributor guide along with many many other things in the community I have also been working in the Kubernetes community since 2019 so much more recently. I Am involved in SIG cloud provider specifically provider open stack and also a little bit and SIG contributor experience I love travel and photography and Harry Potter as you may be able to see from behind me and also Dr. Who so? Oh Move on here. Hello everyone. I am really Glad that you all attended this talk and I'm really really sad. We are not in Austin right now because For me keep con Austin is where it all started. So as a second career techie I'm very passionate about making open source contribution possible for people from all walks of life So for example, I will yell at you to document all the things as if you've never heard of get before because you know what? Some very senior folks in tech have never never used it I love sharing knowledge a lot of my favorite command line tricks are things that I've picked up from peer programming or Shoulder surfing with someone You can find me on github by my profile, which actually does have a real owl in it so Without further ado Welcome to high tee We're here to talk about community building. So and this talk won't be about getting all your questions answered It's Really more about asking yourselves the right kinds of questions So when you invite friends over for a hot beverage and tasty baked goods, you have multiple decisions to make right? For example, what will you serve? Who is invited? How many people are you inviting? In the same way you have key questions to answer about your open source community Let's get into those when you host a Tea party you want everyone to have a good time you want them to leave looking forward to the next party you need to think about You need to think about sending out invites and planning your features You need to know how many people to plan for you don't maybe want to host a bigger party next time or get together more often You need to think about who will help you with organizing and documenting. I mean decorating um Who pays for the event supplies? What kind of space is your party held up? Do you need to rent a building or do you need to get a permit for the park cookout shelter in open source? All of these are good questions to ask about your community. Let's start By thinking about project health So this is related to what you want your community to look like how do you set the table? So for example, how are you organized? How do you make decisions? How do you govern yourselves? What kind of guests do you want? Do you want to have writers community organizers coders testers and so forth? What are you serving on your table? Do you deliver a lot of features? Do you build new technologies? Do you sell processes? Do you think about? Do you think about community a lot? Uh, what do you want to talk about right? Do you use email? Do you chat? Do you have meetings? video Do you have agendas where you take notes? Um, and like with any party is there a dress code? Do you have license agreements? contributor codes of conduct And a little bit of an uncomfortable thought How do you discover and address conflict? so That's a lot of things just to plan a party, right? How do you get some real numbers here? Unfortunately, one of the first things that you need to realize is that it's easier to measure things that don't work than things that do work That said, uh, there are two types of things to measure quantitative and qualitative things one way to measure things that are qualitative is trying surveys But let's look at the quantitative things first. Um, there is a lot of things you can look at Uh, the easiest one is your contributor numbers How many people are using and contributing to your technologies? How many people want to build extensions to your project? How many people are excited about it and want to organize conferences and workshops? Uh, even more easy How many lines of code are in your project? Um, interesting, uh Sorry, I just I just got the note. I hope everyone can hear me. Okay um anyway Uh, all right. Very good. Um, let's continue. Um, so Let's get back to uh, let's get back to the numbers, right? You can get a lot of contributor activity numbers such as lines of code the length the direction of the project Frequency of releases, right? How many new features do you have in a given period of time? Do people actively find and fix bugs and security issues? How quick is the turnaround on a file bug or code change requests? You can gather stats on this and these stats may tell you whether you have the capacity for new features code reviewers Uh, adapting to incoming changes Uh growing out your project Uh adoption numbers is another indicator of the health of a project How many people have you know starred or forked your project on the code hosting platform of your choice? Um, are a lot of these users contributing back upstream? How many questions do you see on stack overflow? For example, or github issues? Are they getting answered? Um, how long do contributors stay around? So a lot of these statistics are valuable, but they don't necessarily reflect uh They don't they don't individually reflect a whole lot of information, right? Large numbers of contributors don't necessarily mean that each contributor has a lot of output Or that their changes are valuable and so forth So that brings us to the next topic. Uh, that was not the correct direction Qualitative, uh, we are going to talk about What your community is like for your contributors some of the things I touched on um Are leaking into Qualitative statistics around your community health. How accessible is your project to contributors regardless of level of technical expertise? right, um Some examples include A quicker turnaround on an issue or but how how easy is that for a new contributor? How do people resolve disagreements technical disagreements? personal disagreements Uh, how many resources do you dedicate to documentation? How accessible is your project? Do your events have sign language interpreters? How do screen readers respond to your docs? Do your docs exist in other languages? and Finally, this is really really important right now. Can you support your maintainers? um When things get tough and that includes the world at large As in right now Your maintainers need time and rest and other resources to prevent burnout And to deal with other conflicts in their life Your project's health you want to know what does a healthy community look like? Well, this is also a really difficult question because as we've established already It's impossible to compare one community to another because you're comparing apples to oranges so You have to think about all of the individual things that are different from each community um So you have things like different internal structures how the code is set up if there are multiple repositories that make up the project uh Different tools for example the open stack community uses garret instead of github and we use Zool instead of prow for testing our changes There are different goals from project to project. It might be um Based on where they are in their life cycle. They could be You know Feature complete and just maintaining at this point or they could still be getting a lot of new interest and just because it's Maintained and steady doesn't mean that it's dead at this point There are a lot of differences. You also have differences in schedules like release schedules like when mentioned before There are many many things that are different but Each difference makes the community unique just as each tea party or high tea service Is very different based on those who are hosting and attending and what kind of tea you're having all kinds of things like that Though that said there are definitely things that should be thought about and are in common In every community So there's some basics that you can look at and those are the things that you would want to try to measure and pay attention to so You have things like a code of conduct. This might be actually written out somewhere and maintained and protected by a foundation But it also might just be implied if it's like a new community that's just getting off the ground and hasn't gotten around to writing it yet There are you know governance processes that looks very different from project to project There might be working groups or special interest groups There are probably elections of some sort maybe but also maybe not Anyway, there there's definitely oversight in some fashion to help keep the community together and moving forward Uh foundations obviously are something that every project should think about whether they want to be hosted Uh a foundation there are more foundations than just the the cncf or the linux foundation There's also the eclipse foundation and the open staff foundation and the mozilla foundation There are many of them um And your project your community may not find a fit with any of them and that's totally fine, too They may not want to be there the whole point of it Is really to have a reason why you choose one foundation over another or not at all There is also probably a mission statement. You have some unifying purpose that brings you together Some thing you're working towards What is the goal? You you probably have that driving your community and uh, it might be written out It might not be but it's definitely something that you should think about There's also community culture, uh, this is obviously not as, uh, Clear and concrete always but are you welcoming is it a closed off community? Is it hard to get into how do you join and participate in this culture? What makes your community fun and draws people in? Every high tea or tea party is going to have something to drink and probably some awesome baked good Uh, but each one will have people in some sort of theme and there are definitely basics that you can look at and measure across communities So the next uh part of our presentation is talking about growth Obviously, it's really really hard to measure a community. Um, but we want to think that we can all grow and there are definitely many many levels that this growth can happen at so We spent all this time, uh, trying to quantitatively define growth in a community. Um, but Basically, it comes down to a tea party or high tea is affected by everyone that's involved So me if I go I'm the host I'm going to think about a bunch of different details than like I hope my attendees will RSVP. So I know who's coming There might be caterers. You might have events staff all kinds of different things Um, so without further ado jumping into the different levels Me as an individual, what can I do as a part of this community to help it grow? There are both internal and external things that you want to think about that. Um actively and directly address issues and create solutions and the internal things might affect people more indirectly so Basically, they come down to things happening outside your head or inside your head Um, so outside your head Yeah, um outside your head. Yes. Um, so mentoring obviously is very self-explanatory Uh, you have burnout as a problem in every community always Recognizing signs of burnout in others and reaching out to them Making sure that they're okay and they know they can say no to things is really really important in helping to grow your community You obviously don't want to lose people um, so Communication also very very important thinking others for their work Um, it makes them feel good work harder and you generally feel good for giving compliments They might even give you a compliment in return Uh documentation also incredibly important in every project always and forever You should be documenting everything you do if it's not already and that is everything from the processes to how you contribute To the actual code itself If you don't have documented software, how are people going to Know how to use it and be interested in getting involved if they give up right away So everything helps and docs always need more love Um, you can feel someone's uh to relate this back to the tea party scenario You can feel someone's tea cup. You can serve them from like a menu Um, or you could have them go up to a buffet and pick out their own baked goods They're a lot of different ways to interact um mindset so Basically what you think in your head Definitely affects other people. So Um, we have the burnout thing again If you are getting bogged down you have a lot on your plate. Um Remember that like burnout isn't entirely your fault and it's definitely not your responsibility to like Worry about it like it it'll happen, but other people should help support you Um, just remember that you can say no to things when you're feeling overwhelmed. Obviously Um, I am very bad at that personally, but it's a thing I try to remind myself Um, more importantly being flexible open and kind Open source is very difficult because we work with people from all around the world All different cultures backgrounds upbringings And if you can be flexible and open you will be much more successful as a community and as an individual in that community. Um being proactive rather than reactive about work is incredibly helpful as well at um at a tea party you can be you know polite and welcoming and hopefully that Helps make the whole event a lot more fun or you could be you know having a bad day and like You're upset and nothing's going away and like that's probably going to make it much harder for you to get work done um And the the next level is as a community. What can communities do? And it's back to me. Um, so As a community You need to consider having a dedicated process for tracking and monitoring measurable project health statistics Some of you have asked questions about this already and yes There are many tools for this and it really kind of depends on your platform how you are going to use those tools more over You need humans to use these tools and to apply them some communities have entire governance structures formed around contributor experiences What that means is You need to establish really strong onboarding and peer mentoring processes Make it as easy as you can for long-standing community members to mentor newer ones To take up some of their burden and make it easy for newcomers to find mentors Uh in a company structure a healthy team has a variety of experience levels, right? Senior staff are encouraged to mentor junior staff and in an open source environment the community Has the job to make this possible Um, additionally make sure that disagreements are heard and resolved listen to complaints and definitely protect your contributors from bad behavior It can happen and it can seriously harm your project so Lower the barriers ensure you have great starting documentation a key element of that is have a centralized place For people to get started contributing Uh consider having onboarding classes and workshops make them free to attend Make them accessible and have them be in multiple locations around the world. Not just north america um develop Peer mentoring and establish a culture of collaboration In order to bring about a culture of collaboration. You must be approachable Uh firmly establish the accepted ways of communication moderate the communication Look for blind spots. Look for challenges that you may never experience, but others might Do only outgoing loud White people get to make decisions I'm not saying you must be warm fuzzy and full of emoji to succeed as a community. Although I have my personal preferences Uh, there are open source communities where you only ever get to know someone's community specific online handle So what's important though is that you must let people know the proper etiquette for your particular community Some specific points to consider Are their language barriers? Are there time zone barriers? Are there cultural differences? um Recognize internalized racism internalized misogyny address those when they come up um Deal with the fact that some people are more outgoing and other people are more shy So how do you keep your contributors contributing? Um, there's only so much for a community To do right it can't do this alone. There are some community driven incentives that will attract contributors Uh at a tea party you may hand out party favors to eager guests I personally still cherish my kubernetes contributor patch um If your party is important enough in society people will be excited just to be on the guest list um Your open source tea party may also be a path for early career folks to make connections and write their first lines of code Or learn a new skill, but that's not enough for any of this to work. You need people and their time and expertise This is where companies come in They bring experts to the project if you are a sponsor company You need to make sure your employees open source work is prioritized appropriately Do not ask your employees to do open source work on top of their internal real job duties They're both real work If you don't consider this they'll get burned out and your internal project suffers your open source tools suffer And your employee may leave or not be able to work for you for months Also consider giving money to foundations which may be able to See blind spots that you as a company don't do and they'll be able to have a larger overview of where to apply resources So lastly we have foundations if your community happens to be faced at one. What can a foundation do? Well payment is one option if that if the budget allows Recognizing the bigger picture and helping to be that non-bias third party for all of the sponsor companies that Exist and all of the different companies that are contributing and all of the individual contributors themselves um They are in place to help provide marketing and promote your project if that's what you want from them They are also there for removing barriers that it's all incredibly important and growth happens at all the levels So in the end We're all in this together. Hopefully we've given you a lot to think about I know it's not exactly the most concrete set of actions that some of you may have liked Um, but remembering that every community is different and health is a hard thing to measure and you can't really compare one to another Um, keeping those in mind you can make progress and hopefully throw an awesome high tea or tea party if you choose Um, no one person should be responsible for everything. Growth happens on all the levels We succeed together as a community and communities are extremely beautiful. I love participating in such a global community. It is more than I ever could have asked for out of a job Um, and along with that beauty. They are fragile. You need to protect them and grow them as much as you can. So Um, it looks like we had like two questions come in. We have a Tiny bit of time. I think maybe um, so the the first question I saw was for measuring community health What do you think of the chaos project if you've heard of it? I have heard of it because one of my co-workers actually is on the board for chaos So, um, it's something that we keep in mind. I I don't have a whole lot of Direct involvement with it. I was able to attend one of their events Before fozdem last year and I think that the work that they're doing is really good. Uh, it's a very very complicated like problem to solve obviously When did you have anything to add? Yeah, so in in some ways it it also depends on which Co-chairing platform you use because each of them have related tools, right? For example on github, which I'm familiar with We have the contributor contribution graph. We have statistics on uh The numbers of contributors the numbers of the organization numbers. We have activity stats That we can really pull down from people's activity on github My My point to this would be that you don't necessarily know The human reasons behind these numbers and you have to keep track of those two for example We had a contributor who just sort of vanished out of the blue and he was a very prominent contributor and um in the kubernetes community and no one knew what had happened He just kind of disappeared and later he it turned out that he was in high school and was serving his military service For the better part of a year and was not really able to get much Programming done so You know sometimes there's interesting reasons for why people are contributing or are dropping off and That's where you have to interpret the numbers with humans There is always context behind every single number. I know At least whenever I try to like dig up things and like ask my the rest of the engineering team For certain things they're like, oh well What do you mean by that? And they like want to drill down to like the exact granularity of why you want this number and what you're going to tell people because It is all so context-based and I think a lot of times Companies try to be like, oh well, we pushed this many patches or we got this many pull requests merged. Well, That's awesome. I'm really glad that you're contributing but like Just because you're merging those patches It doesn't mean that those patches are the same as some other companies like you have different goals behind how you're contributing and somebody might just be padding their numbers by fixing a bunch of spelling mistakes, which is great Like we need to fix those but it's there's context to everything always keep that in mind um, so the other question was Are there tools to get these numbers? Kind of covered that chaos works on that but each community is different based on the tools that they use so yeah Uh, I think we are out of time. So thank you all for coming and all your excellent questions