As a leader, you want your development team to be successful both now and later. But that can be hard to balance when hiring software developers. Should you look for developers with the technical aptitude to develop the right skills in the role? Or should you invest in hiring developers who already have the skills?
Hiring for technical aptitude vs. technical skills
The U.S. Bureau of Labor Statistics projects that software developer jobs will increase by 31% between 2016 and 2026.
Source: US Bureau of Labor Statistics
This means the competition for skilled and experienced software developers is only going to increase. When should you recruit this increasingly-sought-after pool of developers—and when should you look for people to grow into the role?
When you should hire developers with the skills you need right now
Building a software application is like building a house. In order for the frame to be raised or the plumbing to be installed, someone first needs to build the foundation. And if the foundation needs to be redone, it throws off the timeline and budget of the entire project. To avoid setbacks, you hire specialists for each part of the process—such as plumbers or carpenters.
Software development is just as specialized. At the end of the day, buggy or inoperable code produced by one team member can destroy the productivity of a team—and potentially the entire product they’re building. This is why hiring a skilled developer is critical.
So when should you hire for skills?
- You need to fill a specific role on a team.
- You want to make your team more efficient.
- You want to avoid technical debt.
You need to fill a specific role on a team.
Go into any auto mechanic’s workshop and you’ll probably see twenty different screwdrivers. Why so many? Because each job requires the right tool. Now imagine if each one of those screwdrivers required specialist knowledge to use correctly. Then you can begin to understand why hiring for skills is important in software development.
Each programming language has a stack of different technologies and tools. On top of that, there are different functions you can use those languages for. Python is a language that can be used for both machine learning and web development. Still, a web developer who knows Python wouldn’t be able to join a machine learning project without developing a number of new skills such as Tensor Flow, NumPy, or PyTorch.
So why couldn’t you just upskill a new developer after they’re hired?
It’s more efficient to hire a skilled developer.
A study by Oxford Economics found that it takes 29 weeks for a new hire to reach optimum productivity in IT and tech. This is, of course, aggregate for the entire sector, which includes both developers who come with the right skills and developers who need to be brought up to speed.
The more skills the developer brings to the new position, the quicker they can be brought up to the point they produce the value their salary reflects. It also means that the rest of the team can sooner get back to their own work instead of having to bring their new colleague up to speed.
Unskilled developers create technical debt.
A software developer’s output can be positive or negative. For most jobs, there’s simply lost opportunity cost if the employee can’t perform up to the required standard. However, hiring a software developer with the wrong skills can cost a company more than disengagement or leaving the position unfilled.
A developer without the right skills won’t be making positive contributions. In Frederick Brooks’s seminal work in the field of software development efficiency, “Mythical Man-Month,” the author posited that software development requires expertise as well as time. In other words, in the same way nine women can’t make a single baby in a month, nine mediocre developers can’t match the output of one great developer. Instead, they can either write code that nobody understands or add bugs to the code that need to go back and be fixed. This is called technical debt—and it can destroy a project if left unchecked.
How to check if a developer has the right skills for the job
Just because a developer says they understand a particular tech stack doesn’t mean that’s a true statement. Work sample coding tests provide a lean way to find out if a developer has the exact skills you need for the open position.
When you should hire a developer based on technical aptitude
With the developer hiring market being what it is, the people who have the exact skills you need are difficult to find. And when you do find them, they’re expensive to hire.
Even if you do find the perfect developer to fill the immediate position, technology isn’t a static thing. There are new tools, technologies, and programming languages being created all the time.
So when should you hire for technical aptitude?
- The skills you need don’t exist on the market.
- You’re looking for nontechnical skills.
- You want somebody who can be flexible.
The skills you need don’t exist on the market.
Technical skills are highly specific—and sometimes you simply can’t find those skills on the market. Instead, you’ll need to develop these skills in your organization. That’s why it’s essential that new hires have the technical aptitude and cognitive ability to develop new skills and adapt to the technologies you use.
One way to do this is with an internship program. Joel Spolsky, CEO of Stack Overflow, is a strong proponent of this method. He recruits interns from some of the best computer science programs and then finds those with the greatest technical aptitude. This gives him the first pick of some of the best emerging talent. In these cases, it’s important to hire based on what they have the potential to do rather than the skills they bring to the job.
You’re looking for nontechnical skills.
Some of the most skilled software developers are interested in code and code alone. But when you’re looking for someone to be a team leader in the future, it’s not enough to be good at coding. They also need to have an aptitude for developing communication and project management skills. In these cases, it’s important to see if a candidate has the aptitude to develop these leadership skills on the job.
You want somebody who can be flexible.
Some companies simply have a number of disparate problems and challenges that need solving. In these cases, they may not need somebody with a specific skill as they don’t know all of the skills or technologies they’ll need in the future. An aptitude for adaptation, taking on new challenges, and a cultural fit becomes more important than specific skills.
Hire a developer with the right skills and aptitude.
To truly get the best developers, you need to balance your current and future needs. A great hire now may not be a great hire down the road. And there may be times when you need a developer to have a pre-existing set of skills. When hiring, consider which skills are needed now and which you’ll need down the line so you can make an informed hiring decision.
Use talent mapping to hire strategically.
First, what is talent mapping? A developer who wants to work in machine learning first needs to develop their Python skills, and then specifically a library like TensorFlow. Of course, relationships aren’t completely linear and they can also move laterally. A Python developer is one step away from machine learning if they pick up TensorFlow, but they’re also one step away from front-end if they learn Django, another Python library. A talent, or skill, map visualizes the skills the candidate already has as well as the adjacent skills.
By mapping the skills of your candidates (internal and external alike), you can strategically hire with an eye on your current and future needs. In these cases, hire a person with the skills you need now (i.e., front end) and the aptitude and cultural fit to make a strategic jump in the future to areas you might need (i.e., machine learning).
Where to go from here
In summary, there’s a few easy, actionable steps you can take when hiring your next developer:
- Figure out which skills on your wish list can be taught and which cannot. This will let you know whether or not it’s worth hiring for skills.
- Use talent mapping to expand your candidate pool. By reaching out to candidates with similar (but not exact) skillsets, you give yourself more options for a great fit.
- Use cognitive and behavioral testing to find hidden gems. Sometimes a candidate has huge potential but doesn’t know your specific tech stack. Cognitive and behavioral tests help you find these candidates.
The economics of software development means that most of the time you’ll need to find somebody with a skill set that matches the role you’re trying to hire. But in order to continue to get value out of that employee, you’ll need somebody who has the aptitude to move to new technologies and projects after the one you hired them for is over.
Tom Winter is the CRO at Devskiller, a developer screening and online interviews in one platform powered by RealLifeTesting™. Madly in love with everything tech, Tom specializes in streamlining the hiring process of tech talent and data-driven recruitment. He’s also an avid conference speaker.