You are on page 1of 2

A Better Way to Recruit Software Developers

"So, can you tell me about any, um, computer programs you have written?"

The young HR intern facing me seemed as nervous as I was. Having just turned 18, I was interviewing
for my first job, as a Computer Science cadet. She didn't know what to ask, and I didn't know what to
answer! In the 25 years that followed, I've sat on both sides of the table many times - and sadly, the
interviews have often been scarcely more sophisticated than that first one.

It's long been known that the productivity difference between good and poor developers is
enormous, and so recruitment is one of the most important tasks you will undertake as a manager.
Yet sorting the good from the bad is frustratingly difficult, and I know that some managers approach
the hiring process with dread.

But I firmly believe it is possible to hire with confidence. Over the last few years, I've evolved a four
stage process, and it has helped me recruit some excellent developers.

Stage One - The Cull

Unless you are using a recruitment agent, you will have to sort through a mass of applicants. I
usually give each resume only a quick perusal - I'm looking for key skills, as well as an employment
narrative that seems logical and consistent. If 50 resumes come in for a job, I'll probably eliminate
half of them at this stage.

Stage Two - The Technical Test

This is the "secret sauce" in my recruitment process. In the old days, we'd try and assess a
developer's skills by asking technical questions, checking references and performing aptitude tests.
What we now realise, of course, is that the best way to assess someone's programming skills is to
get them to write some code.

But how should we do this? A lot of people favour little programming puzzles, performed on paper in
front of the interviewer. I don't like this approach as it seems too far removed from the way people
actually write code. What I do instead is send the candidates a one page programming specification,
to be completed at home using the skills we are hiring for. For example, we might ask them to create
a web page that performs simple CRUD operations on a database table, with a few bells and
whistles. The test should take no more than half an hour for someone with the right skills.

Now, I once read that most people who apply for the SAS are not actually eliminated; instead, they
quit themselves when it becomes obvious they are not up to scratch. The technical test performs the
same function - those without the required skills quietly select themselves out. Sure, it's possible
that some strong developers may choose not to complete the test because of laziness or pride - but
perhaps that tells you something useful as well.

From my remaining pool of 25 potentials, usually about 8-10 will successfully complete and submit
the test. At this stage we may also eliminate 1 or 2 candidates whose solution was of low quality.

Stage 3 - The Technical Interview

It's now time to bring our potential recruits onsite. I have two senior developers interview each
candidate to assess their technical abilities. We usually do this by bringing up the code they
submitted in Stage 2, and asking questions about it. Why did you do it this way? Why didn't you use
that pattern? What would you improve if you had more time? How could you improve performance?
And so on.
I usually don't sit in on these interviews - I would add no value, and the presence of a manager might
even inhibit frank discussion. The technical interviews typically take an hour, and afterwards my
senior developers will give their assessment of the candidate's skills. After everyone has been
interviewed it's usually pretty obvious who the stand-out developers are, and so we form a short-list
of 2-3 candidates.

Stage 4 - The Final Interview

The short-listed candidates are brought in and interviewed by senior management. We are looking
at behaviours, communication skills, career aspirations and the ever-elusive cultural fit. We usually
have at least 1 quality candidate by this stage, and so we can make an offer - confident that they
have the skills and commitment we are looking for.

Craig Schwarze is Software Development Manager and is currently completing his Master of Business
in IT Management at UTS.

You might also like