20091207

Technical Interviews...

                So you need to hire a developer?  You are either a competent developer yourself, or not.  Either way, this may help you with some ideas about what to ask for.  First off, I recommend a great book called High-Impact Interview Questions by Victoria A. Hoevemeyer.  It gives an overview of different styles of interviewing, and teaches the CBBI (Competency Based Behavioral Interviewing) approach.  I found that that bulk of the information needed is within the first few chapters.  (at least enough to get you started, but I still recommend you read the whole thing)


                To briefly go over the CBBI interviewing practice, I’ll give a couple examples.  Imagine yourself in an interview, and the person asks, “How would you approach a really irate customer?”  You would think of the most optimal way it should be handled, and speak along those lines.  But what about this question, “Tell me about a time that you had to deal with a very irate customer.”  It’s not a question, it’s a demand.  And it’s not giving leeway for you to think of the most optimal solution.  Instead, you have to describe what really happened.


                Most of us can easily cite what the most optimal reaction might be to something, but when you are actually in the moment you need it, what really happens?  CBBI gets the person to tell us about real scenarios in a person’s background.  Follow up questions like, “how was it resolved?” or “What did you do at X point?” can help you get the answers you’re looking for when the initial response isn't satisfactory, or questionably false.  (as the follow up questions may also get a person caught for lying)


                So the next part is figuring out what is important to you?  Obviously there are technical skills, but not so obvious is that the person needs to communicate their knowledge to less experienced people, or that they need to work independently a lot.  You need to figure out what areas are important to you.  (the book has a LONG chapter dedicated to different topics for questions, with example questions, like Communication, Empathy, Speed, Stress, etc…)


                Now, hopefully, you've got a brief idea of how to ask some of these questions, but I still highly recommend the book, as it has a lot more content than my few paragraphs, and there really is a lot more value to it than I just provided.  The next part I’m splitting into Skilled and Unskilled questions…  Skilled covers questions and issues for interviewers who are already skilled as developers, while Unskilled means that the interviewer is not greatly knowledgeable in development work.


Skilled Interviewer:


                To begin with, you should be aware of 2 key directions of developers.  Both are highly valuable, but both may fail horribly if questioned in the wrong way.  For instance, C# is a powerful, flexible modern language.  It has roots in Visual Basic, .NET itself, and C++/Java.  Naturally, your developers come from varying backgrounds.  If the persons background came from VB for instance, they don’t often know the term “Hash Table” in VB, they used Dictionaries.


                Many people have plenty of experience developing, but don’t necessarily understand the best word (according to you) for that scenario.  I, for instance, was concatenating strings for over a decade before I realized it was called that.  I remember being in an interview where the interviewer asked me about that, and I said I didn't know what it was.  Instead of asking me about my experience with string manipulation, he marked me down as being incredibly unskilled.


                You may inadvertently discard a candidate who may be 10 times more qualified for the position, because your choice of words were not the same that they would use.  Always follow up your keyword based questions, with a request for them to explain the mechanics.  It is better to understand the process than the words.  While words are pretty, the process is what really gets the job done.  A skilled interviewer with strong symbolic memory, and a mental dictionary of keywords would excel over a person who actually does this stuff all the time.


                Back to CBBI, remember to request that the person tell about real experience.  This also helps you get off the resume.  Sometimes a person has experience that they don’t bring up so boldly, because it isn't attached to a shiny business name, but it was part of a failed personal project.  Despite that, the skill is there.   It is your job as the interviewer to find the best you can get. 


It doesn't really matter if you get the impression that the person will work out well.  Any skilled interviewee can give you a great “impression”.  That usually only says that they were good in the interview.  Remember, as Charismatic as that person was, when it comes down to crunch time and not a hypothetical interview, you are depending on this person to reflect well on you, and help reduce the overall stress with their skill at getting things done.



Unskilled Interviewer:


                First, you have to determine why you are hiring.  If it is a larger company, and you are responsible for filling in a position that you know nothing about, that is a problem.  Any skilled interviewee who recognizes that you know very little, can rattle off some strand of answers that are right, or wrong, and as long as they sound confident, you’ll most likely believe them. 


                If you've determined that you have to be in charge of it, then you NEED to find technical help.  The same questions you look up online, are likely the same ones a skilled interviewee will find.  If you don’t have someone immediately available, ask friends with these skills.  Or, expanding farther, ask a company with some vested interest in your success, if they could get a little assistance in finding a person.  Obviously, this won’t be a competitor, but perhaps a business client or a vendor.   Getting in touch with sources like this, can actually help promote stronger bonds with your 2 companies, and help you get a better person for the job.   This person could possibly just do a simple technical phone screen, spending 10 minutes per client, and possibly assist in a sit down interview for a few of them.


                If your still stuck, talk to a recruiter.  Have them do the technical screenings.  Make sure the person’s resume shows that they have skills in the areas you are looking for.  Call their past managers, and ask them how well they work on their own.  (after all, if you don’t have resources to understand what they do, they could just sit around and make things up, with you none the wiser) 


                Next, ask them to explain things to you.  If this person will work with databases, ask them to explain how databases work.  Then ask them to explain how they get might be able to get it to work with your product.  At a certain point, you can request, “Tell me about a recent time you had to do this, that you got stuck on an error and had to spend some time debugging it.  What did you do?”  naturally following up with other questions. 


                Since you’re asking them to explain something in the first place, ask yourself.  Do you feel that you understand it better because of them?  Remember to use a sliding scale on these things.  Your first interview, you will understand the least, and as you interview more people, you will gain more theoretical knowledge.  Remember to give each person that same initial question of “Explain [X] to me.”  Though your follow up questions might be more in depth.


                A skilled person should be able to explain how it works quickly, easily and clearly.  Given how they are being hired, you need someone who can explain what is happening to you in the same manner.  Whether or not you get help on it, if you won’t have qualified technical resources who can review and explain the issues available to you, you should still ask these questions to make sure the person will be able to convey the issue. 


                If a person passes the technical aspect completely, but can’t help you understand how a database works, or how a website gets built, then once they are hired, you can’t expect to be well updated by this person.



No comments: