Interviewing — How to conduct an interview

Tuesday, February 24th, 2009

Twitter Summary — If after interviewing a candidate, you are unable to make a Hire/No Hire decision, you have failed as an interviewer.

Interviewing candidates involves making a judgment call about the person you are interviewing.  One thing that makes this difficult is that there are many resources (web based, books, college or career counselors) who can give a candidate the “right” answer  for just about any question an interviewer can ask: “What is your greatest weakness?”, “What is your biggest strength?”,  “Where do you see yourself in 5 years? 10 years?”  Admittedly, offering this information is an attempt to help others who are interviewing answer the questions “well enough,” but often mask what you really want to know about the person.  This puts the interviewer into a situation where they will not be able to make a clear decision on a candidate. When candidates answer all the questions “well enough” they run the risk of hiring someone that will only do “well enough” at their company.

My biggest difficulty in interviewing is when I find I personally like the candidate and think they would be great to know outside of work based on shared personal interests that come up in the course of our conversation.  However, shared personal interests is not a determining factor as to whether a candidate can match all of the expectations of a role. The sole job as an interviewer is to form an opinion of a candidate and decide whether they are qualified for their role, and will excel in that role for the company.

The keys to success in interviewing a candidate are:

  1. Be present — Make sure that your phones and computers are off, and you have space where the door is closed. Distractions that pull you away from focusing on your candidate shortchanges the candidate and your opportunity to make a clear decision. As most interviews last only 45 minutes to an hour, your undivided attention is important in assessing the candidate.
  2. Assess for your “hidden agenda” — We all look for the same attributes for a candidate:  Are they smart, punctual, enthusiastic, hard working?  You cannot ask those questions directly, as the answer anyone would give to them would be “Yes.”  Instead, you should ask questions like: “What was your favorite project?” and in their response you listen to see if the project was successful and required smarts, or enthusiasm, hard work or punctuality to solve.
  3. Communicate using multiple methods — Require the candidate to communicate using graphs, words, speech and even assess non-verbal communication, regardless of role.  As a future employee, the candidate will need to work with many people in the company and needs to be able to communicate to anyone using whatever technique is most important at the time. By assessing the spectrum of the candidates ability, you will hire people who can express themselves and represent well within the company. The non-verbal communication is important to assess the confidence of their responses. If they are not confident in their responses with you during an interview, they will lack confidence when communicating with their colleagues
  4. Induce Stress — During the interview you should create some conflict that the candidate needs to justify so that you can see how they manage stress. Stress is a fact of life at companies and is important to assess during the interview. The stress doesn’t need to be excessive, but by requiring the candidate to deal with stressors on their feet you can get a good idea of how adaptable they are to the environment. The most appropriate ways I have done this during interviews have been to either (a) repeatedly change the requirements of the system (steadily increasing the scope of the project as they answer each part successfully), or (b) express to the candidate that I think there can be a better solution using technology X, and to justify their use of technology Y. Get the candidate to discuss the tradeoffs and assess the impact of the stress.
  5. Choose your questions well — The questions you select for a candidate need to be the ones that allow you to make a “Hire” vs “No Hire” decision within the allotted time frame. If you are not asking questions that get you to the point where you can make a hire decision, you are asking the wrong questions. Don’t waste the candidates time or yours by asking questions that don’t help you assess a candidate.
  6. Look for the superlative — The thing that distinguishes the “Good Enough” candidates from the “Must Hire” candidate is typically a superlative where the candidate was the “Best” at something. Typically this comes up when the candidate mentions they were the “go-to” person for certain areas or solely responsible for certain pieces of technology. Assess why they did so well in those areas and make a determination if that would be important for your company.
  7. Take Notes — If you interview many people a day, you should write-up your notes immediately afterward so that you don’t confuse candidates and can discuss the candidate during the interview debrief. Notes also help to re-enforce a second pass assessment of the candidate to see if they matched the requirements for your “hidden agenda” or had a “superlative” associated with their prior work experience.

Interviewing takes lots of focused listening, but once you have identified a candidate to interview they deserve the attention you give to them. This attention is how the candidate assesses your non-verbal communication and gives the candidate the confidence that a “hire” or “no-hire” response from you company was the correct decision for you and them.

The next in the series will cover “What” you should ask during an interview.

Interviewing — Why you should be an interviewer

Tuesday, February 10th, 2009

2428696153_e0a1c29346_m

