Mentorship in software
Software is a game of gaining knowledge, you have to learn almost forever during your developer career. But what to learn?. Mentors can…
Software is a game of gaining knowledge, you have to learn almost forever during your developer career. But what to learn? Mentors can help here.
Mentorship is the patronage, influence, guidance, or direction given by a mentor. A mentor is someone who teaches or gives help and advice to a less experienced and often younger person. In an organizational setting, a mentor influences the personal and professional growth of a mentee. Most traditional mentorships involve having senior employees mentor more junior employees, but mentors do not necessarily have to be more senior than the people they mentor. What matters is that mentors have experience that others can learn from.
wikipedia
I have had the opportunity to mentor a lot of people around my life in software, people who knew what they wanted to learn and others that didn’t know.
In the software industry, there are tons of possibilities about what people need to know, but I think the industry has obsessed with languages, frameworks and technologies.
Companies and learning
The majority of hiring processes are too much focus on hiring people who know a specific Tech Stack, and this pushes developers to invest their time to learn technologies or frameworks to apply for these positions.
In my opinion, this is a bad idea. Companies try to avoid teaching devs, they want senior people who know one specific technology, without understanding that it doesn’t matter how good you are writing React or Vue components, you will always need to learn the business, the architecture, the current culture of the company.
The easiest part to learn is the technology if you are good learning.
So I really think that it is much better to hire people who can easily map with the values and practices that you want to have in your company (perhaps they don’t exist yet) and invest to ramp up their knowledge as fast as we can inside the company.
This is why I think the mentor figure is key. Someone that can help new people to navigate in what to learn and how is the company, its culture, its people, someone to talk with, to explain your problems and to try to find advice.
Mentor work
This is not a 100% time role in general, it is a work that senior people need to do to help new members to learn faster. Perhaps it could be a 100% role if the number of seniors is so reduced that you need one person for a lot of people.
This is not a work to be done forever, the mentee and the mentor need to agree on what the mentee need, we have to evaluate the relationship frequently and understand if the mentor still can help.
At least in my experience when I have been a mentor the work is extremely satisfying when you see what others achieve, when they are recognized with a new role or when they start exposing themselves on talks or conferences, or just when you realize that they know much more than you about something.
When I have been the mentee, I appreciated the time my mentor lasted with me. The things that taught me, they have opened me new doors, perspectives, etc.
I will always remember my first mentor, who taught me TDD, he changed my perspective of how to do software.
Mentee work
When we have mentors inside the company, as we (mentee) don’t pay them directly, we don’t give enough value to their time.
Mentors are just volunteers, they want to help, use that person as much as you can, but try to be conscious that their time is also valuable, he/she is expecting to use that hour with you in your benefit.
Mentee need to push for using as much as they can the knowledge of the mentor, don’t ask for a mentor if you are not interested in the effort required to learn.
Not everyone can help mentee in every situation or learning path, so mentee needs to find the correct mentor in each situation.
What to mentor?
How good you are learning is in my opinion the differential factor, so this is one of the key parts I try to explain when I’m playing a mentor role.
A mentor need to be better than an Udemy Course, we are not competing with online courses to teach a technology.
In my opinion, a mentor is more interesting when the mentor helps mentee to understand what is important in that company, who is the person to talk when this happens, what are the things you need to learn to improve because of the feedback you received.
Mentee need to decide in which areas the mentor will help him/her. In fact, the mentor in this relation is serving the mentored. But also the mentor needs to put light in the darkness when mentee doesn’t see what it is needed.
Languages, technologies or frameworks are important learns but ephemeral, you will use them some moments during your career. Software changes a lot and frameworks will change, so you will need to adapt to the next.
How good you are learning new things is key, so in my opinion a mentor needs to help you on teaching principles, values, practices that will remain with you forever, things that will help you to learn faster.
Some of the things that have helped me to learn faster are described in this article.
Why be a mentor?
In my case, because I have discovered that I like to see others growth, it’s a volunteer work, but it helps you also to create a network of people that can help you in the future.
Being completely selfish, you help them, so they will help you in the future when you need someone to talk or to receive good advice, they will be there 90% of times.
Apart from these selfish motivations, being a mentor has helped me a lot to create arguments, to convince others, to understand how people think, to listen actively to others.
It’s a great opportunity to exercise your influence skills.
You could think this is a minor thing, but in fact, influence is one of the things that will help you more to achieve your goals.
As a wrap-up, I really like the mentor-mentored relationship, companies should cultivate it.