On the last Cynical Data Guy episode1, one of the topics discussed was the hiring process for data talent, and hiring in general. For those that have never been on the other side of the hiring process let me reiterate one of my main points: hiring is hard…like really hard. The process is hard when you do it poorly and it is extremely hard when you do it correctly. For most hiring processes you are making decisions on who to give, relatively, large sums of money to based on one or two interactions with that person.
That is why I said that so much of the hiring process is based on vibes…and consensus…but mostly vibes.
Consensus
If you don’t feel confident to make a hiring decision based on 1 or 2 conversations, with maybe one of them in person, what do you do? You get more people involved in the decision2. This process can come from good intentions (multiple POV, reduce bias, etc) or bad (CYA, fear, indecisiveness).
Regardless consensus does not lead to selecting the best candidates, it leads to hiring the least objectionable candidate. That is a lot time, energy, and money dedicated to hiring for mediocrity.
Vibes
Given the few contact points that you typically get with candidates3, feel and instinct are going to creep in. Hire enough people and you will start to feel more confident about your ability to make snap judgements4.
But it is a false confidence because hiring, like most things involving people, is a wicked learning environment5. You don’t see the results of all the candidates you interviewed, only the one you hired. Add in lack of criteria to measure and judge what great performance is, and as long as the candidate is moderately successful (aka doesn’t get fired within the first year) we pat ourselves on the back for a hiring success.
Own the process
So how do we get better at hiring? Step one is taking control and accountability for the hiring process. If you are the hiring manager then it is your job to ensure the best person is hired. You can’t delegate to HR or a recruiter, this is your responsibility. You are the person that (should) know best what is needed for a great hire and you need to live with the consequences of the hire, so you need to take full responsibility for process.
First Principle
If you are ready to step up and own the process, the number one principle that will make your hiring process better is:
It sounds obvious, but as I stated at the beginning of this article, most people hire the least objectionable candidate. Hiring for strengths means you are willing to hire people with objections, if they have all the strengths you need.
This leaves you open to criticism, both during and after the hiring process. It takes a level of courage and ownership to be willing to take a stand to think about hiring differently, to insist on a different interview process, and to hire someone that may have a “no” from an interviewer.
Possible Objections
Before giving 3 strategies for hiring for strength, lets clear out to possible objections:
But we do focus on strengths that is why we list all those skills and requirements in our job descriptions.
Focusing on strengths does not mean hiring an AI expert for a data analyst role. Every generic job description has a long wish list of skills and experiences, 80% of which are not related to the actually work of the job. The strength needs to be anchored to the actual work she will do. Therefore you need to anchor your hire to what is needed for the next 12-24 months. Longer than 2 years and you are veering into wishing. Shorter than 12 months and you are talking about contractors.
So we are only going to look for immediate needs and ignore potential?
Of course not, if given the choice between two quality candidates:
Candidate A: All the strengths but at their talent ceiling
Candidate B: Has the strengths (maybe not quite as strong as Candidate A) and has room to grow and improve
You should pick the one with potential6. If you are hiring a full time employee, potential is always a factor. But if they can’t do the work in the first 12 months, they are not going to be a good hire.
3 Strategies (+1 Bonus)
Make a list of projects this position will be expected to complete in the next 12-24 months
Anchor to the actual work. If you are the hiring manager, you should already have work in mind7. Look at your strategy, roadmap, and backlog: what are the projects this role needs to complete to be successful?
Make these projects specific enough to be useful (e.g. not “support the organization being data driven”), and don’t be afraid to share the list in the interview process. This allows candidates see themselves in the position and understand expectations. Also people excited about the work have a better chance of succeeding than the guy that knows how to do the work, but…really wants to do AI.
Write down your 3-5 “must haves”
This is not a list of technical skills or technologies.
This is not a list of years of experience or education.
These are the skills and traits that a candidate must have in order to complete the projects you have listed, on your team and in your company. Some will be technical, some will be soft skills, some will be related to the specific projects, and some will be related to your company’s culture and environment.
While it will be tempting, don’t list more than 5. The point is to ruthlessly focus on the most important for the next 12-24 months. Most hiring processes get distracted with a thousand different skills and “wouldn’t it be great” thinking and lose sight of what a person needs to be successful right now.
Let’s pretend you have a small team that is going to be building the first centralized data warehouse in your company. No one on your team has done this before, so you want someone that has built something similar similar size company (i.e. not a giant enterprise) and were a part of the whole process. But it will take more than one engineer, so you need team leadership and mentoring skills to go with the technical skills. Finally you know your company has a freewheeling unstructured culture. This will require a person skilled at communicating and influencing business stakeholders instead of relying on defined processes to get needed cooperation..
That gives a must have list of:
Broad data engineering skills in pipelines, integration, etc.
Experience standing up an initial centralized data warehouse in similar size company
Proven skills in mentoring and leadership
Ability to communicate and influence reluctant business stakeholders
Ask the 2 most important questions
When I do phone interviews, they consist of 2 questions after the initial “tell me about yourself.”
“In this role you will have to do complete project X, tell me about a project you have worked on that was similar to X.”
“While in position Y, what was the most important/proudest project or initiative you worked on?”
Then, after each question, I drill down for 15-30 minutes into the details of the project and the candidate’s role in the project:
Where did the project come from?
What was your role?
Who else was on the project?
Who did what on the project?
How did it start?
What challenges did you encounter?
How did you overcome them?
What was the result?
How did the stakeholders/management react to completed project?
Those two questions, repeated once or twice, over an hour phone interview will tell you know if the candidate has your must haves.
Now focus for the rest of the interviewing team on targeted specific elements of your must haves, like verifying technical skills, and looking for disqualifiers.
The hidden advantage with this method is when candidates came in for onsite interviews (or a virtual onsite) you don’t need interview, focus your time on selling the role, the team, yourself, and the company.
Bonus Tip: Replace your live coding test with a live code review
We now live in a world where it is easier than ever to cheat on technical tests8. It is time to drop the live coding interview. The value of it, beyond basic sanity checking of coding ability, has been questionable for a while with many people (and whole websites dedicated to) studying to the test. It rewards study habits over professional skills.
An alternative is to do a live code review. My live code reviews have consisted of:
Asking the candidate for real code from a project they have done professionally (with anything proprietary removed) or personally (for situations it is not possible legally or otherwise to get code samples)
Reviewing the code ahead of time as a team
Walking through the code with the candidate and having them explain the project, the solutions, and the process.
This gives the candidate a chance to show their skills in a lower stress situation. It also gives you a chance to ask questions, see their thought process, and how they respond to feedback and questions.
Overall if you want to hire better you need to take ownership for the process and be disciplined up front. It is hard work, but the results are worth it to have the best people working for you rather than the least objectionable.
On The Data Stack Show
Seven “yes” for a candidate means it is a better hire than six “yes”, right? Right??
And for the best talent you have to move fast, limiting your total interactions even more
I knew one data leader that bragged of the ability to make the hire decision in the first 2 minutes of an interview. One year after that comment, almost every hire that leader made was no longer with the company. Not surprisingly neither was the leader.
Unless you need an expert right now and consistency is more important than future potential
otherwise how did you justify the position in the first place?
or maybe a world were employers are more aware of the cheating potential