This is the second post in the teaching and learning series. The teaching and learning series includes the following posts:

  1. All Developers Should Know How They Learn Best
  2. _The Secret Of Being A Great Mentor _(this post)__
  3. The Secret Of Being A Great Apprentice
  4. Become A Better Developer By Indexing Your Brain
  5. Learn More – Faster By Using The World-Wide Community
  6. What Playing Cards Can Teach Us About Ramping-Up And Transferring Knowledge

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. If you have any other patterns for being a great mentor, do share them with everyone. In the meantime I wish you luck in your own mentoring endeavors. The next post in the teaching and learning series will be – The Secret Of Being A Great Apprentice, be sure to subscribe to my feed if you don’t want to miss it.

Image by chasing butterflies