Once your project is accepted you are assigned a primary mentor and potentially secondary mentors as well. Consistent access to mentors is one of the most valuable parts of the GSoC program. Your mentor is going to work with you throughout the GSoC program to help you be successful, but you also need to make sure you are contributing to and helping to manage your relationship with your mentor.
Community Bonding Period
The community bonding period is when you work out further details of your project plan, schedule regular upcoming meetings with your mentor, get your development environment set up and start to engage with the project’s open source community. This is the time to work with your mentor on setting expectations for your interactions and how your progress is measured during the GSoC program. Hopefully, you have already participated in many discussions with your mentor, clarifying the project and expectations during the application period, but now is the time to finalize your plans.
Staying on Track
Ideally, you have already worked with your mentor to layout a clear schedule for regular meetings, reports, code check-ins and any planned time off. If you haven’t, do this now!
Your mentors are busy people too. They are juggling many tasks and GSoC is one more added to their load. If you rely solely on your mentor to keep track of and enforce the schedule of work, your project is almost guaranteed to fail. Be proactive in keeping the schedule you’ve agreed to and proposing modifications before deadlines pass.
Be Respectful of Your Mentor’s Time
Your mentor is volunteering their time to help you with your GSoC project. Regularly missing scheduled meetings without prior notice and failing to come prepared to meetings is likely to cause your mentor to not want to continue helping you with your project. Remember your mentor is your most valuable resource to help you complete your project successfully, treat them accordingly.
Using Your Mentor
During the coding period, you should continue to make full use of your mentor. As you implement each phase of your project plan, ask your mentor for feedback on the code as you go. Avoid working for two weeks on a chunk of code that is headed in the wrong direction.
Never be afraid to ask questions, but remember you are going to be more successful in receiving a good answer if you try to be specific and do a bit of background investigation first. Take a look at logs and try to think through the error or problem before asking for help. Equally important is to not wait until you are significantly behind in your project to ask for help.
Asking For and Receiving Feedback
Hearing criticism can be hard. It can be even harder to not respond defensively. Asking for and receiving constructive criticism about your project from your mentor, the larger open source project community and your peers is an invaluable exercise to help you write the best code possible.
How do I ask for feedback?
During the community bonding period you and your mentor should have established a schedule for regular communication about your project progress. But what if you want additional feedback or maybe you aren’t getting a very detailed response from your mentor. How do you go about asking for additional critique? A general “how am I doing” is going to probably get you a general “you are doing fine” response back. Instead, do your best to ask specific questions about specific areas.
My mentor is wrong! My project is going great! What do I do?
First, take a deep breath. OK, now take another. Chances are your mentor is not wrong and you need to listen to their advice. This is a great opportunity to start asking questions. Try not to be defensive but rather, “I really don’t understand what you mean, would you please explain?”. Remember that the open culture surrounding most open source projects encourages and thrives on discourse. Don’t view the feedback as negative criticism, but rather an opportunity to explore how to do something different and make your project better. Do your best to listen, learn and incorporate feedback into how you work.
Dealing with Problems
One of the best things you can do when working to solve real or perceived problems with your mentor relationship is to stop and remember that your mentor(s) is a volunteer and has non-GSoC responsibilities.
Where did my mentor go?
So you haven’t heard from your mentor in a while, what do you do? First, did your mentor miss a scheduled meeting or did they just not respond immediately on IRC or to an email?
If you didn’t get an immediate response outside of scheduled meeting times either on IRC or email, be patient.
If your mentor missed a meeting, then a gentle email along the lines of “did I mix up our meeting time” to your mentor is a great idea. Chances are you’ll hear back shortly and things will continue on as planned. If you don’t hear back, then try contacting your secondary mentor and if there is still no response, then contact your org admin.
Do not wait until the end of the evaluation period to let the org admin know that your mentor was not communicating with you. If for some reason your mentor hasn’t responded to you within 5 days (and the mentor didn’t tell you they were going to be unavailable for a few days) then contact the org admin or backup mentor (if there is one).
Why is my mentor so mean?
Remember that everyone has different communication styles and you might both be communicating in a second language. Providing project critique is part of a mentor’s job. That being said, if you feel like your mentor is being unduly harsh and it is affecting your project success the best approach is to talk with your mentor about their communication style in a non-confrontational manner. If you still feel like your mentor is being unduly harsh – after your conversation – talk to your org admin.
Why is my mentor so friendly?
Again, this could be a disconnect based on different communication techniques within different cultures. Make sure you let your mentor know what about their style is making you uncomfortable. If things don’t change for the better, contact your org admin.