Apart from adding new developers to the open source community, the Linux Foundation Mentorship program is about adding value to open source projects, by sustaining the health of open source communities. The mentorship program can achieve great success by providing high quality learning experiences to mentees. So, mentors and participating organizations play an important role in delivering quality experience to mentees by providing timely proper guidance, and discussing project milestones, deliverables, and taks with mentees.
Mentoring people might sound interesting, however, quality mentoring requires commitment, willingness, and ability to take a leadership responsibility. Being a good mentor requires some specific skills that you can develop as mentioned below:
Communicate: Communicate with your mentee on a regular basis, whether it is to provide feedback, offer training, or check on the mentee’s progress. By keeping the line of communication open, you will build trust, respect, and a positive relationship that facilitates the successful completion of the project.
Develop project plan, such as project objectives, milestones/deliverables, methodology, documentation for completion of the project
Schedule weekly check-ins to review progress, blockers, upcoming tasks
Clarify communication channels/norms with your project team, and broader community: email, chat, calls, wiki, and so on
Be respectful of collaboration challenges across time zones and language/cultural differences
Mentor: Mentoring is a critical and essential part of a mentorship program, and an attribute that differentiates from regular employment. As a mentor, it’s important to provide honest feedback to mentees on their progress, professionalism and skill development.
Set expectations early, preferably at the start of the program
Set challenging but achievable goals and metrics on how to measure success
Give praise for good work and offer critical constructive feedback. Be specific and provide suggestions for how to improve
Model desirable behaviors, workflow, processes, and ways of working
Complete quarterly evaluation on a periodic basis to bring any feedback to project maintainer and share/discuss the results with your mentee openly
Connect: To foster learning outside of your mentee’s job duties, encourage them to develop relationships outside of their immediate team. Allowing your mentees to gain a broader understanding of organization, industry, and potential career paths can help generate new ideas and make them a more effective and longer-term contributing member.
Introduce mentees, who have successfully passed the exam, to potential employers helping them to grow in the open source community
Provide resources for additional training
Provide context on how the mentorship program is similar to other projects’ mentorship programs
Depending on the project flexibility, ask mentees review each others’ code and provide feedback as a collaborative development exercise
Enable mentee to participate in the open source community with more confidence and independence
Revisit: Periodically take a look at the learning objectives and expected outcomes established at the beginning of the mentorship program. Discuss what the mentees have learned and how it can be applied in future. Be flexible to adjust the project scope, learning objectives, and outcomes based on the mentee’'s background and skill set.
Please keep in mind that the mentorship program is a learning opportunity for mentee, not a job with narrowly defined job description.
Stay flexible to modify project scope/plan, learning objectives, and deliverables/outcomes. Document modified tasks, schedules, and project plans.
Reframe mistakes and slow progress as opportunities to hone soft skills such as communication, effective ways to participate in open source community, working with distributed teams, and so on.
As a mentor, you not only provide technical guidance to mentees, you also understand their enthusiasm to learn and work for open source development based on which you can select them for the program, and refer their profile to potential employers. You are the person who helps mentees learn and enhance their technical skills, and whose guidance brightens their career. Sounds cool, doesn’t it? Good mentees can also become great mentors in future, and contribute effectively to communities.\
Here are some reasons to consider putting yourself forward as a mentor and formally participate in the mentorship program:
You believe in the value of mentorship by helping new and active developers learn open source development, culture, the tooling and infrastructure to be a productive member of the community.
You are passionate about teaching and guiding aspiring developers, many of whom may be first time open-source contributors.
You are eager to bring in new perspectives, ideas, new talent into open-source community and projects.
You believe that the potential contributions of the mentees, by completing this mentorship program, could add value to the larger project community of which you're an active developer or a maintainer.
It’s not just us telling good about our mentorship program, listen to what our mentors say about this program:
“It is really satisfying as a mentor to see someone soak up all the new knowledge and put it to good use.”
– Hans Verkuil, mentor for Linux Kernel Mentorship Program
“The first thing I would like to emphasize is that this is not just a summer job for the interns. During the internship, they had a chance to get to know the intricacies of different Hyperledger projects. They also worked closely with mentors who guided them throughout their work. But above all else, they became part of an open source community.”
– Attila Klenik, mentor for Hyperledger
“I have always enjoyed sharing knowledge, and this program gave me the opportunity to do that. My proudest moment easily was when my intern spoke about how the things we taught her during the internship directly applied to her current classes. As I mentioned above, our first goal was to make sure our intern learned enough that she could apply it to the rest of her career.”
– Swetha Repakula, mentor for Running Web Assembly Smart Contracts in Fabric
“I had the satisfaction of supervising a hardworking intern who was able to create running code for the seemingly difficult idea of running Solidity contracts on Fabric. My hope is that the project does not end with the culmination of the internship and sparks interest among other members of the community.”
– Salman A. Baset, mentor for Running Solidity Smart Contracts on Hyperledger Fabric
“Mentoring has been a great experience for me. I got a wide selection of candidates and could choose people well suited by giving practice tasks. During the mentorship, my mentees were very excited and had a lot of energy, -- something only seen in people starting out. They were hardworking and were able to make good contributions and bring fresh ideas to the table. It improved my knowledge in the area as well (when you teach you learn again) while also getting some work done (which otherwise I would have to make time to do myself). My menees are now planning to continue to work in Linux kernel space and I'm glad that I got an opportunity to add more contributors to the kernel. I have also networked the me mentees with other engineers in the area I'm working on and further given them more opportunities to contribute in the future. I hope they continue even after the mentorship program.”
– Joel Fernandes, mentor for Linux Kernel Mentorship Program\
Mentoring people might sound interesting, however, quality mentoring requires commitment, willingness, and ability to take leadership responsibility. Before you apply to be a mentor, consider the following questions:
Are you a member of the developer community? To mentor aspiring developers for a particular project, you must have sufficient knowledge about project development. If you are already a member of the developer community, then yes, you can be a mentor. If you are not, then it might be difficult for you to introduce mentees to the project culture, and best practices. But if you are new, and still want to engage in the mentoring channel, you can be an assistance mentor, and this will help you to become a successful full-fledged mentor in future.
Will you be able to dedicate sufficient time? Quality mentoring needs your quality time with sufficient attention towards this mentorship program. So, please consider your availablity before committing to be a mentor.
Are you really interested in mentoring mentees? The primary purpose of mentoring is to help aspiring developers learn open source software development, our projects, and culture. This requires your passion, time, and patience to help the community grow. As a mentor, you will engage with mentees from the very beginning to the end of the program.\
The very first responsibility that makes you a good mentor is selecting the right fit (mentee) for your project. This way it helps both you and the organization in getting the right candidate who eventually becomes a key player for the project.
A helpful starting point to select the right candidate is to identify why a mentee is interested in applying to the mentorship program, and what do they expect after successfully graduating from the program. Thankfully, has a well defined application process for mentees which will help you to decide. Also, as a mentor, you are expected to work with mentees during the application process so that you get enough time to choose the right candidate for this program.
Apart from this, there are some techniques that you should consider while selecting a mentee:
Mentee Profile: Have a look at Mentee profiles. Mentees should have required technical and communication skills to be accepted.
Past Performance: Check if the candidate has already been a mentee for other projects. Inquire for their past performance. Past performance will help you evaluate mentee’s interest and caliber.
Eagerness to Learn: Mentees should have an enthusiasm to learn open source software development and culture. Try to understand their motivation behind applying to this program. Is this just to complete a summer course or getting famous, or do they have a keen interest to learn and contribute to open source projects?
Enough Time in a Day: Ask mentees for their other summer plans, if they have a full-time job or number of projects they have applied or are willing to apply. This gives a better picture if the mentee is really interested in this particular mentorship program, and the number of projects helps you decide if the mentee can really dedicate sufficient time to your project. Even if people show confidence that they will be able to focus on your project along with other plans or full-time jobs, you shouldn’t make a decision based on their confidence. It’s your call, because their availability is going to impact the smoothness of this project. Encourage them to cut down on other plans if they really want to learn and grow in open source software development.
Mentoring is not just transferring knowledge and advice, it’s more about investing time in nurturing another profesional. Moreover, it gives a personal satisfaction when you help somebody grow and gets absorbed by the open source community. Following are some key benefits:
Opportunity to teach and share expertise
Helps to expand professional development record
Opportunity to develop leadership and coaching style
Exposure to be recognized as a Subject Matter Expert
Get help with work in your respective technical areas
Opportunity to train and bring new talent into the project
It gives an immense satisfaction, and showcases your leadership quality when your mentees write high about you in their blogs at the end of the program. Following are excerpts from blogs written by mentees:
“I am writing this post to share my experiences about working with Hyperledger and to report on the project itself and the impact it can have on the Hyperledger community as well as on my personal development. My mentor was Salman Baset, an active member of the Hyperledger community. I must emphasize what a great mentor he was, always available, communicative and helpful. He gave me a lot of hints and helped me out when I got stuck, but, still, I had the freedom to make technical and strategic decisions. I have learned a lot from him, and he (and this project) provided a huge boost for my personal improvement.”
– Balazs Prehoda, Hyperledger Fabric, Hyperledger Summer Mentorship Program
“I am very grateful for the support from my mentors, Baohua Yang, Haitao Yue, Tong Li and Jiahao Chen, as well as Hyperledger and for the opportunity to learn and contribute to open source Hyperledger projects.”
– Manank Patni, Hyperledger Summer Mentorship Program\