Why are good Software Developers hard to find?

The supply and demand for great software developers, engineers and programmers have never been as out of sync as it is right now.  The relentless march of new technology will only exacerbate this lack of equilibrium further, and more than one million unfilled programming jobs are predicted by 2020 (precisely what that refers to can be hotly debated, however)

This talent shortage and the laws of Economics has meant that tech salaries for top roles have grown substantially and that companies often have to pay more for top developer talent.  Subsequently, there can often be a knock-on effect in that competition can poach that talent just by offering a higher salary

All types of companies now need developers to help them grow, especially Start-Ups and IT workers are now the second hardest group of professionals to recruit and finding engineers, developers, programmers, DevOps, Data Analysts and Mobile developers is only going to get harder

It may seem that great developers are impossible to locate – that they’re never actually on the market as they don’t need to be.  They don’t apply for jobs and often have so many recruiters hot on their heels that they can pick and choose the perfect role. 

So what can you do in this seemingly impossible scenario?

If you’re in a company who is looking to hire great software developers – the ones with a range of experience who

  • write good code accurately and fast
  • try out new languages and never stop learning
  • have an in-depth knowledge of computer science in general
  • communicate well at all levels
  • have had architectural success
  • have learnt enough through failure to know what works
  • bring a level of innovation, creativity and ideas to the table

 . . then you’ll know how hard it is to find and persuade quality developers to join you

So if there is a dearth of devs out there - what can you do to recruit? If you focus on the following areas, you may well improve your hiring chances

  1. Pay more!  Are you as competitive as you think?

If you’re not paying the market rate, then you’re going to struggle.  If you’re paying over the market rate, you’re likely to succeed at least in the short term (although companies that pay very well may be hiding certain shortcomings). 

  1. Determine what a ‘great dev’ actually is for your company

Good developers ARE looking for work out there – but would you recognise them if you saw them?  How are you filtering out the good from the incompetent? 

Are you missing out on great candidates by using standard coding interviews that aren’t appropriate or using actual real-life situations that properly test them?

Do your hirers rely heavily on keywords and run the risk of eliminating good candidates because of their own limited experience?

Are there elements of unconscious bias in your interviews? Are you hiring the same type of people consistently to fit your culture? Alternatively, are you looking for trendy young devs and overlooking the more mature candidates? Do you always look for big brand experience or certain universities, degrees or grades?

If so, it’s time to widen your net and focus on the skills,  aptitude and eagerness to learn instead

Great IT teams are often those with the most varied mix of people and range of experiences and that range will greater reflect the background of your customers too and may even help with innovation and UX

  1. Offer Fast and offer well!

If you’ve found the perfect candidate and they seem interested then DO NOT HANG AROUND!

Get your offer to them straight away.  If they’re excellent quality candidates, they’ll be interviewing elsewhere, and other companies will think they are good too and make an offer.  You’ve got to beat the competition, and a delay may lose you the candidate you love

Think about pre-closing your candidates – how does the role fit with their motivations and salary expectations – do they need anything else to consider an offer such as an additional meeting with you, a member of the team or another member of staff?  Moreover, if they decline your offer ensure that you find out why and try to resolve any obstacles to success in the future

  1. Hire for potential not a combination of rare skills

If you’re looking for someone who matches the exact skills that you need right now, you may be sorely disappointed, especially if those skills are somewhat rare.  Try to be flexible as to whom you’re looking for and focus on the right attitude and skillset above all else (or ability to learn new skillsets). Don’t focus on hiring only ‘the best’ but look at how you can help your team flourish to become the best

Think about how you search for candidates too.  If it is in the same way as everyone else then you’re going to be continually fighting the talent war – try something different occasionally – from different marketing techniques to sourcing from unusual places and don’t rely on the cv or resume only.  A candidate may be a great programmer, but an inferior cv/resume writer – the two skills don’t always go hand in hand, and real skills may often be hidden

  1. Remote working

You will undoubtedly attract much more attention if you can allow at least a degree of flexibility into your working practices.  Top devs are often only interested in remote work, and yes it is great to have the team altogether, and at certain times essential, but with video conferencing, Slack, Trello etc. it may be time to modernise the way your working practices

  1. Is your current team thrilled to work for you?

Hiring good developers is much easier when your team has an excellent reputation and is the type of environment people want to work within.   Be sure to publicly show in your marketing how you’ll recognise talent and treat staff

If you’ve got a great company culture and reputation, then quality software engineers and developers who are motivated by working in a positive environment and who want to be proud of their work will join you.  The team and actual work is much more important overall than any other perk or often even the pay

  1. The candidate perception of your brand or market

Some companies or markets may not typically be thought of as exciting tech areas to work in, but sometimes this is far from the truth, and an area like finance or healthcare may lead the way in innovative technology.  If this is the case, then you need to ensure that your marketing message is getting out there.  There may be many more advantages to working at the forefront of AI and VR at a healthcare company than at Facebook or Amazon – but you’ve got to make it clear

If you don’t have an excellent reputation (yet) or are a startup, then it is undoubtedly going to be harder to persuade someone who is well paid and happy to move from where they are currently.  It may become a numbers game where you have to kiss a lot of frogs and screen many candidates to find the talent you need

  1. Are you revealing enough about the job to candidates?

Marketing a developer job is not about trying to highlight the PlayStation and the free fruit but about what can be learnt on the job, what the team and company are going to be like to work for, why you need their help to meet a particular challenge and if the product or service exciting or meaningful

  1. Improve your recruitment process

Try to use a recruiter who fully understands the role – guide them through it in detail if necessary.  If they have no choice other than to work using keywords, then you may well miss a great candidate because their cv or resume is written differently. 

It is just as key that the manager understands whom they need for the job – do they understand the problem and what it takes to fix it?  Is it as challenging as they think or could someone more junior tackle it? If you try to persuade a senior developer or someone with the wrong background to take the wrong type of role, they will lose interest or may just be clueless

Your interviewing process has to be a great experience even for those who don’t succeed or decide to go elsewhere.  Be careful whom you screen out – especially accidentally! A negative experience can change what seemed like a great job opportunity into a no-go scenario for a good candidate. 

Your interview process is where you get to sell the role and highlight how it fits the candidate's motivations.  You must be genuinely interested in finding out more about the candidate and ask meaningful questions about their experience and the issues that they’ve have solved in the past - show that you value them

Steer clear of tests that don’t work in reality such as puzzles, whiteboard code tests, Big O notation or tests that cover odd language questions that no-one would ever need.  Focus more on actual live issues and maybe pair program to work through them or ask for input, code samples, paid project assignments, portfolios, blogs, publications or talks they have given at Meetups

Good developers DO leave their jobs

Sometimes hiring can be a case of the right offer at the right time.  If your job ticks all the boxes and arrives at a time when the potential candidate is not having the best of times, and you offer exciting, challenging work – maybe with a promotion and  a pay rise – then that dream hire may be yours at last

Added 16-Dec-2019