Why is Hiring so Hard? How to Improve Your Hiring Fortunes

--

You’ve got a backlog full of innovative product ideas that will transform your business results, but you just can’t hire people quickly enough to build and deliver your wondrous innovations. Hiring is so hard — finding good software engineers takes so long and requires so much effort… but it doesn’t have to.

61 percent of C-suite executives believe access to developer talent is a threat to the success of their business. Perhaps more surprisingly — as we mark a decade after the financial crisis — this threat was even ranked above capital constraints.

Stripe C-Suite Survey

As an organisation, there are a whole variety of levers you can pull to significantly improve the quality and speed of your hiring process and notably reduce the costs.

But the secrets I’m going to share with you are not magical pixie dust. If you want to hire top people in less time and for lower costs you need to think more holistically.

Improving your hiring fortunes is not just about optimising your hiring process, it’s about making systemic changes to your organisation. Though once you do make a commitment to changing your mindset, your hiring fortunes can turn around very quickly and that backlog will rapidly start turning into gold.

In this post I’m going to share the secrets with you — the secrets your competitors use to quickly hire the top talent you wish you could hire.

If you like the ideas in the post, then why not come and join me at Navico and help us to build a highly-innovative engineering culture and a brilliant place to work. We are right at the beginning of a new adventure, and this is a great opportunity if you want to be here from the start and build something special.

Contact me if you are interested or would like to know more.

Make Your Organisation Irresistible to Software Engineers

The easiest and cheapest way to hire good engineers is to let them come to you. You might think that you need to be Google, Netflix, or ThoughtWorks — to be an elite tech company — for the top talent to want to work for you, but that’s not the case.

There are many, often low cost and low effort, changes you can make that will have highly-skilled software engineers eager to work for you, with the side-effect of making your organisation a better place to work and improving your retention rate.

Tech Blog

Encourage your developers to write posts on a tech blog. Give them time during working hours to write about interesting challenges they have been working on.

Developers outside your company will get an idea of the interesting work you do, the technologies you use, and the top talent you have at your organisation. They will see you are a great company to work for.

Speaking at Conferences and Meetups

Encourage your developers to speak at conferences and meetups and give them your full support. They are raising your organisation’s profile, showing the exciting work you do and making your organisation a highly-desirable prospect for software engineers who want to work on the most exciting projects and with high-calibre people.

Creating and Contributing to Open Source Code

Show that you are a progressive company which values open source code. The top talent want to share their code with the worldwide developer community, and if you are creating open source code, they will want to work for you.

Companies that don’t have a github account showing regular open source activity are a warning sign to top developers — this company is highly bureaucratic and it’s probably hard for developers to do any interesting or innovative work here.

Make it Clear That You Treat Software Developers Extremely Well

Software developers are not interchangeable. Not all code is created equal. I cannot emphasise this enough. If you don’t code, please read carefully….

If you’ve ever been stuck on a project where changes take a long time and all your programmers desperately want to avoid working on that part of the system, it’s because the code is a mess and hard to work with — and that means your business is being held to ransom by low quality code, and there’s no easy way out.

You can’t achieve your business goals because the code was not created by skilled developers in an environment where they were treated well enough to create their best work.

To avoid this problem, you need highly-skilled and highly-motivated software engineers who are creating clean and well-maintained code that can be changed easily and quickly for the entire lifetime of that code.

To get to that stage, you need to treat your programmers well — extremely well. So well that they want to produce the best possible code, code that will be an asset to your business even after the software engineers who wrote it have left. It takes pride and being treated well for a software engineer to think that way.

You need to demonstrate the following (as a non-exhaustive list) to developers if you want the top talent clamouring to join your organisation:

  • Teams have the freedom to define their own processes and practices (if they feel pair programming leads to the best quality code, that’s their choice to make)
  • Teams are given business problems to solve, not forced to build solutions that don’t make sense
  • Developers have high-spec laptops and full permissions to install whatever software they need
  • There is a healthy work-life balance — people go home to their family on-time almost every day
  • There are plenty of learning opportunities during work hours plus an allowance for books, conference attendance, and other training materials

Through all forms of communication, reinforce the message that you treat developers extremely well and you can provide them with an environment rich in purpose, autonomy, and mastery where they can produce their best work.

Where I’m based in London, top-calibre engineers are in such high demand that if you don’t offer all of the above they will quickly move on to better companies, that’s if you can even hire them in the first place.

Increase the Talent Pool You Can Hire From

A big problem for many tech companies is that the pool of available candidates is unnecessarily constrained. I highly recommend you consider some or all of the following options to give yourself more chance of improving the quality and speed of your hiring process while reducing costs.

Don’t Hire for Specific Skills — Hire for Attitude, Mindset, and Potential

Smart developers can — and usually want to — learn new skills — especially programming languages. If you’re a Java shop, don’t limit yourself to Java devs. Encourage applications from developers from other backgrounds: Go, C#, Python…

