Mentoring a student can be a very rewarding experience. However, being a good mentor is not just a matter of winding up the student and watching them go. Quality mentoring requires a substantial time commitment and the willingness and ability to take a leadership role.
There are specific skills that you can work on in order to be more effective; even experienced mentors can improve. This chapter highlights some of the capabilities of top mentors, by suggesting some self-assessment questions that can help you to evaluate your strengths and weaknesses in this role.
Are you already part of the developer community? If you are not then you are going to be less effective at introducing a student to the local culture and practices. Similarly, you are less likely to be able to propose, guide and integrate successful projects relevant to the larger effort. If you are new to the community, working as a backup mentor on a project may be an excellent way to get involved. Note that some projects are more community-oriented than others; assess the community skillset needed for your target group.
Do you have a real interest in potential GSoC projects? As a GSoC mentor you will be taking ownership of a project idea and seeing it through the summer. If you are not excited about the project, mentoring will be more difficult. You are an integral part of the process from project proposal to delivery.
Are you willing to dedicate significant time? While the time requirements for mentoring vary, you should seriously consider your prior mentoring experiences and your available time before committing to this role. If you really don’t want to mentor, or really won’t have a reasonable amount of time each week, then don’t offer.
Are you keenly interested in mentoring students? A main goal of GSoC is mentoring students. Mentoring is important to the future of open source software, our immediate projects and the overall culture. Mentoring a student requires a combination of passion, responsibility and patience. A good mentor is willing to engage with students throughout their learning process.
Be Prepared to Seek Help
At all times don’t forget that you have access to people, tools and resources that can make your job much easier and make you a better mentor. Make use of your org admin when you are not sure what is expected of you or have a difficult situation with your student. Make use of other mentors in your organization and the thousands of mentors on the mentor mailing list. Though it may be an annoying list at times (don’t feed the trolls!), it is a valuable resource. The GSoC admins are another important resource. They set the tone and standards for the entire program. They have heard it all, so don’t hesitate to contact them when a problem arises.
What To Expect From Under-Mentoring
The student’s project is never properly defined. The project goals and deliverables are unclear, and the work schedule is not set. The consequences of this are serious and impact the project if left unchecked.
The mentor has little idea what the student is doing. The state of the project is unclear, and its progress is uncertain. Evaluation is impossible to do well.
The student produces code that isn’t useful. The student starts off on ‘the wrong path’, failing to use existing functions or established project idioms. Rather than fixing problems as they arise they keep on adding more. The code is never integrated into the main codebase because it doesn’t work well enough and would require more work to fix than it is worth.
The student gets stuck. The student seems to be engaged, and to be working hard, but no apparent progress is being made. Alternatively, the student’s communications are infrequent and terse, and seem to always be on the same issue or milestone.
The student disappears, perhaps for days or weeks at a time. If the student is under-mentored, it may be difficult to determine when this period began, and thus to know when to panic. Insufficient information is available for evaluation; thus it becomes impossible to fairly evaluate the student.