In my previous post I presented the qualities of a perfect software developer that both fellow developers and managers would like to see in the team members. My survey revealed that being a good developer is more than delivering a perfect and well structured code. So while recruiting a developer we should focus not only on the past experiences and technical competencies. To make sure we choose the right person for the job we need to verify if the candidate has sufficient social and emotional intelligence and the attitude we value. This post describes two techniques to achieve this.
Based on my experience at GOYELLO I admit it’s not easy to recognize a good programmer at first glance. It might be hard to distinguish the arrogant and grumpy, demanding and isolated individual from the the shy one who only needs a bit of a warm up and a longer chat to open up to the interviewers and show the real face. It is also difficult to verify the candidate’s creativity in finding innovative solutions to the problems. In order to find the right person we should be very alert at the interview and dig as deep as possible to obtain enough information we need to make the right decision. That’s why the interview structure and questions are so essential. We are confined to 1 hour to get to know the person. Let’s not waste this precious time!
Below I’m presenting a few basic techniques that help reveal who we are dealing with:
1. STAR method (Situation-Task-Action-Result)
We avoid hypothetical questions and try to focus on past performances and behaviors. If you ask about certain quality and the candidate claims he possesses the required feature or technical skill, make them prove it by describing the real case and a specific situation where he had to demonstrate this skill.
Ask them about the situation related to a given skill you are interested in: what the task/challenge was, then have them describe what action was taken and finally what result was achieved or if it was unsuccessful what lesson they learned.
Eg. Have you ever led a team?
Situation: Find out how the person got that job, why he was promoted to this role? What the circumstances were.
Task: What were the candidate’s duties/tasks/scope of responsibility? What project did he manage?
Action: What steps were taken by him to ensure the project success? To meet the deadline and keep the team members motivated? How did the person learn to manage people despite not having any background on that matter, no education nor any training?
Result: What was the final result? Touch upon the budget, deadline, clients’ satisfaction. If ended up a failure, what the person learned?
Following this simple behavioral method helps us make sure we are talking about real cases and not the made up stories. It also helps foster a proper dialogue instead of a pure question/answer pattern. Moreover, it’s easy to recognize when somebody is lying. They get confused easily and get lost when you ask about details or some additional information related to the story. It’s very easy to describe your own experiences, since you remember them more vividly and have emotions linked with them. One additional tip: If a persons starts talking in terms of “you would do this” and “they planned to do that” you know he is no longer telling his own story. Someone who is really explaining his “STAR” is talking in terms of “I planned this” and “I asked him”.
2. Open-ended questions
If possible avoid asking closed questions like:
Do you know what SEO is ? Can you optimize the pages you make?
Do you know Symfony framework?
Do you easily overcome problems that you come across while coding?
Can you work under pressure efficiently? Do you conform to procedures easily?
You can expect a YES or No answer here. And the candidate knows already what answer recruiters are hoping to hear. Too suggestive questions easily direct the candidate towards the most desired answers.
Instead try to feel the ground by using open questions combined with a STAR method:
How did you arrange good search optimization for the website you created? (what page, who the client was, what keywords, what techniques were used in the code and outside, what the indicators were, end result)?
If you run into a problem while coding, what steps do you take to find the answer?
What is the first thing you do when Symfony is not working properly?
What are the drawbacks of the Symfony Framework?
Tell me about a time when you had too many things to do and you were required to prioritize your tasks to handle the chaos.
Give me a specific example when you had to conform to a procedure/solution with which you did not agree.
Tell me about a time when you missed an obvious solution to a problem.
You are time-restricted so find out as much as they allow you to
The above questions will definitely let you elicit more information than you expect and may also lead to other questions while digging deeper. It often happens that one topic leads to another important issue that you never planned to ask about but something just drew your attention or your warning light started flashing in your head. It often turns out to be a very useful piece of information.
These techniques will reveal more than you think
The STAR pattern and open questions will definitely trigger some discussion and a dialogue. You will be able to find out how the candidate constructs the sentences, if his descriptions are properly structured and logical. Moreover, they check the overall understanding of the problem/circumstances the candidate was faced with. They also verify if the person is capable of coming to conclusions and learning from failures,also if they have insightful and analytical minds. These questions will open the candidate up more than you imagine.
In my follow-up post I will present the remaining 6 techniques. Before this happens, feel free to leave a comment below or exchange your ideas through Twitter @GOYELLO.