Twitter Summary: You have more leverage to influence the direction of a company by the people you hire then what you do.

In my career so far, I have interviewed well over 1000 people. I developed a reputation for being good at it which meant I was interviewing software engineers, product managers, engineering managers, VP, CTOs, and even prospective new attorneys which is far out of my core expertise.  My job was to assess their ability to be good at their position and to help figure out if they would be successful within the broader context of the company.

I frequently get groans from engineers about how much of their time interviews consume. In fairness, a badly scheduled interview will fragment a developer’s day to be unusable and developer’s want to spend the time doing what they were hired to do. Unfortunately, a well run interviewing effort typically  takes multiple hours of time if you have:

  • Phone Screen — Assess if there is a match to the position you are looking to fill.
  • Pre-planning — Scheduling and assigning interview roles and competencies to assess.
  • Interview — Spending the time to figure out if this is someone you would like on your team.
  • Debrief — Write up of interview and discussing whether the candidate is a match.

In spite of the time sink,  as an employee you should be on as many interview loops as you can handle and make time to schedule.  The benefits of interviewing are tremendous to both your quality of life and the future success of your company. The two reasons to do this are:

  1. You get to decide who works with you! — Never are you more influential in your own work life then when you get to decide which colleagues you will work with daily. That interview process is crucial to figuring out: Is this candidate smart, innovative and adaptive to your environment? Can this candidate help me solve my problem? What about if the problem occurs at 2AM? Will this colleague help me make a right decision and support me, or will the colleague argue with me when I am wrong and explain it in a way I can understand and agree?
  2. You are helping direct the compass of the company. — The people you hire are the mission statement of the company. By hiring people that not only have a talent for their role, but also have abilities in other domains you get to broaden the reach of what your company can do. If you hire only system kernel engineers, you shouldn’t be surprised if the next innovation is a recommendation to rebuild a new O/S. If you hire framework developers, you will inevitably be requested to approve a new framework that will help develop your product. If you hire a diverse set of talent that can do their jobs, and also innovate in new directions, you will be able to innovate in many new directions.  The abilities of the people you hire, will help dictate what will be considered the “core competency” of your company, and which features will be outsourced to different companies.

Yes, interviewing can be time consuming.  However, you can assist in planning your schedule so that interviews are less intrusive, because the benefits are immense for your day-to-day work environment and the future success of your company.

Future posts will cover, How to interview, What your interview should cover,  When you should interview.

Time vs Space vs Money

Sunday, February 1st, 2009

Twitter Summary: When your see a problem that requires you to spend time, money or space. Spend money or space, because time is the only one you can’t reuse.

A classic tradeoff in computer science is the time vs space tradeoff in executing an algorithm.  As mentioned in an earlier blog post (An Introduction to Search Engines). If you spend extra disk space storing index data, you can improve the speed of a search by orders of magnitude. The decision here is clear cut.  It does take some extra over-head to manage the indices, and update them as the data changes, but the benefits to the customer are immense. The other practical advantage is that as the cost of disk space has plummeted, all the overhead is the management of the data and very little of what was actually stored and computed.

In the startup world, the tradeoff presents itself as “Build” vs “Buy”. Should we build a website from scratch or buy a content management system to display our information? The decision here is ocasionally not as clear-cut and depends on what you want to be the core expertise of your company. If you have a company who’s core expertise is selling cars, investing in creating a new web framework would not be to the advantage of getting sales quickly and is likely to add unnecessary expense. If your expertise is a new web technology that allows you to experience a car prior to driving (and closes more sales) that is where you should consider building your own technology.

When bootstrapping a company, the best decisions I have seen is to fit together as many pre-built components as you can, even if they are your presumed “core expertise”. Only when they begin to show that they are not flexible to your core expertise, should you consider replacing them with some newer, better, faster technology built by your own team. The time saved getting your product to market can help you evaluate whether you have a market for what you want, and you can later decide where your time is best spent in buliding for your customer.

In talking with other technologists and entreprenuers, the wisdom has generally been “fail fast”, so that you can limit investments down dead ends.  You can summarize this as spend the money or take the extra space to try something rather then waiting to build it yourself.  The time spent will be minimized and your can always pursue the next better idea if the current idea doesn’t work.

Time vs Money/Space is not a correct tradeoff, as they are not interchangeable.  With Money and Space, you can always re-use it, loan it or find somebody who can get it for you cheaper. When it comes to Time, you are not getting it back.