The Secret of Being a Great Mentor
Mentoring in software development is unlike your regular
corporate mentoring program, or at least it should be. It is not about having a
coffee together every 3 months or some general advice about ‘improving
your career’, it is about genuinely sharing your knowledge and experience
and helping a younger developer become a better craftsman. There are two types
of mentoring relationships you can find yourself in:
- informal – you find yourself working with a more junior developer
and ‘take them under your wing’, you did not formally discuss
it with each other, but you decide to look out for them, help them our and
teach them some of what you know. They may not even be aware you’re
mentoring them, infact you
may not even be consciously aware of it either.
- formal – this doesn’t necessarily mean company sponsored
(although it can be), what it does mean is that you both sat down and
discussed it and have agreed that you will become a mentor to your more
junior colleague for a period of time. You will once again help, teach and
look out for them, but you’re both fully aware of the fact.
Regardless of whether your mentoring is formal or not you
want to make sure your mentee (or apprentice if you prefer) gets the most
benefit from the relationship. There is no one thing you can do to
be a great mentor, rather it is a matter of doing a lot of little things and
doing them consistently and well.
Being A Great Mentor

The first thing to remember when it comes to being a mentor
is the fact that you’re in it for the long haul. In software development
(like most other professions I would imagine), it takes time for knowledge,
skills and experience to stick. So, it would be tough for you to be a great
mentor if you only decide to do it for a couple of weeks. You would be better
of erring on the side of ‘too long’ rather than ‘too
short’, as a guideline, especially in a formal mentoring relationship,
you want to commit for at least a few months (12 or more if possible), the
longer the better for you mentee. At this point it becomes a matter of
following a set of guidelines (mentoring patterns if you like), to make sure
your mentee gets maximum benefit from your relationship (making you a great
mentor in the process :)).
- Reduce the feedback cycle – just like in projects, it is important to take stock
of where your mentee is as often as you can, so that you can adjust the
course if necessary, this is why it is important to meet and discuss you
mentee’s progress as often as possible. You don’t steer a ship
by setting course and going to sleep, you watch where you’re heading
and make small adjustments as you go.
- Set expectations early – make sure you set the expectations for the relationship
early, obviously this only applies in the formal case. Your mentee might
only want help with their technical skills, or they might want help with
everything in general. Talk it over and stick to the expectations once
you’ve agreed on them, you don’t want to steer your mentee
somewhere they don’t want to go.
- Don’t assume knowledge – more experienced people often make this mistake, they
assume a lot more knowledge than the mentee actually has. This often comes
from an attempt not to condescend, which is admirable, but if you end up
talking right over the head of your mentee it leads nowhere. The simplest
thing to do is to ask if the mentee has some familiarity when you’re
exploring a new area. After the first couple of times you do this, it will
become a natural part of the relationship and neither of you will notice
this any more. The benefit is that your mentee will not end up with major
glaring holes in their knowledge that could have been easily
corrected.
- Don’t lord your knowledge
and experience over your mentee –
the other side of assuming knowledge is lording your skills over your
mentee. You may be understandably proud of your knowledge and experience,
but don’t throw it in the face of your mentee. Treat your knowledge
as a natural extension of you, it is just there, no need to get into it
too much. If your mentee is impressed with your experience that’s
fine, take the compliment and move on with what you were doing.
- Share freely – this one is the third side (i love 3 sided coins :)).
Don’t hoard your knowledge or make it needlessly complicated for
your mentee to understand it. Share and explain as simply as you’re
able, few people are able and fewer are willing to do this, your mentee
will appreciate it.
- Listen, explain and guide,
don’t direct – you’re a
mentor, not a drill sergeant. Don’t tell you mentee to do things,
your job is to explain, help and guide, let your mentee make their own
choices and use the knowledge and skills that they gain in whatever way
they see fit.
- Set goals and lay a path to
achieving them – this is related to
setting expectations, which is the long term goal of the relationship. You
will also need to set some milestones on the way to achieving the
expectations. These will be shorter term goals for you and your mentee to
work on. This will keep the mentoring relationship from just drifting and
marking time.
- Be proactive – your mentee doesn’t necessarily know where they
need to go next (they may be too junior, and anyway this is why
you’re there in the first place). Don’t wait for your mentee
to tell you what they want to learn next, be proactive in suggesting where
they may wish to go. Once again don’t force them down a particular
road, but do give a list of options.
- Don’t seek direct benefit – mentoring a more junior colleague is your way of
giving something back to the software development industry and doing
something for the community. Don’t seek to gain direct benefit from
the relationship. You will gain plenty of indirect benefits such as not
having to work with half trained people, improving your teaching and
interpersonal skills as well as making a significant positive impact on
someone’s life, that should be more than enough.
- Make yourself available – even when you’re not directly engaging with your
mentee, make sure you’re available for questions when needed.
- Give the benefit of your
experience – sometimes it is not
just about gaining new skills or learning new technologies, war stories
can be really helpful. Remember that you’ve been there and done that
while your mentee has not, share some of these stories (situations and how
you dealt with them and how you could have dealt with them better, when it
is appropriate to use certain technologies and when it is not etc.).
- Keep pointing them in the right
direction – you will not always be
there to guide and teach, your mentee will want to (and will need to)
learn on their own. It is your job to point them in the direction of what
they should be learning so that they don’t waste their time. Once
again remember to guide rather than direct.
- Allow them to borrow your authority and trust if
necessary – you probably have a large
network and some good relationships while your mentee does not, help them
remedy that. Share some of your network and your relationships with them.
Introduce them to some people you know, help them to build up their own
network. You mentee will probably appreciate this above anything else you
can do for them and if you truly think well of your mentee (why would you
be mentoring them otherwise) you should be happy to connect them with
other people you like.
- Push them forward if you can – it is not about fast tracking your mentee’s
career (to CEO and beyond) this is not the kind of mentoring we are
talking about. But if both of you want to do that and you’re in a
position to facilitate then by all means try and push your mentee’s
career forward.
- Confidentiality is the order of
the day – always treat what your
mentee tells you in strictest confidence (this should go without saying).
- It is not just about technology – there is more to mentoring than just technology
(unless you agreed to keep it strictly in technology land). You can also
mentor them in people skills, interpersonal skills, conflict resolution,
professional morals/ethics etc. Chance are, if the mentoring relationship
is truly successful you will come to share a common ethical/moral
framework when it comes to your profession.
- It is not strictly about
teaching and learning – having a
few beers and just shooting the breeze once in a while is never a bad
idea. Ideally your relationship might grow from mentor/mentee to trusted
friends over time.
- Give them the benefit of
working with you directly – this is
easy if you’re already working together but even if you’re not
there are ways to make this happen. Perhaps you might try to collaborate
on an open source project or simply get together for a coding session once
in a while. The best way for them to learn is to see you do your stuff and
have you there while they try to do theirs.
- Be a great listener – sometimes all you mentee will want is someone to vent
to, since they know you will treat what they say as confidential.
- Provide positive reinforcement
– so many people forget to do this.
It is really tough to gauge your own progress and your mentee may get
discouraged once in a while (we all do), you can really help by providing
some positive reinforcement and really putting their progress in perspective
for them.
- Don’t commit to mentoring
more than 1-2 people at the same time
– it is basically impossible to keep this up and still provide the
level of quality support that a mentoring relationship should have.
- Get them to the point where you
no longer need to push knowledge –
once you find you no longer need to point your mentee in the right
direction and they tend to pull knowledge from you rather than you having
to push knowledge to them, you know you mentee is at a point where they
have gained pretty much all they can from a direct mentoring relationship.
Surefire Ways To Fail
Just like there are patterns that can help you be a great
mentor, there are also mentoring anti-patterns that can help ensure
you’re a great failure as a mentor. There aren’t many of these, but
unlike the mentoring patterns where following even some can make you a really
good mentor, any one of the anti-patterns can destroy a mentoring relationship.
- Neglect the relationship – if you don’t keep in contact with your mentee
regularly and help them adjust their course, then you’re not really
being a mentor and they will not think of you as such. You mentee will try
to forge their own path and you will only be a mentor ‘on
paper’.
- Not keeping confidence – as you would expect this is the fastest way to stop a
mentoring relationship in it’s tracks. If you don’t keep
confidence, your mentee will not be able to trust you and therefore
everything you say is suspect (as far as they are concerned), there is
nowhere for a mentoring relationship to go from there.
- Not sharing common
moral/ethical grounding – it is
really tough to mentor someone when they think completely differently from
you regarding issues you consider important. For example if they feel it
is ok to step on people on your way to the top while you consider that
reprehensible. If you find that you and your mentee are fundamentally
different in that regard (morals/ethics) it is best to terminate the
mentoring relationship.
- Being too overwhelming and
controlling – don’t try to impose
your will on your mentee. You’re not trying to build a carbon copy
of yourself nor should you try to live vicariously through your mentee.
Always remember your job is to help and guide not direct and control.
I hope that this post has helped you gain more of an
appreciation for what a mentoring relationship should be like. It will not be
easy to be a mentor the time taken various according to individual mentee
recipient. In order to mentor an individual mentee environment where they live
do effect the scope for mentee to be mentored.