Interviewing developers is a hard job. Interviewing boils down to one thing: finding out if the person on the other side of the table would make a good addition to your team.
As an interviewer, the best questions you can ask are those that give you the insight into whether the candidate will be a good addition to your team. Any question you ask is a proxy for finding this out. When you ask "what are your strengths?", you're hoping to find out if the candidate possesses strengths that will help your team. When you ask "what's a pure function?", you're hoping to find out if the candidate has the required technical knowledge to help your team.
Recently I've noticed a backlash against technical questions, and a focus on soft skills in software development interviews. The reasons given for focussing on soft skills and other non-technical skills are:
- Soft skills are harder to teach.
- Technical skills can be learned on the job.
- Technical questions are Googleable.
- It is more important for a developer to have good soft skills than to be good technically, because software development is a team sport.
I don't agree with this line of thinking, and I'll go as far as to say that asking soft skills questions in a software development interview provides almost no value at all.
Why Googleable Technical Questions Work
- Is the candidate actually curious? Do they actually want to get deep knowledge of how things work? If not, can I expect them to get a good understanding of the business logic?
- Can the candidate explain a complicated topic to me? Are they able to simplify ideas?
- Will the candidate lie to me if they don't know the answer? (I know the answer, so I'll know if they are lying.)
- How will the candidate react if I disagree with them? Will they try and see my point?
- Is the candidate excited to talk about technology? (Most good developers are!)
- Even if the question is Googleable, has the candidate ever bothered Googling it?
Most of the things I learn about a candidate from their response to a technical question are about their soft skills. I present them with a real challenge that they can't sidestep, and see how they handle it. These are the soft skills that we want to see, and asking Googleable questions on display.
I get so much information in response to a technical question that can be easily Googled. But still, I am told that I should ask more abstract questions and focus on soft skills. But...
Why Soft Skill Questions Don't Work
One of the worst questions I hear repeatedly asked in interviews is "Tell me about a challenge you faced in your current role and how you overcame it."
The interviewer thinks this question is a goodie, cause it will teach them something about how the candidate thinks and how they solve problems. But this type of question doesn't teach you anything because...
- The candidate will probably lie, at least a little. They need to come up with a coherent narrative that makes them look good. To do this, they'll bend the truth a bit so they can wrap everything up in a neat package.
- You won't know if the candidate is lying, because you don't know what actually happened. You can't check Google to see if they are telling the truth. The candidate knows this too.
- Candidates who are better talkers will do better than candidates who aren't great talkers. Charismatic candidates will smile and charm you, even if they don't have great answers.
- If there are two interviewers, they will probably disagree on how good the answer was. Soft skill answers are open to interpretation, and the person next to you will interpret things differently.
- You won't actually learn anything useful about the candidate.
Aren't Soft Skills Important? Isn't Communication the Most Important Skill?
Yes, soft skills are important. Communication is important. But hard skills, technical skills are equally important. You are hiring this person to do a technical job. And sure, there's always on the job learning, but it hurts a team when you hire developers who don't have strong technical knowledge.
Also, you can't measure someone's soft skills by asking them about their soft skills. That's just not how it works. Interviews are short and people are good at pretending to be someone else during the interview. If you leave an interview thinking "that candidate didn't have the best technical answers, but I think they'd be a great team player!", you are essentially saying "I know that candidate isn't technically skilled, but I've got a good feeling about them!"
If you want to see real soft skills in action, get the candidate talking about a hard topic, and debate with them. Ask questions they shouldn't know how to answer. See how they respond. You learn a lot more about a candidate when the interview goes somewhere they weren't prepared for.