Code reviews should be a part of every development team’s day to day lives, but not entirely for the reasons we might think. I recently was reminded of that in an unexpected arena – while recruiting a candidate for an open developer position – and it had nothing to do with the code itself.
When interviewing new talent, cutting through someone’s practiced answers to the heart of their real capabilities is a challenge for all businesses – but especially so in the world of software development. The only way to see if someone makes a good developer is to see them write code.
Like many software companies, we have a coding exercise that we share with candidates and then review their approach during subsequent interviews. This allows us to discuss techniques, see how conversant they are in industry knowledge, explore other ideas, and gauge what the person does with feedback.
When going through the process recently I was struck by how constructive, useful and interesting that particular conversation had been. (…And appreciated that it did result in an accepted job offer!) We had a great discussion about the approach this person took, shared a natural, easy back-and-forth, I learned a new technique I hadn’t seen before, and we all walked away with a sense of how working together will be. The candidate commented on how remarkable the experience had been for him as well.
As an aside, I also recently came across exercism.io — an open source project by Katrina Owen – that helps developers hone their programming skills by offering incremental problems to solve and then discuss one’s solutions with the community.
Solving a programming puzzle isn’t new to recruiting or to teams… but the reinforced takeaway for me is that the value lies in the discussion, not the actual code itself.
It’s almost (not quite) irrelevant. Or, better put, the code provides a context in which a conversation can be had. And it’s the conversation that matters.
Exercism is a remarkable project. It’s always wonderful when an existing idea is tweaked just so to suddenly become something new. I’ve recently signed up to take on learning a new language (mostly for fun and mental exercise) and have been struck by how beneficial the conversations are.
Ms. Owen puts out a regular newsletter that gives insight into how the project is going (both good and bad) and how you can contribute. The community has put some good thought into accommodating people at all experience levels, and it’s a great way to learn how to get involved with open source projects.
Likewise, here at Soliant, when we take a moment to explore work together, I always find the conversations invigorating. Talking to others about code really does make me a better developer. While the stereotype goes that coders are loners toiling away in the dark, the truth is quite different – one of the things I love about Soliant is how much people talk to each other. I think it’s a sign of a mature organization and a healthy team.
So let’s talk more. Take a look at your work, share it with others, pull it apart, ask questions. It’ll make us all better artisans, together.