I complete 15 years of working professionally as a software developer this year (2020). I have been a part of numerous teams in many different companies in various capacities – as a junior developer, as a senior developer, as an interviewer, as a manager, and most certainly, as a mentor and a mentee. In many of these roles, I had to (formally or informally) mentor new developers as they learnt the ropes of the software world.
While I took to mentoring reluctantly in the beginning, I must say that these mentoring relationships have been the most enriching in my professional career. Both as a mentee and mentor, I have gained a lot which has helped me tremendously in my career. Today I want to share some lessons I have learned and best practices to follow while mentoring software developers.
What is the value of Mentoring, you might ask? Why should anyone bother to mentor? Below are the three reasons I do :-
- Contribution beyond direct coding output – Like many software developers, you must also be focussed on your productivity and contribution to the team/company you find yourself in. Mentoring is an indirect way to contribute to your team and company’s goals instead of just doing coding yourselves.
- Being a factor in someone else’s growth is very satisfactory and joyful. Knowing you are the reason of someone else’s growth and success is a reward in itself, and for me, it has always meant more than any financial or tangible reward. What you end up after successful mentoring is not just the productive output, but also a relationship to cherish for the future.
- Mentoring is always a two way street. You gain a lot from mentoring others too. It helps you to stay on top of your knowledge and skill set. To me, talking to and listening to young people and their questions helps me see the software development world in a fresh perspective, and has helped me grow not only as a software developer but also as a human being.
So what does it take to be a good software engineer mentor?
Here are 21 lessons which I have learnt from the best mentors I have had in my career as well as by my own experience mentoring others.
- Focus on the relationship first. You mentor because you care. Get to know the person before diving into their questions. Having a solid relationship with your mentee can become a strong foundation which can make all future conversations that much easier and productive.
- Help them understand the why – the business and the product side of things. Software Engineering doesn’t exist in vacuum. It exist in the larger context of business, and it serves an economic need in an organisation. Helping others understand the larger context – why the software is needed, what is its importance / criticality, will help your mentee make the right choices.
- Help them understand their personal why – behind doing what they are doing. Everyone is motivated and energised by different things. For some, it is money. For some, it is technology. For some, it is passion behind building a product. For others, it is customer service. Most of the time, people are not even aware what motivates them on a deeper level. If you can help them understand their own personal why, it can make a major difference in how they pick teams and projects, and in turn, the kind of impact they make with their work.
- Mentoring is a privilege. It has to be earned. Do not take it lightly. Do your home work before each meeting. Take notes after each meeting and review them before the next. If you commit to do something, make sure you don’t slip up. Then you can also hold your mentee accountable for their action points.
- Explain and visualise career growth options. Present a long term perspective. Most people never think beyond the quarter or half year. Show people how their career might look like on a multi year perspective. Share learnings and mistakes from your own career. It can make people take decisions with a new perspective, with big and meaningful long term value for them.
- Let them speak. Mentoring is a lot about learning to ask the right questions, and then listening. Learn how to ask powerful questions that make people think what they wouldn’t have otherwise.
- Understand your own strengths and weaknesses, and be honest about them. Help your mentee with your knowledge and experience if you can. Connect them with someone else if what they need help with is not your expertise.
- Bringing focussed in a distracted world can be your most valuable input – change ideas from dreams and wishes to SMART goals. A wish without a deadline is just that – a wish. Help people convert their dreams and desires to actionable and timely goals with clear action points. Always leave the meeting with the next action points for your mentee and follow up if required.
- Storytelling – Sometimes stories are the best way to get a message across. Share yours and others’ personal stories. You can share challenges faced, lessons learnt, actions and consequences. Stories work better than giving advice directly as nobody likes to listen to a lecture. Everybody loves a good story though.
- Let people make their own choices. Never force them to accept your preferred choice. Have them understand and own the consequences of their choices. This will help them build ownership and accountability for their actions.
- Teach people how to fish. Don’t fish for them. Instead of directly giving people answers, help them think for themselves and come up with options and then choose one. Be willing to accept the option even if it is different from your preferred choice.
- Assure them that whatever they are feeling or going through is normal. Make them feel at ease and calm their nerves. We all go through emotions of anxiety, fear, frustration, anger, etc at different points in our careers. And there is nothing wrong with feeling that way.
- Talk to their manager (if you need) to support their growth and to provide meaningful inputs. But let your mentee know first, and only talk to the manager with the mentee’s approval.
- Help people become more self aware by encouraging feedback gathering and discovering blindspots. Ask them to gather feedback from peers and colleagues to find out or validate what the mentee is good at, and to uncover blind spots in their thinking. This should lead to action points based on what is uncovered.
- Refer them good books / articles you have come across. Sometimes a book or an article can communicate a point better than you can. Books often have nuggets of wisdom buried inside them which might provide a beneficial insight, even if you didn’t recommend the said book for the specific insight itself.
- Empathise with them. Learn to see and experience things from their point of view. It will help you understand what your mentee needs, even if they are not directly saying it.
- Give space for thinking, reflection and choice. Don’t push your own ideas or preferred way of doing things. Sometimes it is ok to allow people to make their own mistakes and learn their own lessons.
- Go off agenda and talk about something totally different every once in a while. Talk about the movies, sports or any shared hobby you might have. I can’t stress enough the importance of having fun and building trust.
- Let them drive the frequency of the mentoring sessions. But follow up every once in a while – to check progress and to schedule new sessions.
- Know when to end it. When neither party is getting any benefit out of the mentoring, discuss together if they are ok with discontinuing the sessions. Mentoring meetings should not feel like an obligation to either side. Make it win-win – where both the mentor and the mentee gains from the experience.
- Anyone can be a mentor. If they want to. Mentoring starts with genuine care for the mentee’s growth, and involves having the courage to share your lessons, and to admit when you know you can’t help them. We all have our hard won lessons which can be valuable to others, but it takes effort and skill to pass them on to your mentee at the pace they are comfortable with.