Why is it hard to find and keep good software developers?
3 min readNov 28, 2019
- There aren’t many good software developers — There is a huge demand for software developers and not enough supply. You start with a really high expectation from the candidates and you expectation keeps going down as you interview more and more candidates.
- Not so good developers have no opportunity to realize they aren’t good — Since there such high demand, most of the developers find jobs very quickly. They don’t the get opportunity (I call it opportunity because if you are not getting a job because you aren’t good, you would need to drill down to the reason why and may be work on your skills) to realize you aren’t good.
- Startups and small companies can’t afford good ones — Startups and small companies struggle to pay the expected salary for good software developers. Good developers know their value in the market, they know there aren’t very many good developers so they ask for more.
- Bad interview process — Even if you have enough money to afford a good developer, you may end-up hiring a bad one because of bad interview process. I have a lot to say on bad interview process so may be I will create another post for that. There are two most important thing to know when hiring developers. Number one is “dont go by how well the candidate talks and well they answer your fixed questions, its easy to study for a week and answer most straight forward questions. Number two is “Ask questions on real life technical problems they could have faced and setup a good coding test(not white board test) that focuses on test, design, architecture and problem solving.”
- Bad recruiters sending bad candidates your way — Most recruiters don’t evaluate the skills of their candidate before sending them over to a client. They focus on the game of numbers. They will send you as many candidates as possible to increase the chances of you hiring one of their candidate. Recruiters also often ask their candidates to add skills to their resume for the job, even if the candidate hasn’t worked on those skills.
- Keep job description simple, do not post bad job descriptions — Good candidates can figure out from job description that your team or company may not be a good fit for them. Good developers want to work with other good developers and if they sense you wont provide it, they wont apply. Don’t put every technology in the world you can think of in the job requirement. Keep the job requirement focused on the most important skills you seek. When companies post such job requirements, there are barely any candidates who fit those and many find a need to tailor their resume to fit the job description.
- Have an aggressive in-house recruiting team that responds timely to candidate applications — Recruiter many a times take too long to respond to candidates and miss the opportunity.
- Good companies don’t post jobs based on the need, they are always looking and hire good ones when they find.
- Don’t take too long to offer when you find a good candidate — If you find a good candidate that fits your requirement, make an offer ASAP, don’t wait to interview more people in the hopes of finding better.
- Value your developers — Good developers won’t stay with you for long if they don’t get challenging opportunities and value.
- Provide resources to developers for training and encourage them to learn — Many companies don’t realize that they could get a much higher return on their developers, if they could just provide a subscription to a good training resources such as safaribooks or pluralsight.
- Provide mentoring — to developers who may not be as good today but could become a great resource with right direction and help.
- Change your quarterly/yearly review process — Focus the process on self development, learning and growth of the developers.
- Provide positive environment and encourage knowledge sharing — Provide opportunity and time for things like brown-bags and other platforms for sharing the knowledge.