Intellectual humility is a core part of mentoring and being mentored
Making it intentional
Recently we started a mentoring programme - nothing rigid or too formal, but intentional.
In essence each person in the company has picked someone else in the company as a formal mentor and they have committed to meet at regular intervals. Formal developer mentoring is new to us and with that in mind we are still not exactly sure how it will work. For now we have committed to doing independent short experiments and then to get together as a company and share what worked and what hasn’t.
To help with the process here are a few notes we found from various sources regarding mentoring and what a developer mentor should do. (Credit goes to Janco for compiling the majority of these items).
Pairing
Get the mentee to do most of the driving, they learn more when they are typing things in, than when they are listening to the expert telling them what they are doing.
Breakable Toys
Johanna Rothmans Ideas on Mentoring
Mentoring is a professional developmental partnership. The mentor shares knowledge, skills, information & perspective. The aim is to foster personal and professional growth of someone else.
Ground Rules
- There are no stupid questions. Ever.
- Confidentiality
Approache
- Recognise and identify mentee’s learning style.
- Seek to take advantage of their preferred learning style.
- Identify clear goals and outcomes.
Do’s
- Take a real and active interest in mentee’s life and progress
- Short feedback loops
- Set expectations early
- Don’t assume knowledge
- Don’t lord knowledge and experience
- Share freely
- Listen, explain, guide - don’t direct
- Set goals and lay path to achieving them
- Be proactive
- Make yourself available
- Give the benefit of your experience (war stories)
- Keep pointing them in the right direction (so they don’t waste time learning something less valuable)
Dont’s
- Neglect the relationship
- Break confidence
- Control
- Overwhelm
- Not sharing common moral / ethical grounding
You’re confusing teaching with managing
The traditional career path is linear, which often means pushing top talent down a management track, supervising others. Leaders may notice that one of their people enjoys teaching others, and then assume that they’d enjoy managing others. Mentoring and managing might seem similar, but they’re entirely different skills. Management is really about getting work done through others, which makes it highly people-focused. Mentoring or instructing–especially when it comes to software development–is more about a knowledge-transfer of technical skills. Be careful not to mistake a technical expert who enjoys teaching for one who enjoys managing. Instead, offer your best senior engineers more than just one kind of leadership opportunity; carve out a separate path for technical experts to advance up the ranks based on how well they help their junior colleagues “skill up”–even if that doesn’t involve managing their work.
This is why your best developers keep leaving
Sources / Additional Reading
Mentoring Junior Engineers
The Secret Of Being A Great Mentor
Seven tips on mentoring entry-level developers
Dreyfus Model
The Religious Tradesmen, pages 217 onwards
Struggling to find great senior javascript developers? Mentorship is the answer
ThoughtBots Mentorship Handbook
Mentoring & Giving Feedback at 8th Light
How to mentor software developers by Daniel Irvine
Mentoring & Apprenticeships for Software Engineers
4 tips for mentoring developers