A necessary condition for hiring a new developer

Software developers often take part in the recruiting process. Determine whether a candidate is suitable for our team/company is a challenge to say the least. This is especially correct for us – software developers with no HR training and in most cases used to take decisions based on well constructed set of rules. However, this is not the case we face in the recruiting process. This process requires us to use general guidelines, our experience and intuition.
At our company the recruiting process begins with a professional interview where the candidate is asked to code something, design something and show understanding regarding the running environment.
Who passes the professional interview stage? 
We do not have golden rules. After each interview we conduct a short meeting to decide whether the candidate is suitable or not. We use similar questions throughout all of our interviews which enable us to better compare candidates. We interview in pairs and each interviewer can veto. We believe our general impression has the most weight on our decision.
How hard it is to make a decision?
Well as Joel Spolsky once wrote, there are three kind of candidates. The ones that you easily know you want, the ones you easily know you don’t want and the maybes. Most of the effort is invested in the latter.
Lately we started noticing that the ones we eventually hire from the maybes group have a certain characteristic. It is the ability of the candidate to evaluate his own answers. When asked a question, he knows which information is missing in order to answer it well. He will then state what he knows and what is missing. If he has been asked to solve a problem he will be able to state which aspects of the problem his solution works for, and ask for more info in order to provide a complete solution.
A candidate which does not have said characteristic behaves differently. They write code that doesn’t work and algorithms that does not do as expected. The problem with this kind of candidates is that we had to tell them that there solution does not work. They supply shallow, inaccurate, missing answers while they believe they answered the question fully.
This ability of the candidate to evaluate his own answers is extremely important for software developers. As developers, almost every task requires evaluating which information is missing in order to complete the task successfully. Developers that do not have the ability to evaluate missing information will start coding too early and write bad code.
Following this characteristic, we thought we might test this directly in the interview:
  • Ask the candidate directly what information he is missing to answer the question? This is good for knowledge questions.
  • Ask a very hard question. The candidate does not have a chance of answering. What we are really looking for if to see if he realizes that instead of providing false answers, he can show us his way of thinking.
  • Guesstimate questions.
  • Ask to design something with little information and hope he will ask you for what he is missing.
That’s it. We hope it will help you add another aspect for your interviews.
Reference: A necessary condition for hiring a new developper from our JCG partner Nadav Azaria & Roi Gamliel at the DeveloperLife blog.
Related Whitepaper:

Software Architecture

This guide will introduce you to the world of Software Architecture!

This 162 page guide will cover topics within the field of software architecture including: software architecture as a solution balancing the concerns of different stakeholders, quality assurance, methods to describe and evaluate architectures, the influence of architecture on reuse, and the life cycle of a system and its architecture. This guide concludes with a comparison between the professions of software architect and software engineer.

Get it Now!  

Leave a Reply

three × 1 =

Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.

Sign up for our Newsletter

20,709 insiders are already enjoying weekly updates and complimentary whitepapers! Join them now to gain exclusive access to the latest news in the Java world, as well as insights about Android, Scala, Groovy and other related technologies.

As an extra bonus, by joining you will get our brand new e-books, published by Java Code Geeks and their JCG partners for your reading pleasure! Enter your info and stay on top of things,

  • Fresh trends
  • Cases and examples
  • Research and insights
  • Two complimentary e-books