In my lifetime the job description of a programmer has gone from someone with a college degree to anyone with an aptitude for programming and a desire to learn. This has been great for a lot of people like me who did not go the traditional education route. Instead of college, I chose the “self-taught” route to programming.
The myth of a self-taught programmer
I put “self-taught” in quotes because very little of it was actually me teaching myself. Yes, some of it was “hey, I wonder what it will do if I do this…” but a lot of it was reading books (aka dead-tree blog posts), online articles, watching others at conferences, and applying what others had learned to the problems I had. In reality my programming education was “self-directed” not “self-taught” but self-taught is the accepted term so we’ll stick with that.
Along with all of the other resources, an important part of my education was the mentors I had along the way. It seems like at every major milestone in my career I can look back and find a mentor that helped me get there. I have had several different mentors in my professional career and none were any more important than the other. They were all critical in my development at the time.
Honestly, if any one of them had not stepped up when I needed them, I wouldn’t have made it this far. I am where I am because others invested their time in me, and they did it purposefully. I talked about this in a keynote I used to give called “Down the Rabbit Hole”. I discussed the fact that I owe a debt but that my mentors do not want to be paid, they want me to pay the debt forward. To pay my debt, I have to purposefully mentor others.
This debt of mentoring has a payback though. It has an ROI.
The ROI of mentoring
As I lead my team, I look for ways to mentor my junior programmers. I look for ways to help them understand not only the solution to the problem at hand but how it fits into the larger vision of the company.
Yes, I want to mentor them to help them develop the skills they need for the team and the company to succeed. Additionally, I want to mentor them to help them develop the attitude they need to succeed not only in this company, but in the role of developer in any company.
Mentoring for specific skills gives a short term–and short sighted–ROI. Yes, if I teach them how to use the Symfony framework, they will be able to complete the trello card I have assigned to them. This helps the company, and the developer now has a new skill they can list on their resume.
However, if I teach them how to find answers, discover technologies, and basically help them understand how to continuously learn then I’ve done much more. Continuous learning is the skill necessary to climb the ladder.
Mentored developers also have a tendency to stick around. One of the first teams I built, I hired a total of 13 developers. That was 15 years ago and 5 of them are still there on the same team (not in the same roles!). One of them was not even a junior dev when I hired them, they were a “wannabe”. I saw the potential and took the time to mentor them and to hook them up with other mentors and now they are senior developers/architects. The ROI for the company is obvious. They not only have a domain expert with solid technical skills in technologies they use, they have someone who is committed to the product, the team, and the company. That is valuable.
Not all developers are going to stick around for 15 years. Some will find different passions, others will decide that tech is not for them. Some developers will simply burn out.
Burnout is a serious problem in our industry because of the pressure to constantly learn, grow, and innovate. However, if you mentor developers, and you have your seniors mentor your juniors, you will find that the relationships that build will go a long way to preventing burnout. Your mentors will be able to see the signs of burnout early and work with the at-risk developer to change things up. Rescuing a developer from burnout is another ROI of mentoring because losing a developer costs more than just the delay in the project they were working on. When a developer leaves, knowledge walks out the door.
Mentoring on purpose
To realize the ROI of mentoring, you have to develop a mentoring program for your development team. You can’t leave it to chance and assume that it will happen.
This means you have to assign mentors. Every one of your senior developers should have a junior developer they have been assigned to mentor. It should be understood that it is part of their job to assist the junior, to be their sounding board for ideas, and to help them understand and learn.
Your senior developers should meet regularly to discuss their mentoring efforts. Not to gripe about the juniors, but to discuss tactics and strategies that have worked–or not worked–so that the seniors all learn to be better mentors.
As head of the team, you have to be flexible. Sometimes you are going to pair a junior developer with a senior developer and they aren’t going to “click”. Forcing them to work it out isn’t going to help the situation. You have to be flexible enough to admit that you made a mistake and shuffle the deck. Reassign juniors to other seniors and monitor things closely. You also have to make sure that it is understood that moving people around is not seen as a bad thing or as a failure by one party or the other, it is just something that happens.
To realize the full potential ROI of your mentoring program, you have to be diligent. You have to spend time on a regular basis monitoring it, evaluating its progress, and if necessary making changes. A mentoring program can’t be a “set it and forget it” program.
If you see that things aren’t working out, or that it begins to fall by the wayside as other things become a priority, it is up to you to make sure that both juniors and seniors take it seriously.
Mentor the Mentors
While you are thinking about mentoring, don’t forget to plan some time to mentor your senior developers. Not everyone understands how to mentor. You may need to mentor your seniors on how to mentor before they can be successful mentors themselves.
Either plan a course out that each of your senior developers go through when they take the job or find one on sites like Treehouse or LinkedIn Learning. Making sure that all of your seniors, regardless of their current status, goes through the same training will go a long way to helping provide consistent results.
As with your developer mentoring program, your Mentoring the Mentors program can’t be just a one-time deal. You have to constantly monitor each mentor, ensuring that they are making progress and that they are helping their junior developers along their career path. If you find someone who seems to be lagging, it’s your job to mentor them.
Mentoring junior developers and bringing them along in their career helps them and you. They get the education, training, and encouragement they need, you get a developer that knows exactly how you want software written. This means that you don’t have to re-train them to get rid of the development habits you don’t want; they never picked those up.
In the bigger picture, you are helping to raise up the next generation of developers. Look back at your career, find your mentors, and make sure that the next generation of developers have people like them to help them along their path.
Whether you’re looking for some temporary help or your next full time developer, let Gun.io help you find the right person for the job.