With complex projects like OpenStack, it can be intimidating to jump straight in. Besides the scope of the project itself, there are lots of systems and processes to familiarize yourself with. It can be hard to know where to get started.
Fortunately, there are great mentoring programs to help new contributors get started. But these programs are always looking for help. Raildo Mascena, Rodrigo Duarte, and Telles Nobrega ask the question, why are you not a mentor in the OpenStack community yet, in their upcoming talk at the OpenStack Summit in Sydney.
- Raildo Mascena is a Software Engineer at Red Hat with more than 4 years of experience with OpenStack currently focused on security projects, and is a mentor in the Outreachy Program.
- Rodrigo Duarte works as a Lead Cloud Infrastructure Engineer at Waltz Networks where he works on Keystone and the Oslo.policy library, and is a mentor in the Outreachy program.
- Telles Nobrega works as a software engineer at Red Hat where he is Project Technical Lead of Sahara, and has also contributed to Keystone, Trove, and Nova.
I caught up with the three to learn a little more about what they plan to speak on.
How do mentoring programs help OpenStack as a project?
OpenStack is a huge project composed of dozens of services, each with a different focus, design and specific team of developers. Just to illustrate, if we take Sahara as an example, Sahara is a service that is highly integrated with other services and relies on them to perform its basic features: for authentication it uses Keystone, to store its images it uses Glance, Heat is used for orchestrating instance creation, Neutron is used for networking, and Nova is where the instances creation are actually triggered. As such, getting started in such an environment can be overwhelming, especially for those without much experience. Having the opportunity to have someone to help a new contributor during the beginning of this new experience can help out with a lot of common difficulties, and attract even more new contributors to the community.
Thinking on OpenStack itself, we can see that mentoring programs help increase the number of contributors, thus increasing lines of code, reviews, ideas, and it helps to change the status quo of developers, by training new capable people that will be responsible for the project main decisions in the future.
On an individual level, why become a mentor?
Being a mentor is a great way to give back to the community some of what we have learned in the past years. All the people that are mentors today were new newcomers in the community at some point. It is important to notice that, as mentors, we don’t only share our knowledge, we have the opportunity to learn a lot from the mentees, learn about different cultures, develop management skills, and more. And after all that, having the opportunity to see someone grow in the community is very rewarding.
Another important skill that mentors develop and that is really useful in anyone’s professional career is learning how to give and receive feedback. Additionally, with all that put aside, mentoring programs are also a good chance to get done work that is not prioritized or that we still don’t have time to do ourselves.
What are some of the things that new participants in OpenStack have trouble with and how can mentoring help with this?
The ramp-up process in OpenStack is a little overwhelming. There is a lot bureaucracy to handle and technologies to learn. For example, just to start contributing you have to set up and account, find something easy to do as a first contribution and so on. Having someone to help with all this is very useful. Also, a mentor can help out finding the best place to contribute and then help out introducing the new person to the community, thus facilitating the communication with other team members.
Once the mentee understands the basic tasks and have their environment set up, another important step that the mentor can be very helpful is with the OpenStack reviewing process, this is one of the most important activities on OpenStack, for learning about the project nuances, improving coding skills, and speeding project growth.
Finally, we believe that a mentor can be very important to help break some barriers like time zones, language, and technology.
What makes a good mentor, and how can someone grow those skills?
Actually, we are still trying to figure that out. We don’t believe there is a necessary combination of things that make a good mentor, that will vary from each person. But there is some stuff that we think are important, like patience, being participative and available to the mentee.
One important characteristic of a mentor is the ability to guide the mentee into finding the solution instead of giving it right away, this will allow the mentee to become a better professional and learn to solve problems alone. Something else that the mentor has to pay attention is the scope of the project that he/she is proposing, most of the time the mentee is someone with little professional experience.
Additionally, the mentor should also pay attention to what the mentee is going through. Not all of the problems are of a technical nature, sometimes the mentee might be facing personal problems and may need not only technical but also emotional support.
What specific opportunities are available for mentors/mentees? Where can people who are looking to learn more get started?
Currently, there are Outreachy and GSoC internship opportunities where there is a structure to follow, a deadline set up by the program and also a financial reward for the work. Both of these are not limited to OpenStack, they are available to a variety of open source projects. In these programs, project ideas can be proposed by mentees, but most of the times mentors are the one proposing the projects. Before the selection process, the mentees can search through a list of ideas and find something that might interest them and then get in touch with responsible mentors and apply for the program. After this, there is a selection process and the mentees have three months to finish the project.
Other than that, there are projects organized by OpenStack itself for those who have the opportunity to attend the OpenStack Summit, there are hackathon, onboarding, and speed mentoring, all that are very short time but good learning opportunities.
There are a lot of different sources that the mentee can search to get started with the process. For OpenStack specifically, it is always useful to get in touch via IRC or via one of the mailing lists. Past mentees have also written great blog posts about the subject, not only about how to participate in internship programs, but on how to handle some problems they can face during the project.
To all who have interest in mentoring programs in OpenStack, don't miss our panel in the next OpenStack Summit in Sydney.