This is part of my live blogging from QCon 2015. See my QCon table of contents for other posts.
Coding isn’t enough to be a good engineer.
“Mature engineers lift the skills an expertise of those around them” – John Allspaw “On Being A Senior Engineer” – bit.ly/senior-engineer
Must understand why doing things. Teaching to fish is an essential skill at this level.
Why to be a good mentor?
- Mandatory for career advancement
- Needed for their careers too. Having a mentor is often the difference in staying in the industry
- Your company needs you to mentor junior engineers because they need senior engineers. Who are hard to hire
- Our industry’s future. The next generation is trained by us, not by university
Need – vision, goals, mentor with expertise Need to be able to evaluate them and provide feedback
Becomes negative feedback loop. Think if bad and fail, won’t have to do it again. Just witing for time to pass. Never get better if don’t want to try.
Good to have small/clear goals so can progress/grow. Within vision of company. Good if like mentee/stay in touch have lunch/etc. [I agree. Easier to respond to feedback when have trust]
Lessons learned by speaker
- Be eagar to help. Or at least appear to be. If you look like you are angry when someone asks for help, they will be afraid to ask. Need to seem excited to be interupted. (or preferably actual be). You don’t want your apprentice to be blocked. He/she isn’t learning anything and you can’t evalulate. We overemphasize figuring things out on your own.
- Know what your apprentice doesn’t know. ex: github, pm, working on one thing at a time. Try to anticipate these questions. [This is why I like a buddy system when there are mutiple new people. It’s harder to keep track of what multiple people are up to]
- Admit when you don’t know. It models that it is ok to not know things an not be embarassed when don’t know. Also helps teach problem solving
- Ask apprentice for help. Can do code review even if don’t find much/anything. Still learn. Still create good patterns
Excuses for why not to mentor
- “I’m an introvert” – controlled interactions are easier. Predicatable. Apprentice is likely to be an introvert too so understand each other. Introverts listen. Can develop a relationship
- “I can’t explain what I know” – can teach by working together; don’t have to explain to teach. If it can be explained, it probably is in a book somewhere
- “I’m a bad mentor” – It is a skill that improves with time/practice
- “I just want to code” – Some people don’t like leading young people. History of craftsmanship with master/apprentice relationship. Making the investment can change how you think of yourself. Satisfying feeling when work
- I asked about you becoming Google for trivial facts by never letting your mentee block. He said that he thinks we are so far on the side of not wanting to be interrupted that trying to always be open will help shift to middle. Someone brought up the idea to timebox that window. Such as an hour of blocking max.
- How do you balance how much time on your work vs apprentice? Your apprentice is the #1 priority.
- How deal with multiple apprentices? Best if one to one. Cuts back on pain of being interupted
- Interns provide muscle. Should intern be involved in your project or a separate one? Interns are not muscle. Not significant productivity compared to what take from you.[I disagree. I think we came out ahead four of the five summers we had an intern on my team]
- Can be scary to mentor. Imposter syndrome. Knowledge atrophy. Ok to admit what don’t know. Have wisdom even if less tactical
I like the session. A case study of good/bad internships was a good way to present the material.