The hiring process for software engineers is complex and time-consuming. At the end of it, your company has a new hire with high salary expectations who might take several months to reach full productivity. You could spend many hours and thousands of dollars for each addition to your team, only to find they’re a bad fit — or even that they want to move roles again.
You’re probably thinking that there has to be a better way, and you’d be right to think that. We’ll get to it, but first, let’s look at how we got here in the first place.
There’s a shortage of engineers
Engineers are in short supply and the situation is getting worse, not better. The USA had nearly a million unfilled IT positions in 2019 — and that was in the days before Walmart was offering to pay for college to attract shop-floor workers. And in the three years to 2019, US employees filled just 60% of their vacant tech roles — compared to 120% of roles across the job market.
Unlike Walmart, there’s no shortage of applicants for US engineering jobs. On average, 43 people apply to each open position. The problem is the shortage of qualified applicants. Companies need software engineers with project- and domain-specific skills. They’re hiring for blockchain engineering, sifting through applicants to find someone who can write Solidity, GO or C##. Or they’re hiring for a cybersecurity expert position, looking for technical skills plus practical skills plus experience.
Companies are walking a tightrope on the issue. Hire an incompetent cybersecurity software engineer and your firm could lose millions from a data breach; 60% of smaller companies close within a year of a breach. But if you don’t hire anyone you remain unprotected. It’s the same for every specialized engineering role. A 2019 Gartner report listed the shortage of engineers as one of the top five risks facing American businesses; 63% of executives agreed.
The process of hiring engineers is long and expensive
It takes longer and costs more to hire tech staff than almost anyone else. The engineer hiring process is long, expensive and uncertain. The average time to hire tech staff is 66 days, compared to an average 43 days across all roles; for software app developers, it’s 81 days. That’s nearly three months. And the average cost for a new hire is over $4,000.
Once staff are hired, there’s an onboarding ramp before they become fully productive, and it’s the site of a major disconnect. The average onboarding process for a new software engineer is a week. But the average time before a software engineer becomes productive — that is, until they begin to contribute more to the business than they cost — can vary between one or two months and a year or more. The average is eight months, and recommendations vary between a few weeks and a few months, though a quarter of companies say they have no onboarding process at all.
Complex hiring process
Part of the issue is that interviewing for developer hires is longer and more complex than for other hires. It’s commonly more costly too. For instance, it’s common to move on from initial interviews that last about 40 minutes, often coupled with simple technical tests, to a shortlist of potential hires who may then be asked to complete a half-day or full-day coding challenge.
The coding challenges has several advantages from the employer’s point of view. It lets you identify engineers whose actual work surpasses their portfolio. It gives you insight into the way an engineer solves problems, which might include solving the challenge in an unconventional or unexpected way. Above all, coding challenges test for the skill you’re trying to hire for, in an environment that many developers find more comfortable than a formal interview setting.
Ideally, the questions posed in coding challenges should be real, based on problems our business is actually trying to solve, rather than complex trick questions. You want to test for the capacity to deal with real issues, not to jump through arbitrary hoops.
Coding challenges are a necessary part of hiring an engineer, but they’re time-consuming. Candidates who undergo coding challenges are doing work for you, and it’s only fair to pay them for that time. This can get expensive quickly, but the major expense is yet to come.
Salary expectations are high and rising
There’s also the issue of salary expectations. Software engineers have realistic salary expectations: that is, they know they have mission-critical skills in a sellers’ market and expect to be recompensed accordingly.
The US Bureau of Labor expects that by the end of this year there will be 1.4 million vacancies for engineers and 400,000 graduates to fill them. Developers therefore can expect to find high salaries. Web developers, among the less well-remunerated developers, could expect to be paid $69,000 or more in the US in 2020. The median annual salary for developers is $114,057, though this differs based on role and location.
In key locations in California, companies can expect to pay a premium of up to 41% for developers, with similar increases for Boulder, Colorado (19%), Stamford, Connecticut (31%), and many others.
Entry-level software developers in the bottom 25th percentile of pay make a median $97,250, while those in the 95th percentile earn a median $165,000.
As well as being high already, salaries are also rapidly increasing. Tech salaries are rising at about 3.5% per year, but for developers, as for other specialist roles, the rise is likely to be much more rapid.
In the year of 2020, data scientists saw a 12.8% rise in salary, cybersecurity engineers a 4.3% rise, and DevOps engineers a 12.2% rise. Even these jumps in income, each representing tens of thousands of dollars a year, are dwarfed by the 16.3% growth in cybersecurity analysts’ salaries.
Despite salaries and perks, many engineers plan to move
Despite large salaries and rapid increases, 31% of people in tech roles were dissatisfied with their salaries in 2020, suggesting that both additional financial rewards and other benefits must be offered to attract and retain suitable candidates. When they come in for an interview, 79% are as likely or more likely to negotiate salary compared to a year ago.
Developers and engineers expect market-beating benefits including paid time off, medical coverage and more. In the US, 68% of companies hiring for tech positions offer medical insurance, 63% offer paid time off, and 59% offer dental insurance. In addition, 36% offered a casual dress code, 25% offered the flexibility to work remotely and 21% offered a signing bonus, in addition to perks like free gym membership (12%) and daycare (8%).
These enticements were still not sufficient to retain engineers once hired. Nearly 33% of new hires start looking for a new job within a year of being hired; more millennials do this, and they start sooner. This is among people who often have not yet reached full productivity, and if they do leave, the cost of replacement is likely to be around 21% of their (likely substantial) salary.
A readymade team
When engineers are this expensive, and it’s difficult to train them to full productivity, it’s tempting to look for an alternative. In addition, many projects have a ‘big head and a long tail’ — engineers are needed for intensive tasks like building an app, but the company’s IT requirements are then much less. Hiring and onboarding new engineers for a project that might actually be over when they reach full productivity, and who will then sit on payroll when you don’t really need them, isn’t the best idea; neither is hiring developers on short-term contracts, since this tends to result in less devotion and productivity, and poorer-quality code.
What companies really need is a ready-made team of engineers, DevOps, project managers and other IT pros who are already productive and whose skills are available as needed. Outsourcing can answer this need, but it has to be done carefully. Many outsourcing software companies deliver the shortcomings of short-term hires — they care less, and it shows. Sometimes they advertise themselves as experts in fields they lack real experience in. And often they’re not as good as they could be at working with your team or adopting your values.
The solution is to look for an outsourcing company that can act as a long-term trusted partner, offering specialized roles and skills as needed while having a stake in your continuing success. This kind of strategic relationship can be both stable and flexible, and it offers a business the best of both worlds. That’s why it’s the kind of relationship we aim for with our clients. For instance, after we built and released Cambridge Mobile Telemetrics’ Safest Driver app, we continued to work alongside them to support their IT needs, as a natural extension of their in-house team and as a consultation partner.
- Hiring engineers is a time-consuming, expensive process with uncertain results
- Even great remuneration packages don’t guarantee new hires will stay with you
- Most projects don’t last as long as it takes to fully onboard a new engineer
- Engineering and development requirements shift in shorter timeframes than hiring and onboarding allow for
- Outsourcing can be fraught, but working with a long-term trusted partner can improve results and cut costs significantly