Do you need triple A* programmers?
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!
I have done a lot of recruitment in my time and at least 80% of it has been recruiting programmers. The reason? finding and (more importantly) identifying good programmers is hard (really hard). I have recently been reading one of Joel Spolsky books and his interview techniques fit with most of my views on the process. But one key point he describes is the requirement to have 4+ of your staff interview the candidate. This is not something I have ever tried (but have been put through it myself) but I question the requirement if the interviewer is experienced at indentifying talent.
But the reason Joel was making this point was because of the damage that can be done by getting it wrong. The affects of getting it wrong and then having to sack them again have a lot of knock on affects.
- If you used an agency and did not sack them quick enough you may not get much of recruitment fee. Most agencies give back money on a sliding scale (per week).
- While you were learning of your mistake the recruitment trail has gone cold (because you thought you had got your man/woman) and you have to start from scratch again because everyone you had been looking at will have now taken another job, and if they havent then they are not a good option.
- Before you sack them they will be eating resources as in most cases they will be having to learn from your current technical staff.
- Notice periods - Depending on which country your in the notice rules differ greatly, but in a lot of cases its still going to cost you *something* to get them out the door.
Working from an example
So is it worth the effort of finding a triple A programmer? Well to give you one example. I used to work for a large development company in the UK called Codemasters (famous for the Colin McRae rally games amongst others.) They believed it was possible to replace Triple A programmers with larger groups of what you would class as ‘generic’ programmers. The reason for this was over the course of a 3 year project they preferred to pay for 6x Generic Programmers, instead of 1x Triple A programmer because although they equated to the same amount of work. If they lost one generic programmer, they could just replace him without too much hassle, but if the Triple A Programmer left then they were up the proverbial creek without a paddle shaped thing.
The same company also had a mandatory requirement for an IQ test. This did not apply just to programmers but also to marketing & sales (no idea how they got through!). But it did mean that the overall level of intelligence was high. They achieved this by recruiting heavily from students, although they did not have experience they worked well in groups (as described above.)
In my experience you need a mixture, if you are google you have the clout to just keep looking for only the best. But most ‘normal’ companies do not have the resources/time to only recruit the very best. But you do need a ratio of Triple A programmers to ‘generic’ programmers. The exact mixture is down to the project but its safe to say a 50/50 split would be a good starting point.
How much faster?
The Codemasters example showed that one company viewed that one great programmer was worth 6x of another programmer. Why is this?
- They think ahead far better, therefore less reworking is required later
- They have greater knowledge and spend less time having to research
- (strangely) they tend also to type faster
- They don’t make as many mistakes
Some fun reasons and true reasons why I have sacked (or not recruited people.)
- They turn out that they are sleeping in their car at night
- They have hidden under the desk during the interview (seriously!)
- They bring in their CV in a ‘my little pony lunchbox’
- They proposition you during the interview
I’d love to hear from you for your reasons for not recruiting.
Comment by Nils Hitze on 20 April 2007:
Let me add two points against a large horde of “generic programmers”
+ the have to use version system, but most of them don’t have a fucking clue what svn is
+ they don’t know half the tools that are out there to make life a simple as possible (chances are good, that a triple A WROTE most of the tools out there)
+ they know what open source is, but it starts with phpMyAdmin and ends there
+ debuggin is normaly echo and nothing else
+ no database abstraction layer for you sir
so far from my side, and thanks for the fish
nice article by the way, although i had a smurf lunch box to my interview
Comment by nick on 20 April 2007:
I always liked puppa smurf so you may have got away with it
Comment by Peter on 20 April 2007:
I think the actual ratio is probably far greater than 1 to 6 in extreme cases - especially in the case of contracted resources against one seasoned vet.
Comment by Max on 21 April 2007:
Nice article. I have been on both sides of the table as well.
On the Spolsky requirement to have 4+ of your staff interview the candidate. What do you think the result of 4+ ‘generic’ programmers interviewing a ‘triple A’ candidate might be?
Just food for thought.
Comment by nick on 21 April 2007:
In my experience when you get less experienced programmers interviewing Triple A programmers you get several results.
1. They do not recognise the talent.
2. They recognise the talent and decide they would rather not have the competition. (sad but true.)
3. They recognise it but fail to indentify the right position for the good programmer which leads to the programmer not accepting the job.
4. The Triple A programmer being interviewed decides to not take the job because of the poor interview he receives.
Comment by Kevin on 26 May 2007:
With the exception of truly great minds (which there are statistically quite few of) Triple A (or even Double A) programmers come from the “generic” programmer bin. A generic programmer, with a good mentor and exposure to real-world programming, can easily become a Triple A programmer. Even better, they will be more inclined to help mentor new programmers who join the company.