Mentor Guidelines
=======

With over 37 special interest and working groups (SIGs/WGs), the Kubernetes ecosystem is vast and no one has all of the answers. Contributors rely on our docs, commenting on PRs/Issues, finding a mentor on their own, and any time they can interact with others to get up to speed. Whether it’s Slack, update meetings, or KubeCons, contributors want to discuss technical specifics, the landscape, or how to be a valuable member. Being a mentor can help accelerate someone's path to being more productive in our ecosystem.

There are many ways you can be a mentor within the Kubernetes ecosystem. Listening and being generally helpful is an informal start, but we’ve drawn together some programs that will be impactful. These programs take the mentee's AND mentor's time into consideration. We know that it’s difficult to carve out steady time to mentor someone, and we appreciate that contribution to the Kubernetes community! The Bonus: we set up the communication framework for you already so your expectations are set when you are ready to dig into mentoring.

You are serving two roles - coach and advisor. You are a problem solver that doesn’t have all of the answers but will know the best resources to go to get the guidance that is needed. You are helping to create a culture of continuous improvement, collaboration, and feedback.

Check out our [mentoring programs](README.md) for more detailed descriptions. Please use [this form](https://goo.gl/forms/Y4MH6NGHe6OU5cZC3) to sign up to mentor.

## Responsibilities and Expectations
*for ALL programs*
* Your goal is to be a guide and not a teacher. If you have the time to teach someone the fundamentals of Go, please do, but know that this isn’t required. In this scenario, you should be able to help identify the best resources for learning Go for the mentee. 
* Issue Grooming. Most levels of the [membership ladder](/community-membership.md) will require some form of issue grooming from you. Examples:
  * picking issues that don’t span multiple SIGs for new contributors
  * or they do because they are learning to be a better approver
  * labeling that will help them identify clear issues that need their attention
* Make introductions to resources and people for the mentee - this is sponsorship which is now equally as important as mentorship.
* Help contributor be productive.
* Patience and empathy.  Through repetition, people learn, and as a mentor, we cannot expect a mentee to meet all of our expectations.  Through the removal of expectation and bias, and with a sprinkle of compassion, we can gain more patience.
* Have some fun and learn together!

### Benefits of being a mentor
* Adding value to the project: help the expedited growth of a kubernetes contributor and reduce the risk of burnout.
* Help for your SIG/WG/subproject: grow quality contributors, gain new perspectives.
* Your personal development: as a leader in and outside of the project, communication skills.
* Perspective: learn where you have holes in your process, documentation, etc. first hand.
* SWAG!

### Myths
* You have to know everything about the Kubernetes ecosystem - or even your SIG/WG.
* You have to spend a lot of time with your mentee(s).
* Only new contributors need mentoring.

### Responsibilities by each program
*[Group mentoring](group-mentoring.md)*

You’ll need to be:
*  On Slack at least 1-2 hours a week fielding questions.
*  Available for a group bi-weekly standup to check the progress of the mentees. 
*  Helpful with building comradery amongst the group - this can be as simple as curating conversation in slack.

Mentees will be asked to take responsibility for their growth and improvement as it's a semi-structured self-paced program; however, you are there to help guide them by sharing your methodologies, resources, tips, and experiences.

*[The 1:1 Hour](the1-on-1hour.md)*
* Participate in a one hour a month session via zoom video conference; no more than 3 hours/times and that is opt-in.
* Depending on the activities that you’ve selected as comfortable in helping with, the mentee may ask:
  * To pair program with you.
  * Ask you an hours worth of questions (AMA). 
  * Do code reviews/docs reviews.
  * Discuss their path so far and ask for input/feedback.
  * Code base tour of a certain area
  * Or a mix - it’s up to the mentee with how they’d like to spend the time and your skills/experience.
* You'll fill out a form once a month to list your availability.

*[Outreachy](https://www.outreachy.org)*
* Being a mentor can take anywhere from 2-5 hours a week depending on the scope of the project that the intern(s) work on. 
* Before the program:
  * Issue grooming and planning activities for the Outreachy application process that they host [here](https://www.outreachy.org/apply/). All interns that are interested in the project must make one contribution as part of their application. Label them with a good first time issue.
* During the program:
  * The time above is split up between slack, 1:1 pair programming and standups.
  * Provide official feedback during intervals to Outreachy and the intern.
  * Have read and understand the [rules and guidelines](https://www.outreachy.org/mentor/) around mentoring for Outreachy.

CNCF will financially support one Outreachy intern for Kubernetes per semester; if you would like to participate and we already have one, assistance with securing a corporate sponsor for the additional budget ($6.5k) may be needed.

*[Google Summer of Code](google-summer-of-code.md)*
* Being a mentor can take anywhere from 2-10 hours a week of your time depending on the student. In most cases, you will have a secondary/backup mentor to distribute the workload.
* Before the Program:
  * Read the official GSOC mentors manual to get an overview.
  * Talk to interested candidates via Slack. Share with them the project details, goals and some ideas for implementation.
  * Point them to self-contained, easy and newcomer-friendly bugs to fix.
  * Review draft proposals and provide feedback before the application period.
  * Evaluate the final proposals and select the student you want to mentor.
* During the program:
  * Set development and communication plans with your mentee. Make sure you establish realistic work objectives and timeline expectations.
  * Help them get integrated into the community and encourage them to participate.
  * Provide guidance such as pointers to useful documentation, code reviews, etc.
  * Set aside time for a weekly sync via Slack or video call, whichever you prefer.
  * Collect weekly status reports. They are important in making sure that time-line slippages and scope creep are addressed in a proactive manner.
  * Keep track of the mentee's progress and keep them informed about their status. Make sure you deliver feedback early.
  * Be responsive to questions - usual expectation is to reply within 24 hours (occasionally under 36 hours is ok).
  * There will be three evaluations of your mentee's work. Submit them timely. The evaluation forms take hardly 10-15 min to fill.
* After the program:
  * Share your conclusions of the project in communication channels, wherever appropriate.
  * 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.

A former GSoC intern for Kubernetes is now leading this for us - mentoring works! Thanks @nikhita!

*[Pod Mentoring](mentoring-events.md)*
* Short group sessions with other mentors during KubeCon/CloudNativeCon events answering mentee questions
  * Designed to eliminate the awkwardness of 1:1s and ensure a wider breadth of knowledge to reduce pressure of having to provide an answer
  * Requires one of the mentors to be an "anchor" who is responsible for facilitating the conversation
  * Great way to learn about struggles of new contributors
* Mentees will be advised to ask well-formed questions to maximize time for mentor feedback

### Other resources
TODO - add external resources/links on being a good mentor, etc.
