 Hello everybody! How are you doing? My name is Victoria Martínez de la Cruz. I'm here today with my colleague here, Rosela Esplendido and with Mahati Shamarty And this is newcomer's new, how to be a good mentor. As you probably might guess, this is a session about community, more precisely about how to help to grow the community, how to award new people in open-source community. This presentation is going to be split in four sections. We are going to start with why mentoring is important in free and open-source software. Then we are going to move to give a few examples of where you can find new people, where you can do to spot a newcomer. Then we are going to move to what it takes to be a mentor and to help you define if you are ready for mentoring. Finally we are going to close this presentation with a few tips and tricks of our experience in the past couple of years mentoring new people in open-source. So yes, why mentoring is important in free and open-source software? So first let's do an overview of how is our community currently composed, what kind of contributors do we have in our community. As in most open-source projects, the main contributors are people that are working full-time. It's like people that are working for a company that is somehow using OpenStack and are being paid to work full-time in an OpenStack project. But we also don't have to forget that in open-source we have people that can contribute voluntarily. For instance, students that are using OpenStack for a project they are working on in school and they are trying to get involved and understand how things work. We also have those classic technical enthusiasts that want to give back something to the project they like and want to help to make the project get bigger. So how are tasks in open-source projects being split? Who is working on what in open-source organizations? Usually high contributors, of course, they have more time in their hands, they have more resources. So they usually take the core feature development and they also work on fixing critical or high priority bugs in OpenStack. So what is left for the people that are working independently? Usually these people that are more in their free times contribute with the bug reporting. For instance, also with bug fixing but for medium and low priority bugs. Also with changing the wiki or documentation or something like really small changes on translation as well. Okay, now understanding what kind of tasks we have in OpenStack. Let's stop for a moment and think on how is the onboarding process for OpenStack. How many of you are contributors in OpenStack right now? Okay, that's a good moment. So let's get back to your first patch in OpenStack. Well, what you have to do, you have to create your OpenStack account, you have to create your Launchpad account. If you don't already have any, you have to set up your development environment. You probably had to use Depstack in some moment and everybody knows that sometimes it can be a little painful to set up. You have to, you don't forget about the signing of the contributor agreement. And right now just imagine that the process goes smoothly and everything is okay. How many steps are you just enumerated? How many things you have to read in order to understand how to access, how to get started in an open source project? It's just a lot. And usually for high contributors it's like usually work on a team or have somebody in their, you know, in the company they are working with, that they can ask or they can, you know, get some guidance. But for people that are just starting, they don't have anyone. So it's like they've hit their first blocker and usually they don't have time to debug and to understand what's going on. So they just don't contribute what they had to contribute. But okay, just leave that aside for a moment. What happens after you submit your first contribution? Life goes on, right? Then you have, you know, to understand how code review works. You see that it's a guy named Jenkins that put a minus one in your patch and you don't understand why or what's going on. You see comments of all the reviewers saying, okay, could you help? Could you change this? Could you, you know, some need speaks or, you know, usual process. And you don't know how to change that, how to amend your patch, how to keep going on these discussions with the reviews that just provide some feedback to your patch. And also, how do you communicate with the rest of the community? You have to learn about IRC, which for me is like everyday thing. It's like I'm already used to it. I love it and I use it every day. But for most people, that is not so straightforward. Also, how the weekly meetings work, how the mailing list work, how do you start a conversation if this is the right place to ask and so on. There are so many things, right? So there are many ways to help change this, to make this process easier. But in our experience, we see that mentoring is what works best. And why is that? If you can contribute mentoring, you will help the community to grow. You will help to attract people that has different backgrounds, that has different experience, that have different ideas. You are helping OpenStack to get more point of views. And usually when you have that opportunity for free, is you are having the chance to make OpenStack better. Because you are usually covering more use case that probably if you are only working with people from, I don't know, sort of area or some background, you would miss that enriched experience, right? Also, you will help individuals. You are going to help at least with the professional life of only one person that on their own. Probably some of the people that we help also help another people to get involved. And that process keeps going on. And we ended up with a network of contributors that are helping more people to get involved. And you are, in that sense, you are helping to get people, you are not only impacting positively in the life of one person, but you are also impacting on the quality and the capabilities of your field. We are getting more and more qualified professionals working in OpenStack because of this. And if I haven't already convinced you with all these positive aspects of mentoring, what it gives you, why it's good for you to help mentoring, you are going to learn a lot. It's incredible. It's like when you talk with people that has such different backgrounds, such different experience than you, and that is not whatsoever involved with the person you are working with, they usually see things that you don't see because you have been involved in working on the same thing for so long, right? So, in order to illustrate this, I picked this quote from Otto Van Spinsmark that says, full-sighted learning by experience, I prefer to profit by other people's experience. That's more or less what I tried to submit in this section. So now I'm going to bring to Mahati. She's going to tell you where you should look for mentee. Yeah, now that we have a good foundation of why we should mentor, let's look at the avenues we have to mentor. We have Outreachy internship program which OpenStack has been participating for about three years now, and we both have been mentors and we've had very successful mentors who are now involved full-time in it. And it takes place twice a year and the duration is three months. It's sponsored by a free software foundation. So if you're interested in mentoring, it's highly recommended that there is a really small sign-up program. We usually send out a lot of mails to advertise this, and if you're just subscribed to the OpenStack mailing list, you would have come across this. And there is also a Google Summer of Code program where that happens once a year and it's for three months. OpenStack has been on and off a participant, and unfortunately this time we weren't able to participate in it. It's sponsored by Google. Another thing to note is Google Summer of Code is only for code contributors, but Outreachy is for, even if you are in marketing or documentation, it's open for all sorts of software contributions, not just code. So other than internships, how else can I mentor? Can someone mentor? We have this amazing upstream training that happens every summit. It's a two-day workshop and again there is a circulation of mail on OpenStack mailing list wherein you're supposed to sign up and give your preferences as to what you're working on and little details about your professional life so that you can sign up for this training. It's amazing because you get to mentor people who, I mean, they come all the way on Saturday and to just be inclusive in this training, which happens usually on Saturday and Sunday prior to the summit. So it's great to meet new contributors who are eager to learn and what this training does is we give them real bugs and features. We will help them fix the bugs and help them learn the tools which are required in the process of submission. And we also have a follow-up session wherein we will follow them until it's accepted by the OpenStack community. Even after that, there's one more follow-up session. If there's still concerns, we can still get in touch and in that follow-up session, you can still raise your concerns. The fun part is we use Legos to simulate what the OpenStack community does and if nothing entices you, I think Legos is a great way to actually learn and simulate an environment. So this summit, we have a lightweight mentoring which has been sponsored by the women of OpenStack and this includes technical mentoring and career guidance. So if you want to be involved in career guidance, a mentor, you can be in a different area than your mentee and if you are required to spend about an hour per month, we have actually guidelines for this. I actually included the guidelines at the end of the slides but if you want to be a technical mentor, you're supposed to be in the same area as your mentee and you're required to spend about an hour per week. So I think this has been introduced only in this summit and the initiative has been there. We've had mentor signers sign up for us prior to the summit and in this summit, we've had a speed mentoring session wherein mentors and mentees, they catch up and they get to talk to each other for about five minutes and mentees cycle around through the room and after that, there's a survey conducted for mentors and mentees so that we can potentially match them up for next mentoring program. So if we're still looking for mentors for this program, we only have about, I think 137 mentees have signed up for this but we only have about half mentors for this. So I think it's great because we don't have to be specialized only in technical area. We can as well, career guidance wherein you can just let them know how to get involved with the community or how to communicate or how to grow their career within the open source community. So there's always general mentoring. If none of this is, if you cannot commit your time and if you think all of this is a lot of time consuming but you're still interested in mentoring, there is. So we often find people, at least in my experience, we found people where they just want to come and contribute but they just don't know where to look or what to find. So there have been cases where they've just invented sort of a bug and they've just went on patching up that for every project in OpenStack. So when that happened, appropriately, that was abandoned but later on it's important that when we encounter people like that we actually let them know where to find bugs or how to contribute and how to fix a feature or help them find the documents than just stopping at a point where I abandoned your patch. There are other, like, we also have OpenStack and OpenStack Dev mailing lists as we all know, but OpenStack OPW has, is an Outreachy channel exclusively where a lot of people come down asking for help and it's a great channel. If you're not subscribed yet, I think you should do it because on and off, there is no time commitment for it. So on and off, people come down and if you're not able to help someone else will catch up and you can just come around and help when you do have time. So these are really general guidelines as to what can we do when you spot a newcomer. So we've had experiences where people don't apply for an internship and they don't have an environment wherein they didn't even know that they need to have, say, four GB memory or, say, 25 GB hard disk to set up an OpenStack environment. So it's difficult when you find someone like that and you just point them to a document. They probably don't even know the basics to install OpenStack or get going with it, say DevStack or any other project. So it's important that we check with them where they stand and what their interests are and be a little more patient if they just stumble upon at the first step where they don't even know what requirements are. Make sure you point them to the documents and make sure you, at least if you don't have time, it's a fantastic opportunity to introduce them to the other team people so that more opinions and more knowledge and that's how we increase our talent pool in any environment, I think so. Let them know that they can ping you at certain times if not all the time. Let them know that this is what is an available time for you or make sure that they hang out in the team meetings because that's where the entire community gets together and actually discusses these issues and the way to move forward. Yeah, so Ruzella will take on from here. Yeah, so how are you ready to start mentoring? I hope every one of you is asking this question and because we really need more mentors and so the good news is if you're asking, am I ready to mentor? Probably you are. So in my experience at the beginning with OpenStack, you're just so focused on learning how to get things done or how to interact with the people so you're just so fully immersed in yourself and in how you can learn. So if you have one second now and you wonder, am I ready to mentor somebody else? Probably you already managed to learn the basics and you already feel comfortable. But still, let me provide you some criteria to judge if you are ready to mentor or not. So you know that OpenStack is pretty complex. You know that we use lots of tools and there's lots of knowledge involved here. So of course we expect mentors to have this kind of knowledge so that they can teach people. There's no formal requirement. We are not saying that you need to be a co-reviewer or anything like that, but for sure you need to be familiar with the tools that the community uses. So Geet, Garrett, you have to imagine that you're going to teach to somebody, for example, to fix a bag and submit a patch so if you cannot do it yourself, you won't be able to teach it. And also you need to know how to get involved with the community, like for example how the blueprint process works or how we use the mailing list, the channels, because this is also important. It's not a technical knowledge, but it's the basic to be part of the community. So one important point that sometimes it's not clear is that the mentoring is not babysitting. So we are not expecting you to work full-time with somebody else just to get him or her started. Mentoring is a very good experience and it doesn't really need a long time. So a few hours a week are usually okay, then it depends on how much you want to commit. But don't think like, okay, I have to take care of this person forever. No, you have to set limits and you can have a work life even if you're mentoring. It's not like a full-time activity. And another point is that something that it's a requirement, yes, is that you commit. So Mahati was explaining the internship variable. So usually you have a timeframe that you commit to be a mentor and of course we expect that in this timeframe you will be a variable. So if you're thinking of changing job, maybe it's not a good moment for you to sign up as a mentor because you can assure that you will be a variable. Who knows your future employer? If they let you mentor or not. So another suggestion is that of course speak with your employer and we hope that there will be supportive of this activity because of course you will need some time. Unless you do it in your free time then it's okay. And also if you usually mentor for a specific project in OpenStack, so if you're thinking like, I don't know, I'm doing Neutron. If I think, okay, I really need something new. I want to do whatever is right now. Then it's probably not a good moment for me to mentor in Neutron because I won't be in the community anymore. And it's really important that the mentee has a contact point in the community otherwise they feel a bit lost. So now we are at the last section of our talk that it's about tips and tricks and Victoria will start with time management. All right. So time management and delegation. So first of all, establish a few ground roles because there are sometimes some cultural clash. As I said earlier, you are going to work with people with different backgrounds, with different time zones, with different ideas of how mentoring is. So if you establish a few ground roles you are going to make sure that you are not going to be born out of mentoring. Let them know when you are available. If you want, you can establish one. It's highly advisable that you set up a meeting, a minute of 30 minutes once a week or something like that. So you can have your mentee asking you questions only in that slot and you can keep working on the project you are working with more mind piece. You also should teach them about the main communication channels that is IRC and the mailing list. You are not alone here. You are not supposed to mentor alone. That is really important. You have the community. You have your team who are working with. So help this newcomer get in touch with the people that you are working with. So when you are not there, you have somebody else that is going to cover for you. Okay, I just covered everything. So get to know your mentee who wants to do that. I think I'll do that. So it's very important that you understand who is in front of you. I really like to ask a few questions at the beginning because of course you need to guide that person through the learning process. So you really have to understand what's the starting point. I really like to know if they already know Python, if they have worked with some other project before, if they are familiar with Gabe Garrett. I mentor for Neutron. So it's also important to understand the networking background because you need to assign some tasks to your mentee and you want it to be not too easy. Otherwise it's boring but not too hard. Otherwise they won't be able to finish it and it's a bit demotivating. And also we are talking of... So it's a human interaction. So you really need to find a way to interact with your mentee so that your mentee makes progress and should be a good experience. And you don't need to be a psychologist but still people are very different. There are people who like challenges, people who like to feel comfortable otherwise they won't risk it. There are people that are maybe a bit pushy and just ask you questions all the time. So in that case you might want to say that's not the way it goes. You should find the answer yourself and then just try. Yeah, once I did that. Try for three hours if you don't find the answer then come back to me. Because sometimes they are so new that they are not even familiar with it. They always say how it works. Yeah, or the wiki. So they ask you sometimes... They are real life. Yeah. Or maybe they are too shy and if they are too shy you don't have a way to get feedback. If people don't tell you if you are stuck or... Then you need to ask it to yourself. Like maybe with somebody I used to... Every couple of days, hey, how is it going? Because there are some people that simply are too shy to ask questions or they don't feel confident and you may want to stress questions are okay. So you really need to find a balance with a specific person. There is no God rule apart from you know, get to know your mentee and adapt your style. Yeah, have fun. That's a very important point. It's like a volunteer activity so nobody force you to mentor so you are expected to enjoy it otherwise what's the point? And it's also... I think it's also good for a mentor to have a kind of positive attitude. We are all very stressed and busy but try to really enjoy the time that you are mentoring and also celebrate the success of your mentee. It might be something trivial for experienced people but when somebody new for example succeeding for example getting the unit test passing in neutral for me it's like trivial but for somebody new it's really a great achievement and I should celebrate that. And sometimes I have to say mentees they make some disaster, they are new and they mess something up and it happens like a few months ago a mentee of mine she was just getting to learn git review and she updated other people patches with lots of merge problems and you know people were thinking like what's going on? Who is this girl? Control your mentee! Control your mentee! Bad things might happen it's not a problem it's not a nuclear bomb it's just some review that got messed up so just stay cool and smile and in the end I think it was also my responsibility like I didn't make sure that she could really use a git review in a decent way I was missing some explanations so next time I will do it better but really be positive it should be fun and now Mahati So it's not expected that mentees know everything for instance there was a case where while applying outreach or any other internship there is a certain process to go through and even in my case go here sign up for this mailing list go here fill up the form and sign up the agreement so I made sure that my mentor knew what to do and knew what to do when because it's not their only job it's not their only life it's not expected that they know everything and when you see an opportunity that they don't know anything if you are mentoring and if you think that you don't know anything I think it's a great opportunity to go and explore it along with your mentee and that will be a fantastic experience for both of you I see that's yes so this is the upstream training link that's up there is where mentors need to go and sign up that happens that opens up I think every every summit yes but before and the guidelines what your time commitment should be and what is expected of a mentor you can that's the guidelines that has been found very recently so do take a look it's a very flexible and very reasonable as well okay thank you very much now we are open for questions if we have some time there are two microphones no sorry only one if you want if you have any doubt, if you have any comment feel free to ask questions or if not you can reach us and on twitter or never see any questions on how to mentor or where to look for guidance or documents feel free to drop by on open stack OPW channel and we are always there I don't know if I need a mic oh it's being recorded I came in late but what's the metric or how do we know a mentorship has been successful because it is so you know it is a continuous process and if you have covered it I can talk to you offline I came in like halfway through the session no it's fine we actually didn't mention that part we are currently gathering the idea from former interns of both old Richie and Google Summer of Code internships to see what they are doing now how if they are working full time in open stack or if not how are they using the experience they gain during their internships for their professional life currently like I can say like without entering into details that we got a good number of interns that now are working full time in open stack well one of them is me I started I was in the first run of Richie for open stack and now I am working full time as a software engineer for Rehat as well and we have Anitta Kuno we have Sayali Sayali you are there Sayali we have several cases that are now full time contributed for open stack working in really hard projects for open stack but certainly if you want I can reach you after we get the exact numbers and another metric could be as simple as they made a progress on what they are doing it is just the other way to measure is that whatever they are doing they have made progress on that say they are trying to fix a feature or I mean fix a bug or write a feature if they have made I mean if they have progressed we would know at least what progress is right at least they have moved on from one step to the other that is also called a success Hi I am curious about where are the projects or topics that the mentees are more interested not neutral not neutral for sure that is a good question actually we noticed that people that got involved with open stack through the internship we mentioned we have a wiki page in which we list all internship ideas for them to that they can accomplish in 3 months and usually newcomers go to the safe things and pick those projects that are really listed there and usually it is quite buyer we have mentors working in open stack that submit ideas frequently and that is how they get started but apart from that I don't have Mahati are you new to open stack you are the one who asked the question are you new to open stack yeah I mean are you asking for yourself because if that is the case then we have every project has launch pad and for tracking bugs and wish list items so if that's one way to go look at them and get back on the IRC channel and check with the PTR or whoever is working active in the channel you have a question I have a question and a comment have we given that we are short on mentors maybe we go to the TC and ask each of the course to adopt a mentee that might be you have how many course if you add their 200 odd so you should be able to get each of them should be able to give back to the community that's a good idea yeah that's a good idea we actually tried to make the request for mentors only for course so it's like but certainly if we can you know make sure that we have at least one percent some percentage of mentors in the community that will make the request yeah yeah but I mean it's also they need to be interested and TC and like moon of open stack have have a sign up form and that did work out pretty well but I don't know how much can TC actually go and they can ask them but we don't know the turnout how that's going to be but certainly that's something we can attempt at yeah I mean for sure we can advertise it more in our communities yeah we have mentors in every project and we can just try to get more mentors just talking to people I mean I'm doing it myself and yeah yeah sometimes it works sometimes it doesn't but yeah it's better than nothing thanks so do you since these internships are only like a few months at a time do you ever get interns that maybe try to bite off more than they could probably chew in that amount of time and how do you manage those expectations without discouraging them I think that's something related to what the question was asked on progress so at least in outreach we do measure progress success as progress said I mean there have been certainly cases where they did take up on a bigger project but initially we make sure that the mentors get an instruction that they give them a project which fits in the three month duration but if it doesn't it's always welcome it's up to the mentor's discretion to assess whether they've made progress or whether that's called success or not but in those cases we do handle in a way where how much did they achieve in say three month period yeah it's we do handle it pretty I think I think it's what I was saying before like get to know your mentee so it's the mental responsibility like to have an interaction with the mentee and to make sure that he or she gets as much as he can chew otherwise yeah but it never happened to me to be honest I don't know if we have several cases of mentees that keep working after internships just because they wanted to finish their task and for some reason that it was not therefore the project extended but yeah thank you I'm sorry I cut you off on the bug design features where do you find it I think we can certainly give you links offline but on the outreach channel we are very active and you can post questions there as well we are always ready to give you documents or pointers we are happy to do so great I think we are out of time so thank you all very much please feel free to reach us if something else come up feel free to become a mentor yes as well thank you very much thank you