Hiring developers is always a difficult process, in part because after we produce concrete pieces of software we rarely have the opportunity to actually show or discuss that code to anyone outside of the group of engineers we developed it with. We are then left with really few ways of proving a tangible skillset. After honing our talents for years there are still vast portions of our work that we rely on an honor system (just telling the truth) to reveal and evaluate.
This is made especially difficult for sound developers who do not handle interview scenarios well. The archetypal introverted developer, with no social skills is obviously overstated, but there are folks who simply do not do well under the pressure of public scrutiny. The artificial and pressurized interview can bring out the worst in them and I have seen otherwise solid develops completely freeze in those situation. We have been employing the following pattern as we dove into hiring, they are by no means perfect (and certainly not exhaustive) but they provide a framework to fairly evaluate the kind of people we want to work with.
Prepare your HR
Your HR/recruitment staff represent the first line of defense between you and completely unqualified candidates. The more accurately and succinctly you are able to describe your needs the more capably they will deter the advances of the folks who are simply not right for the position you are advertising. For example:
- Are you looking for someone with general programming skills or explicit .NET experience.
- What kind of developer (.NET or otherwise) are you looking for ASP.NET, Windows, Embedded, Mobile? Remember the recruiter may not be a specialist so help them understand your needs with sufficient detail.
- Prepare questions for your HR personnel that will identify levels of actual experience working on the type of technology that is important to you, it may not just be about how long they have been in a technical career. Enthusiastic applicants may be able to type the appropriate buzz words on a resume but a simple question and an honest answer can save every one undue stress.
Basic Skill Evaluation
This is the perfect opportunity for a manager (or a technical lead) to assess the general skill level of the interviewee. In the theme of not wasting anyone’s time I do not suggest more than two people. The thrust of the questions are usually straight forward and require a brief response. At this stage I am pitching questions in a way that they should be answered conclusively and decisively and the pace of the interview should lend itself to be completed in less than 45 minutes.
This is really the point at which you want to decide if you want to go any further with this person. Are they under qualified? (over qualified folks may still filter through here) are their skills a good match? If someone passes this stage it should be a relatively strong signal that they are under serious consideration.
Detailed Technical Interview
These are the set of questions reserved to really analyze the experiences and skills you are looking for. I like to ensure that multiple technical colleagues are involved here and that they all have the opportunity to guide the discussion. While I understand that people have varying degrees of comfort completing exercises in an interview, I really find that using a whiteboard and going after a solution we can discuss reveals a lot about a person. Look for ways to tease multi layered questions from the candidate, and also look for ways to attach the questions to direct experiences they may had.
Unfortunately I also recognize that people who simply have a tough time talking in groups may fail this unnecessarily, and frankly I have not figured out a way to evaluate someone who has anxiety issues when speaking.
Extended Team Interview
What other teams interact with your team? Do they have a valid stake in the evaluation? It is at this point I need to know that this interviewee has good character fit with the company ethos and the team goals. I do not tend to rely on the HR staff to identify good soft skilled fits (even though I listen to their input very closely). How the interviewee fits in with your extended team is also important and getting feedback from departments that are directly vested in your success may provide a way to weed out people who are on the border, or who may be closely matched with other candidates.
You always see the legal written response to the importance of company diversity, however, I have found that this ideal should never be left to chance, and before you start bristling, I am not suggesting you hire unqualified people to meet an arbitrary quota. I am strongly advocating ensuring that you have challenged and overcome every barrier to entry such that a diverse and brilliant team can be assessed and fairly adjudicated. My humble opinion is that removal of these barriers (and that may require training at all the above levels) will produce the diversity that will enhance your team success.
Look, getting the right people hired is difficult and sometimes quite tedious, but trust me when I say getting it wrong can be an unforgiving nightmare. The flip side is that no process is ever perfect and fair, so you may end up passing on good candidates because of a perceived risk when you see someone flirting on the borders of mediocrity.
The best strategy involves systematically trying to not waste peoples time (your companies or the interviewee), providing a mechanism to fairly and accurately assess people from a variety of backgrounds, and being sympathetic and compassionate to a person who is attempting to show the very best version of themselves in a highly pressurized scenario.