A software company has a senior position to fill. They contact me, directly or through recruiters, expressing great interest for my profile. Sounds great!
Now, they have a nice coding test they want me to accomplish. It can be a 1 hour general coding Q&A, a FizzBuzz-style coding challenge, or even a full-fledged mock app specification.
Their coding test may aim to:
- Weed out the non-coders from the ones that do
- Only get the developers that are interested enough to perform their test in a ordered and timely manner.
- Gather insight about my proficiency for their position
But they’re failing, on all three points:
- I know how to code, and can show it. They can check my blog , my numerous repositories on GitHub , my public sample projects , my freelancing portfolio , and even my fully-working apps and sites out there .
- I’ve already expressed interest in their position. I have a day job, and several side projects: I won’t spend a sizable chunk of my free time so they can tick some boxes about my coding skills.
- No matter how general or specific their tests is, it will never replace the proper way to see if someone fits your position: work with them on the real job, and see how it feels.
My main gripe with coding tests is that they ask me for an investment of my time and resources so that they can gather information about me, but I’m getting nothing back. What I look for in an interview process is to get to know the company, their culture and work environment; the coding test gives me none of this.
Some alternatives to coding tests that benefit both parties:
- Bring the candidate to the office for a day , and work together. They’ll get to know the company and its environment, and the company can see how the candidate fits within their team and culture.
- Pair program with people from your team for an hour or two ( Screenhero works great), so the candidate can learn from them as they learn from him/her.
- Assign the candidate a real feature/bugfix to implement from home, remunerated accordingly . Make them sign an NDA, and both parties will have come out benefitted from the exchange.
If your company need programmers that can perform FizzBuzz and recursive file searches in 10 minutes as part of their daily tasks, stick with your test. On the other hand, If you want people that fit your team and workflow, that can build solid features according to spec, and that can communicate clearly with fellow devs and business people, test people on that regard. There’s no better test than the real thing.