Many of the foundations that enable high-quality code and continuous delivery are language agnostic. For instance, if a developer is passionate about writing high-quality unit tests and code that can easily be understood by the rest of the team, that mindset is far harder (sometimes impossible) to teach than the core Java skillset.

Build a Culture Where People Quickly Become Productive and Grow Rapidly

It’s a culture shock when you work at organisations that can take in junior or mid-level developers and quickly get them upto speed writing high quality code.

As a business, the economics of this type of culture should tell you everything. There is a bigger pool of candidates — it’s easier to find junior and mid-level developers, and their salaries are much lower.

Let me leave nothing to doubt: if you have a highly-collaborative software engineering culture, you can hire people much faster, for reduced costs, and they will be productive sooner.

The best thing is, this type of culture comes almost for free when you treat developers extremely well (as discussed previously). Caveat: it’s highly important that you recognise a senior developer’s job is to train junior members and acknowledge that their productivity will sometimes drop as a result.

Train People From Other Parts of the Organisation

When you build a collaborative learning culture, you can train people from anywhere in your organisation to become software developers providing they have the attitude and aptitude.

This is highly beneficial for so many reasons including:

  • People with deep knowledge of the business can use that to align IT with the business
  • Senior engineers have people to coach and mentor (which allows seniors to grow and stay motivated by their work)
  • It allows you to increase the diversity of your engineering teams

I have seen developer training academies working extremely well in two organisations. It 100% can work.

Flexible Working Hours

Some people work best early, others late at night. Some people have children to take care of and others have family in different timezones. If you demand all employees work between 9–5 (or something equally strict) you lose the opportunity to hire talented people whose lives require flexibility.

In truth, it’s not an easy problem to solve because face-to-face communication is highly-effective and helps build up a collaborative atmosphere in the team. But you can do a lot better than 9–5. For example, core hours of 10–4 and make up the rest of the as necessary.

Equally, one or two days a week working from home so you can pick your kids up from school or take a day off from the busy commute and be in much clearer headspace to produce your best work.

Remote Workers

If you really want to hire the best talent, as quickly as possible, for the lowest cost, then hiring remote employees is probably the best thing you can do.

There are so many high-calibre developers all across the globe who want to work from home, and produce their best work from home. If you allow remote workers, suddenly there are thousands more top engineers you can hire. And typically they want significantly less money than those who commute into congested city centres.

For the record, I much prefer working in co-located teams. Communication is much easier and it feels nice to be in the same physical room.

Equally, though, I have worked with absolutely incredible developers who were only available remotely and having these people in the team remotely is orders of magnitude more productive for the team than having someone less-talented who can be physically co-located.

For some people, I really would do anything to hire them, even if they were only available remotely, because they are so incredibly good.

It’s a tough choice, but it’s something you should seriously consider.

Leverage Personal Networks and Recruiters

It’s great when you can hire people who you have worked with before and you know they can produce quality work and improve the team environment. However, leveraging personal networks can lead to unfair hiring that does not create equal opportunities for diverse candidates.

It’s also highly-beneficial to have recruiters who can do all of the hard work of finding people who aren’t in your personal networks so that you can spend your time doing more important work.

My point is, don’t limit yourself unnecessarily.

General Advice

I have a few more general bits of advice I think you should consider.

Have a Flexible Screening Progress

If you insist that everybody does a tech test before interviewing, you are going to lose very good people. Think about it, the best people are in the highest demand and don’t have the time to do a tech test for everybody. Chances are they won’t do yours.

If you can tell from a CV that the candidate has a lot of potential to be a good hire, take a chance and bring them straight in and spend a little bit longer on the day. It’s your only chance of hiring them.

Hiring is a Team Activity

Whichever team the new hire is going to join should have the final say on whether they want to hire the person. If you, as a manager, hire someone and put them in a team without giving the team a say in the matter, you undermine their autonomy and you lose their trust.

When all team members have a say in the hiring process, they will all feel partially responsible for the decision and will all be committed to making the new hire a successful one.

Treat Developers Extremely Well

I know I’ve already said this but it’s so important. Treat your developers extremely well. They won’t want to leave and you will waste less time and money on hiring.

It’s worth repeating and I cannot emphasise enough: the market for top developers is incredibly competitive and you need highly-motivated engineering teams if you want them to create high quality code that allows your organisation to out-innovate your competitors.

The secret to improving your hiring fortunes is to treat your software developers extremely well — give them the purpose, autonomy, and mastery they need to produce their best work.

Remember, 61% of executives feel the lack of access to developers is a threat to their business. Good developers are an extremely scarce resource — you literally cannot afford to not treat them well.

Come and work with me if you’d like to build an environment where everyone is given the purpose, autonomy, and mastery to produce the best work of their career. You can contact me at any time.

--

--

Nick Tune
Strategy, Architecture, Continuous Delivery, and DDD

Principal Consultant @ Empathy Software and author of Architecture Modernization (Manning)