Does a generic competency test have a place in your interview?
Instead of a Kata
A kata is a take-home task provided by a company as part of the interview process.
In all sorts of roles, this is a common part of the process. In Front-End it may be building a website. In Data Science it may be something like “find three insights”. In Marketing it may be “come up with a marketing strategy”, one they could steal and run away with. Whatever the kata is, it’s always free work and an expectation of best work in a small period of time. Not only is this disrespectful to the candidate’s time, but it also costs a company some of the best applicants. Due to time requirements, people with free time will be able to complete the task to a higher standard.
A kata is a generic competency test. Given an unlimited amount of time, can you perform a task?
“it should only take about two hours”.
You are then behind other application quality if you do as instructed. Other applicants have gone overboard and deployed their website using AWS. you better go overboard too! Calling out that they only asked for two hours of work isn’t going to warrant any weakness. You know you need to give your best for this interview. Sounds pretty stressful to me.
The purpose of a kata in martial arts is to practice something until perfection. In recruitment, this word has lost that. The purpose of recruitment is to assess your ability to perform the job. This purpose generally is not satisfied by the kata. Instead, a discussion on why you worked the way you did is illuminating. The fact is a kata requires limited time from the employer.
This method of recruitment hurts people. A recently redundant person when given ten tasks, all with a time limit, is overwhelmed.
I once spent six weeks of unemployment doing nothing but katas. Most companies rejected me and offered no feedback on my kata. Some even blanked me outright once I sent my presentation slides. A kata is a useful method of trimming the fat. If you get a hundred applicants and only five are willing to do a kata that’s useful. Those few that perform the task are likely more desperate for a job, you can pay them less. Yay!
That pendulum swings the other way. When you are trying to get the cheapest employees you are saying no to some of the best candidates. A contractor who used to make £600 a day is now looking for a stable career. They don’t want to work for free on an uninteresting task. Senior developers may reject these tasks for similar reasons. That makes katas discriminatory in my eyes.
When somebody does a kata it’s like working in exam conditions. They will comment code, write tests and push code with very useful messages. This isn’t always a snapshot of the way they will work.
“But Joe, I love using katas in my interview process, nothing else lets me see the candidates code skill”
Alternatives to a Kata
1. A brief discussion
This one is my personal favourite. With some very intentional questions, the kata is unnecessary. My best question to ask developers is “what’s your opinion on linting”. For context, linting picks up code errors and enforces consistent formatting of code. This question is very intentional. If you don’t know what linting is, you now have an opportunity you show you care about learning. If you do know what it is, you have an opportunity to show your maturity as a developer.
When you interview you are trying to assess skill level and willingness to learn. This does method both of those. I’ll follow this blog post up with some more questions shortly.
2. Accepting another kata
Most people have done a kata at some point or worked on their own personal project. It’s 2019 and a lot of developers have a Github account or a personal website. Instead of forcing your own task on them, would a pet project do? Check out their personal website and see what they do for fun. I find this much more respectful when offered and saves everybody time.
3. Paid Kata
It’s essential the candidate performs your niche task, I understand! If that is the case you need to be confident in your candidate by the time you reach this point. If you are asking somebody to work five days for free, put your money where your mouth is. Offer the candidate a day rate for task completion on the condition they don’t get the job. You are betting on them getting the job, and if they don’t you’ve been respectful. That developer will talk about you with high praise over bitterness. This is the offer I got from Simon Owen at my last job, he is wonderful.
4. Real work
“But Joe, I don’t want to pay somebody to do a pointless task.”
Instead, give the candidate a valuable one. Give the candidate access to your codebase and let them complete a bug ticket. Give access to obfuscated data and see if they can beat you at your own game. Couple this with paying the day rate upon completion of work and you now have a case study you can use. If they aren’t what you expected you’ve saved money.
So those are some alternatives to this current hiring process of
You won’t be surprised to find that I disagree with most of the way we currently do recruitment. I am working on it!
To the employers, A more time respectful application process will help you. I urge you to pursue this.
To the candidates, respect your time. I don’t accept katas as part of an interview process and I hope you will join me in the reasonable counter-offers.