How We Built a More Balanced Technology Team Using Data & Evidence
Half a decade ago, Normative’s technology team decided the only way to deliver software at the quality we demanded was to hire senior developers only. Looking back now, it was one of the biggest mistakes our team ever made. Some of us knew it was the wrong decision; some of us didn’t know any better. But our team dynamics didn’t support speaking truth to power, and the loudest voice in the room won.
Shortly after that decision, Normative underwent an intentional shift in its product-market fit and we found ourselves in a position once again to hire more broadly. We started hiring more junior and intermediate candidates but they generally had experience in the industry and were able to fit onto projects in a sink or swim manner. While this created a more balanced team, many of us without direct mentorship grew unintentionally and in a crooked manner based solely on delivering our work at hand.
Test & Learn
Almost two years ago we started hiring developers straight out of bootcamps. We knew these candidates would be quite raw as developers but were motivated to build their skillset quickly. Developers coming out of bootcamps have practical skills not typically found in a CS graduate that allows them to hit the ground running. They are often on their second career and bring their own unique background and experiences to Normative.
Knowing that the incoming developers needed intensive training on our specific tools and processes, we designed a series of practical exercises that tightly aligned with the type of work we were doing. Developers used online learning tools and documentation to get through the exercises and had a mentor for pair programming and code reviews as needed. This worked well for a short period but the exercises were not very engaging and it’s hard to design good learning material off the side of your desk.
The motivation behind the exercises is that developers build experience by working through new problems, and the more experiences they have, the more they can pattern match to other kinds of problems.
Our test had underwhelming results and we knew we needed more engaging ways to train developers. So we started pairing them with mentors on real projects instead of waiting “until they’re ready” and we started seeing explosive growth in both hard and soft skills.
By putting junior developers on real projects one of the first things we realized is we already have 90% of the tools we need for effective mentorship. Any team worth its salt already leverages pair programming and code reviews to create high quality software. With these tools, development teams have a superpower that shouldn’t go to waste.
These processes not enough of course. They only facilitate the flow of direct mentorship. The other 10% is a team effort. Managers, career pathing, gaps training, cross disciplinary experience and everything else that goes with being fully engaged at work. There’s way more to a developer than solving code-level problems, and we’re very fortunate that Normative gives developers the breadth of experience needed to be well rounded.
Applying Normative’s Values
One of Normative’s core values is “Directness and Transparency Even Over Comfort” and our ability to apply this to existing tools is where the program shines. Creating an environment of psychological safety and trust is key to getting the most value out of the mentorship relationship.
There is a balance to be struck between autonomy and getting the feedback juniors need to be challenged. Without the mentee's trust, the mentor won’t feel comfortable giving verbose feedback, or challenge the mentee to explore new approaches, and won’t be able to expose them to many new concepts in a short period of time. The mentor is fully invested in the success of the mentee and it’s felt clearly by the mentee.
There are many valid reasons to build a balanced development team ranging from the cost to the business to developing diverse perspectives on our work. One of the main things we noticed after we put juniors on real work is that while mentorship is a significant time investment for mentors, it actually makes the mentor more effective overall as they can focus on high leverage tasks.
What might be a boring task for a senior developer because they’ve done it a hundred times could be a new and exciting experience for a junior. Seniors are also well-equipped to teach the concept behind that task since they have deep experience with it. On the flip side, when the junior reviews the senior's work, they may have little knowledge of it and can ask questions to build their own mental models. Good questions and feedback force developers to consider their approach and forces them to communicate their ideas effectively.
Keeping it Going
We’re a few years into this and we have the evidence to show that direct and intentional mentorship accelerates the growth of developers. This means we can keep the programming going, but we’re still missing some key indicators that would really show us this approach has been successful.
First of all, we want to see our developers stick around. Although it is rewarding in its own right to help a developer reach the next stage of their career, it would be great to see that next stage happen at Normative.
Second, we want to see a mentorship loop that feeds into itself. We want the developers who most benefited from mentorship at Normative to help others do the same by becoming mentors themselves.
It could take another half decade to see that loop close but if we’re successful we’ve hopefully built a talent pipeline that is as rewarding as it is successful.