Search This Blog


Wednesday, February 13, 2008

Why IT Managers are Hiring Based on Experience

Yeah, I know that hiring developers based on experience is generally bad for the company that does the hiring because it excludes the best engineers who don't have the requisite skills. Jeff Atwood put it best when he said that there is no correlation between years of programming and the skills and gave a wonderful example on how someone who did not have prior low level TCP/IP coding experience managed to outdone others who did have the experience simply because he was a better programmer. Not just that, from what I read, when comes to hiring developers, the mastery of the correct technologies isn't even one of the prerequisites.

Why, then there are companies that still post advertisements that require XXX years of experience in ASP.NET, YYY years of experience in Multithreading? If years of experience is not really a differentiator, why IT companies are still filtering candidates based on that metric?

Let me try to answer this question.

Generally, it is not the developers, or managers with the developers' background who are doing the hiring. The one who is responsible for putting up advertisement, screening candidates, is the Human Resource Department. IT managers are just too busy for that. I don't think the HR knows enough about software development to understand this point. How can the HR people tell a good developer from a bad one?

They can't. All they can is to filter off unqualified candidates by
  1. Checking the candidates' CGPA
  2. Examining the candidates experience
Well, CGPA isn't that important nowadays, is it? When you have a few years of working experience, who really cares how good you were as a student? All that is important is your experience. CGPA tells others how good you were in your studies, but your experience, tells people how good you are in doing your job.

Believing that the past is a good predictor of the future, the HR people will try to scan your resume to see whether you have the correct experience or not. In other words, if on your resume you don't have the correct keywords, the HR people will simply just ignore you. You are automatically excluded regardless of how brilliant you are or how fast you can pick up new technologies. That's the worst kind of treatment can ever be bestowed upon, even worse than turning you down because when people turn you down, at least they gave you some consideration in the first place.

The HR people don't have the background to tell a good developer from a bad one. How can they? How can they tell a person who is a fast learner from the one who isn't? Even if you put the four golden words "HAVE ABILITY TO LEARN" at the title of your resume it would have meant nothing because everyone could do that. Besides that, like grade inflation, hyping is so common nowadays that Steve Yegge discouraged developers from putting in "fast learner" into their resume. And non-developers cannot differentiate between a good programmer and a mediocre one. Like scientists, programmers are highly skilled professional and their work are indecipherable to the outsiders.

So, the conclusion: the initial screening must necessarily rely on keywords and experience. In other words, the experience myth is there for a good reason.

Just in case you didn't see it, I would like to emphasize this by reiterating it again, this time with bold letters:

The initial screening must necessarily rely on keywords and experience.

Yeah, it's bad, but it's a necessary evil.

IT managers do interview candidates, however, they are interviewing the already filtered candidates. So you can't count on them to save you if you don't have the correct keywords and experience, sorry.

Unfair, I know. But in this world nothing is fair.

So, what can I do?

As developers, if you really want the job bad enough and you don't have the correct keywords and experience on your resume, here are the things you can do:
  1. Pray that the HR people are enlightened, either by a beam of heavenly light, like Saint Paul or through reading blogs and mixing around with other enlighten people
  2. Work part time to gain the necessary experience
  3. Bypass the HR department, talk to the IT managers directly or let them come after you.
The third point deserves some elaboration. No one would want to talk to a stranger if you were a nobody. So if you wanted to be headhunted, you must established your visibility. Writing blog is a good way to advertise yourself and your ability, going to conference is another way. From what I know, there are a number of people got new jobs because of their blogs. Jeff Atwood got an offer from his current company because of his writings, if I am not mistaken.

Warning: you can stop reading now if you dislike advertisement.

If you are really frustrated by the Experience or Keyword Discrimination and you are willing and able to work in Puchong, Malaysia, do write to me. Our company is hiring and I promise you an evaluation free of those discrimination.


Anonymous said...

Another good screening technique I have used for programmers is to look for vendor certifications. If a CV lists certifications from a single vendor then, in my experience, the candidate is not worth talking to and nowadays I put their CV straight into the trash.

Soon Hui said...

If a CV lists certifications from a single vendor then, in my experience, the candidate is not worth talking to and nowadays I put their CV straight into the trash.

Is that not failing in the same trap as believing in the experience myth?

If you don't have XXX years of experience in YYY technologies, then I wouldn't get you.

If you have only used a single tool, then I wouldn't get you.

Are they not similar?

Josue said...

Why not work around the filters and specify in your resume something in the words like:

- Have 5 years experience (expeditiously) in C++ development.

i know, my grammar sucks.

Soon Hui said...

Josue, great idea.

But I afraid that specifying the language alone is not sufficient to get shortlisted. The HR is explicitly looking for specific buzzword like Oracle database, socket programming etc. Keeping your experience vague isn't going to help at all :(

TW Andrews said...

The one who is responsible for putting up advertisement, screening candidates, is the Human Resource Department. IT managers are just too busy for that.

Considering that no other factor at a software company will have a greater impact on effectiveness than hiring good people, any place where this is true is dysfunctional, and no place a good person would want to work.

Soon Hui said...

Andrews, not sure whether you have this experience or not.

Your company is looking for candidates, but you don't know where to start. So you start going to to advertise for that position. Lo and behold, thousands of application starts coming in.

The IT managers simply have no time to go through them.

So it's the HR job to do the pre-screening.

Anonymous said...

Yes and even then, the HR dept doesn't have the time nor the resources to go through the thousands of applicants so they use buzzwords to filter them. I was unfortunately part of the many people that got filtered out, having been rejected at the first time of asking with one top company but managing to secure my place at another top company.

Trant said...

You're also missing the fact that most recruiting happens after they realise they need somebody and so you want them to get up to speed as soon as possible.

That means being taught the source code and how they've achieved things. Nobody has time to teach you the language or tools as well.

Jason said...

This is an incredibly important post that I have bookmarked and will forward to everyone who will listen.

I am a programmer (again) who ran a technical recruiting firm for several years and this article WILL get anyone who has some experience more interviews if they will stop writing resumes for themselves and their buddies and start listing [stupid] keywords.

Thank you for it