Mentorship in Engineering Teams Is More Important Than Ever
Within the past few years, a strong job market and high demand for digital skills have made it easier than ever for software engineers to find new jobs, and many engineers have left for new opportunities. has followed a more general trend where employees have left and are leaving their jobs at record rates. More recently, economic conditions and high-profile layoffs within the tech sector have put more qualified talent into the marketplace. All of this churn has strained existing team members who have to fill tribal knowledge gaps and rapidly onboard new team members. This strain has raised questions about both talent sourcing and talent development.
In order to have a high-functioning engineering team, you ideally have a mix of experience levels with your intermediate and senior talent shepherding the more beginning talent in your organization. Many companies have pursued internal reskilling and upskilling programs to help meet the changing talent demands of engineering organizations. Engineers making this transition may be seasoned professionals, but they lack experience in the new technical domain. All of this places more demands upon the existing team and especially the intermediate to senior developers.
Purposeful Growth is Vital
Teams that expand too rapidly and without a mentorship or other plan for how they are going to mentor and grow their beginning developers, often start to experience problems like:
Burnout by project leads and top performers: having only a few intermediate to senior programmers means that the ones you do have are going to be overextended, overburdened, and unhappy.
Reduced velocity on projects (the inability to complete the same amount of work in the same amount of time): as senior engineers are taxed with helping others, they can’t contribute as much to the codebase. As their velocity decreases, so does the overall velocity of the team.
Reliance on outside vendors for business-critical features and functions: outside vendors can be excellent partners (and we’d like to think that we are one of them) but even with great vendor partners, companies usually want to maintain technical ownership over core business functions.
Inability to execute more ambiguous projects with higher degrees of uncertainty: ambiguous and ambitious projects require seasoned hands who know how to deal with the uncertainties and risks of a particular development environment. If those seasoned hands are spending a majority of their time grooming others, they may not be able to give these difficult problems the proper attention.
Beginners are given more responsibility too quickly and without a proper mentor-mentee relationship and experience: if beginners are asked to do too much and lack the right support, it creates more churn in terms of higher demands on QA, rework, and more peer review.
Reduced career opportunity for beginners: even the most ambitious and self-motivated beginner needs some guidance and support to reach the next level. If the support and a clear career path for professional development aren’t there, those high performers will seek out teams and environments where they do exist.
Mentoring Programs Can Help You Avoid Those Problems
Mentoring programs are a good place to start. For our purposes, a mentoring program refers to a formal understanding and defined relationship where a more experienced or seasoned programmer works with a more beginning team member to build their skill. These programs demystify the career development process by clarifying roles and responsibilities. They give beginners role models with the proper leadership skills necessary to develop and strengthen critical skills for their new role. Having a formal mentorship program provides them with a clear path for how they should be developing. They also uncover, validate, and value the often ‘hidden’ work that mentors do.
The mentoring relationship can take many forms in relation to professional development. Examples might include: managers mentoring direct reports, peers mentoring peers, teams mentoring other teams, or consultants mentoring team members. In any case, the important thing about the mentoring program is that it’s strategic, scalable, flexible, and meets the needs of your team. Here are seven things to keep in mind as you start building out your mentoring program.
How to Get Started
Figure out what problem you are trying to solve
It may be that you simply need developers or a team that can build features, reduce technical debt, and draw down your backlog. If this is the case, your best solution may be to bring in an embedded team member in more of a staff augmentation capacity. If you want to look at this as an opportunity to build your team for the future or if your company wants to do its own feature development, then it’s probably time to invest in an upskilling, reskilling, or mentoring program.
Find out what’s important
Interview team leads and team members from across disciplines. Are the team leads spending too much time reviewing code and not enough time shaping the direction of the project? Are team members having difficulty following best practices consistently? Is the code being deployed too buggy? Are designs not being implemented faithfully? Taking a moment view your day-to-day operations from a different perspective can help identify where the team is having issues which in turn can increase the likelihood that the mentoring program will be effective.
Use this information to determine a clear focus for the program. The goals do not all need to be quantifiable, but they should be measurable, visible, and important to the team. Maybe the focus is on increasing the team’s velocity. Maybe it’s making sure the team writes good tests and writes testable code. Maybe it’s about increasing the consistency of the team’s coding practices.
Structure a plan
Define what specific activities the mentor (or mentor team) will do to help grow the skillset of the team so you can ensure you have the right mentor for the job. Consider activities that will be scalable, repeatable, and consistent. While there may be some more formal training needed, the purpose of the mentoring program is to drive change through consistent follow-up and follow-through with the team members.
Get to work
Implement the agreed-on mentoring activities consistently and predictably. Make sure team members know what’s expected of them during the mentoring activities and make sure the mentor consistently follows up and works with team members to drive best practices.
It’s worth noting that coding excellence and technical acumen do not automatically make you a good mentor. While many senior developers are great mentors, it’s important to recognize that mentoring is a unique and specific skillset. Look for team members or partners who have a passion for developing others and who also understand how to bring them along.
Take care of the culture
While most beginning developers crave mentoring relationships, it can be difficult to invite a stranger into your problems and to feel comfortable sharing challenges. So, it’s important to build a culture where curiosity, transparency, and authenticity are encouraged. This makes it easier for the team to feel comfortable with the trusted advisor and for the mentor to drive value.
Return to the goals you defined in the discovery period. Is the team making progress toward the goal? Has the mentoring program had the desired impact?
Learn and adjust as you go
It’s important to continue evolving the program to meet the team’s needs and retain employee engagement. For example, maybe the team progresses more quickly than anticipated with regard to one of the initially defined metrics. Adjust course—like taking an Android or iOS bootcamp, and find a new focus to continue driving forward.
The Ranch is Here to Help
If this all seems too daunting to take on, then don’t worry. Our Corporate Training service can help put your employees in a great position to not only advance their own professional growth but help bring up others around them. Get in touch and let’s chat about the best fit for your company.
Big Nerd Ranch
Eric joined Big Nerd Ranch in the spring of 2019 to lead the training initiatives and brings a wealth of experience in both training and consultancy work.