Google Summer of Code/Mentors
As a Google Summer of Code (GSoC) mentor, you engage potential candidates in the application period between March and April and help candidates make small contributions to your project. You work more closely with the accepted candidates during the coding period between May and August. It is a great mentoring opportunity to introduce newcomers to open source through coding projects, make progress on new ideas that otherwise may be of a less priority to you, and in the overall process improve your professional development skills. Our participation in GSoC also helps us understand new developers experiences and help make improvements to the contribution guidelines and processes around attracting and retaining developers.
If you are considering to become a mentor, learn more below.
Before the programEdit
- Read the GSoC mentors manual to get an overview of your responsibilities.
- See a list of past projects to gather new ideas. Note: Project should require an experienced developer ~15 days and a newcomer ~3 months to complete. Ideally, the project has no tight deadlines, a moderate learning curve, and fewer dependencies on Wikimedia's core infrastructure. Projects addressing the needs of a language community are most welcome.
- Add a #Google-Summer-Of-Code-20XX tag to a project on Phabricator that you would like to mentor (example). Update the task description on Phabricator to match the template given for the #outreach-programs-project.
- Accept the invitation in the email sent by Google to become an official mentor.
- Talk to interested candidates. Share with them project details, goals and some ideas for implementation.
- Point them to self-contained, easy and newcomer-friendly microtasks listed in the task description.
- Communicate your preferred medium of communication and active hours to applicants. We suggest using public forums like Phabricator and Zulip instead of private email threads.
- Allow all potential candidates to submit proposals for the project until the official deadline.
- Review proposals on Phabricator and give feedback (ideally within one week of any request-for-review raised by applicants).
- Assess proposals by following the selection process tips indicated below.
- Inform organization administrator about your decision.
During the programEdit
- Set development & communication plans with your mentee.
- Encourage them to participate in the community bonding period following our guidelines.
- Set aside time in your schedule for a weekly meeting with your mentee via video call.
- Aim to get a Minimum viable product (MVP) out the door. Fine-tune plans as needed.
- Help host new projects created during the program on Wikimedia Gerrit. See Gerrit/New repositories.
- Stay in close communication with your mentee.
- Require your mentee to submit new code for review often, ideally every alternate day.
- Require your mentee to submit weekly reports.
- Submit timely project evaluations to organization administrators.
- Before the program ends, make sure to document any open tasks, file known bugs or merge leftover code.
After the programEdit
- Share your conclusions of the project in communication channels, wherever appropriate.
- Suggest or help with any improvements of our outreach program guides.
- Communicate to organization administrators any lessons learned.
- Recommend next steps to your mentee in the current project or wherever you think they might fit in our community.
Selection Process TipsEdit
- Seek long-term contributors, not just new features. It probably takes more time to mentor a project than to complete it yourself.
- Choose the best candidate, not the one that arrived first.
- Don't choose a candidate based only on a convincing proposal and past experiences. They must complete our recommended program guidelines.
- Be transparent in your communications with contributors and treat them all fairly.
- Don't share any information about final results with your candidates before the official announcements. This also means:
- Do not assign a specific Phabricator project, or its dependencies to any potential candidates before the official announcement.
- Don't make up your mind on a candidate before the submission deadline. Allow all potential candidates to submit proposals for the project until the official deadline.
- Do not share a single project idea between two candidates. Try breaking it up into individual non-overlapping modules for better evaluation of individual efforts.
- Look for feedback and endorsements on the proposal from the community members
- It's recommended to interview your candidate via an online medium.
- Ensure that participant would be able to put the number of hours as expected of them from the outreach program.
- Score your mentee and report to the organization admins. You could use the system below to rank them on a 1-5 scale (adapted from the Outreachy program):
- 5 = amazing applicant, could become a maintainer on completing the program, made extensive contributions of high quality
- 4 = strong applicant, will certainly do a good job, made substantial contributions of high quality (> ~50 lines of code or equivalent)
- 3 = good applicant, but is somewhat inexperienced
- 2 = is unlikely to do a good job
- 1 = not a good candidate
- Additional free software experience indicator(s)
- + = enthusiast based on past actions (e.g. has a blog, has been to conferences, has an active GitHub account, or contributed to free software for some time)
- 0 = proficient user of free software
- - = no experience or very new to free software
- In case of a GSOC/Outreachy overlap -- consider a female GSoC applicant for Outreachy only if they are best or only candidate for a project that is not receiving a GSOC slot.
- If two applicants are ranked equally based on their contributions during the application phase, only then, consider their prior contributions to make a final decision. We strongly discourage giving priority to someone with prior contributions and fewer during the application phase over another candidate with more contributions during the application phase.