Saturday, December 5, 2015

Conducting Technical Interviews - Part 2

This is a continuation of Conducting Technical Interviews - Part 1. In that, we discussed the traditional way to hire for a technical position.

In this blog, we look at a new way to access technical ability in a world where software controls the lives of millions of people.

1. The Challenge

There are 5 flaws in the traditional technical interview:

1.1. Work experience
The process treats all candidates like interns - ignoring their work history. This is both insulting to the candidate and counter productive.

As an aside, I once suggested to an interviewer that they look at some of my published work. That interviewer was shocked that I would dare suggest suggest such a wasteful activity.

1.2. Overemphasis on basic knowledge
In a typical interview, candidates are asked intern-level questions such as:
1. What is a class?
2. What is polymorphism?

Who cares if the candidate doesn't remember a specific aspect of the language or or a specific command or method? That's what Google/Bing and YouTube is there for, isn't it?

Also, is being able to find a palindrome that important to your business?

1.3. Thought Processes
In a traditional technical interview, the manager gives questions to see a person's thinking process.

The flaw here is, the hiring manager may not have the expertise needed to evaluate a candidate.

Having expertise in a field does not in any way mean you can tell if someone is qualified, especially when dealing with meaningless questions such as, "How do you sort an array of integers?"

1.4. Unnatural Situation.
The interview process is unnatural.

The interviewer is trying to judge whether to hire a candidate. The candidate is trying to make a good impression. Given the constraints of time, etc., can a true judgement of ability be made in such a situation.

1.5. The Interviewer
Be honest hiring manager, do you think you are qualified to judge someone in an hour-long interview? Were you even trained? Also, are personal biases getting in the way of hiring the best of the best?

2. Suggestions

For overcoming the problems of the interview process, I have 2 suggestions.

2.1. Finding Candidates
In my opinion, the best way to find candidates is to visit the various professional groups. There you can see how a person interacts with others , and can examine what they produce.

This includes MeetUp.com groups.

In a previous blog I suggested some professional web sites:
    1. http://stackoverflow.com/
    2. http://www.codeproject.com/
    3. http://www.codeplex.com/
    4. https://github.com/


2.2. Open Source - The Smart Way to Screen
Open source projects are becoming ever more popular. Even Microsoft embraces it. As a hiring manager, you can use this to evaluate the technical abilities of candidates.

How do we do that?

2.2.1. The Basics
By nature, the source code of Open Source projects is freely available to anyone.

For example, anyone can go to GitHub.com and download, fork and modify any project.

Another feature of Open Source projects is that you can submit bug fixes and new features to the owner. The owner then examines the change and decides to ether integrate it with the existing code base or reject it.

2.2.2. Select a Project
To leverage Open Source as an screening tool:

  1. Decide on the technologies you need for your business.
  2. Select a project that uses those technologies.

2.2.3. Issue the challenge
When interviewing a candidate, require them to submit code to an Open Source project of your choosing, or to one that is on your accepted list.

By submitting code, the candidate demonstrates their ability to understand large scale projects and can make meaningful contributions to a greater cause.

Some projects (such as dotnet / coreclr) have extremely high quality bars, since it affects millions of people. This ensures you are dealing with a competent candidate, allowing you to dispense with the technical part of the technical interview.

Happy hunting :-)

No comments:

Post a Comment