In a hypercompetitive business environment people development must become a core competency for all companies that strive to achieve the highest levels of performance. To build a long-term value of the organization senior developers need to commit to investing their time and resources to help individual develop appropriate skills and knowledge. Experienced developers should be able to create an exciting and challenging relationship that inspires others to strive for the highest levels of capability.
Our mentoring program tends to focus not only on preparing developers for their future responsibilities but also on showing them how to conduct co-mentoring with other colleagues. In this lead by example approach our mentoring philosophy is based on such values as education, experience, exposure and inspiration.
To support our senior developers in becoming great mentors and empower them with an ability to be a transformational figure in an individual’s development, we introduced development paths with all materials needed in one place, and one-to-one coaching sessions.
Below is an example of our approach to building relationship between mentors and mentees.
MENTORING TIPS FOR SENIOR SOFTWARE DEVELOPERS
- At the beginning, don’t set any rules, be a guide and show some paths that can be followed.
- Build relationship based on trust and mutual understanding. Don’t let your mentees to feel alone. Be always open for questions / suggestions / feedback.
- Don’t be disrespectful for the mentee, just because she is a new worker. Treat a mentee just like any other developer, e.g. while discussing things, when she come up with a gem, or library – listen to arguments, discuss tradeoffs.
- Allow the mentee to grow & feel confident in this what she does, by simply encouraging for experiments and digging deeper. Increasing confidence is important in order to learn new things easily.
- Guide the person to the solution, do not solve problem for mentee.
- Ask often for feedback, do quick and fast retrospectives over the learning process. Encourage thinking about that, e.g. by writing down whenever something come up in their minds.
- Consider using pictures / flow diagrams for explaining / simplifying explanation of logic, e.g. when explaining how the data flows from the user to the controller & DB. Use piece of paper & draw simple pictures / pseudo code with explanation for the problem.
- Don’t expect that your mentee will know everything within the app. It’s possible that she is adjusting her mindset to work with a rails project.
- Don’t put too much attention to code style, it will be good with time. Don’t try to enforce that, just encourage for using proper things, e.g. symbols instead of strings within the hash.
- From the beginning, teach responsibility for the project, without any kind of a “punishment”, but allow to** give certain responsibility to the person**, for instance by allowing on her own deploying things on production.
- Allow mentee to make mistakes, in this way she will learn to take chances, explore and think for herself.
- When mistakes become learning opportunities, everything changes. Mentees will be more eager to solve problems on their own in the future.
- If the mentee finds out what problem she has, e.g. with the app, allow her to explain what it is about, where the issue might be. Then ask her about as many ideas on solving it as possible and discuss them together. If you don’t find the solution in her ideas explain your assumptions about the problem and together dig down into that. If she doesn’t know about the issue / how to dig it, explain it.
- Each time, when solving a problem, present a solution and evaluate tradeoffs of implementing that.
- Deliver as many details of the problem as necessary. Firstly describe the basic concept behind, then how it could be implemented. Encourage the person to explain the implementation, how it could be implemented, it’s a way for reassuring that the person understands how to solve the problem. If the mentee still doesn’t know, repeat the same thing, slowly, using e.g. piece of paper.