When it comes to hiring software developers, there is a common misconception that senior developers are always the best choice. While it’s true that experienced developers bring a wealth of knowledge and expertise to the table, it’s important to remember that junior and mid-level developers have their own unique strengths and advantages. In fact, there are several reasons why exclusively hiring senior developers can actually be detrimental to your team and your company as a whole.
Many articles try to convince organisations to hire juniors, but when shouldn’t you hire a senior?
What even is a senior?#
“Senior” is a term that has lost most of its value. Thanks to an inadequate pipeline, it’s common to fast-track developers to senior titles to entice them to stay in the organisation. For the sake of this article, I’m using “senior” in a more traditional context that also includes titles such as Staff and Principal Engineer.
Senior software engineers are generally expected to have a deep understanding of software architectural principles. A critical aspect of their roles is designing and developing complex software systems. In particular, senior software engineers should have a solid understanding of modular design principles, separation of concerns, scalability, maintainability, and performance.
In addition to their technical knowledge, senior developers are expected to be able to make informed decisions about the best architectural approach for a given project, taking into account factors such as the requirements, constraints, and trade-offs involved. Furthermore, they should be able to communicate their decisions effectively to other members of the team, including junior developers, and provide guidance and feedback on the implementation of the chosen architecture.
So, it sounds like seniors have superpowers; why wouldn’t you want teams full of them?
Simple tasks may demotivate senior developers#
There is a common expectation that senior developers will produce better code and that even mid-level developers will make too many mistakes. Once a developer becomes senior, however, their focus pivots from simple problems to architectural thinking. Giving a senior engineer nothing but mid-level tasks can be demotivating, increasing the likelihood that they’ll leave.
To make matters worse, there are so many aspects to application development that someone who has been senior for many years may be rusty with less-senior tasks. This means that a mid-level developer has the potential to produce the same quality of work in less time because the required skills are still front of mind. By allowing senior developers to focus on higher-level tasks, you can keep them motivated and engaged.
This isn’t to say that seniors are above performing certain tasks, only that they need to be challenged to maintain their engagement and job satisfaction. They often have a wealth of experience and expertise that can make simple or routine tasks unstimulating. They thrive on solving complex problems and developing innovative solutions that push the boundaries of what is currently possible.
Engineers want to be challenged#
Software development is tough. It requires a high level of technical expertise and knowledge gained from many years of continual learning. There is an endless list of domains to understand, and technology is constantly augmenting. Anyone who makes it to the senior ranks thrives on being challenged continuously and enjoys learning new things. Providing engineers with challenging and meaningful work that utilises their skills and expertise is crucial. For senior engineers, this could involve working on high-level architectural designs, complex algorithmic problems, or cutting-edge technologies that require a deep understanding of the underlying principles.
If your organisation doesn’t have enough of that work, hiring senior staff is going to make everyone unhappy. It takes many years to become a mid-level engineer. They’re skilled, and they’re more likely to be excited and engaged by the tasks you have for them. Any areas where your mid-level developers are less skilled than your seniors should be considered an opportunity, not a concern.
Mentoring as a form of engagement#
Senior developers should be given opportunities to mentor and guide junior and mid-level developers. This can be an enriching experience, as they can share their knowledge and expertise with others and help to shape the next generation of software developers. But, of course, this means you need to hire junior and mid-level developers.
Furthermore, working with junior and mid-level developers can also help senior developers stay engaged and challenged in their work. By guiding and mentoring others, senior developers may be exposed to new perspectives and ways of thinking that can help them continue to grow and develop their skills. One thing I love about people earlier in their careers is that everything is new, so they’re trying out features and reading documentation. It’s gratifying when the mentor/mentee relationship flips as a junior casually does something you’ve never seen, not realising everybody else doesn’t already know about it.
Junior and mid-level developers can bring fresh ideas and perspectives to the team. For example, they may have a different approach to problem-solving or be more familiar with new technologies and trends. By bringing in new talent, organisations can help to foster innovation and growth.
Underutilisation can lead to turnover#
There are many reasons developers have a reputation for changing jobs frequenctly, but one reason is that they tend to be underutilised. Small businesses are biased toward senior-only teams, regardless of the complexity of the problems they are solving. Large corporations hire too many engineers as a vanity metric without considering how to maintain efficiency across teams, so senior engineers often get bogged down in company politics. By leveraging the strengths of junior and mid-level developers—and ensuring you don’t lose that scrappy startup mindset as you scale—you can ensure that your senior developers can focus on tasks that require their expertise and experience. This can help keep them engaged and motivated, reducing turnover risk and promoting a more efficient and productive team overall.
While senior developers are essential to any development team, it’s important to remember that they are not the only option. By investing in junior and mid-level developers and leveraging their unique strengths and expertise, you can help ensure a well-rounded and productive team better equipped to tackle complex projects, drive business success, and minimise domain knowledge walking out the door.