Many software development team managers struggle with assessing development candidates during the recruitment process. It’s important within these interviews to stay focused on the number one goal, finding a peer that will help fight the real enemy, complexity.
In the software development industry, it can be challenging to find an individual who can balance ambitious timelines and create maintainable, readable, and efficient code. If you choose a team member with either the wrong attitude or subpar talent, you will most likely only make your load heavier. But, if you choose a team member correctly, you may just have a fighting chance.
If you’re a movie buff like me, you will remember Akira Kurosawa’s epic film, Seven Samurai. In the film, there’s a scene where samurai team leader, Kambei, is choosing warriors to fight a group of bandits that are tormenting a farmer’s village. Kambei’s selection process is quite simple, invite the candidates to walk though a door into an unknown room. He then assesses their reactions. Are they walking into danger? Will they be able to react successfully to what they find?
Just like Kambei, when I’m assessing development candidates, I like to have an exercise where they perform their craft in front of me. I then evaluate them in 5 main areas: knowledge, code craftsmanship, architecture/design, refactoring/tests, and peopleware.
The first thing I want to assess is how familiar the candidate is with their tools. I pay specific attention to how fast they navigate menus, use shortcuts, and how easy it is for them to create artifacts in each tool. In our live assessments at number8, I specifically analyze the following:
Data Store
Web Development Language/Framework
Testing Framework
The main deliverable for most software engineers is code. So really, we are interviewing collaborative authors to write and revise different parts of the same text. Therefore, we have to adhere to certain principles if we want other poor souls to make sense of our code.
For junior talent, coding principals can sometimes be easily dismissed, but professional developers know better. Good code means that other developers can read the text like a story. The code should be modular enough to assign separate parts of a solution to each team member to maintain. In essence, good code has to be:
Clean | D.R.Y | Readable | Expressive
In this area, I want to see the candidate’s understanding of services and how well they distribute the responsibilities of the proposed solution. I pay specific attention to the following activities:
Whether it’s to make things clearer or to solve a bug, most of the time software engineers are reading and changing code that someone else wrote. Because of this, I always pay close attention to testing. I believe, the only way to make sure a candidate is really fixing an issue (instead of making things worse) is to run create tests. Unit and integration tests are simply not optimal in today’s world.
Peopleware is a book and term coined by the American software engineer, Tom Demarco. The book explains the importance of understanding how a software developer fits into an organization’s culture and how well they will work alongside the rest of the team. When assessing this area, I pay particular attention to the following:
In conclusion, software engineering is a complexed and interesting profession and engineers are always moving from one state of ability to another. Your candidates could be well-rounded or specialists, but there are always specific foundational blocks that are common to all. Assessing development candidates with the outlined blocks in this article will provide you with an ability to easily gauge what a new team member will bring to the table.
Remember, when you conduct an interview, you are not trying to find a genius or accept every candidate; you are simply looking for warriors that are prepared enough, and have the right attitude to get the job done and fight by your side.
About the Author: Stuart Matamoros is a Team Manager and has been with number8 for 9 years. He was instrumental in creating our candidate assessment process, which includes a short assessment, live assessment coding challenge, and personality assessment.
Provide your information to talk with a number8 Account Executive about your development needs today and feel what it’s like to be listened to before being sold a solution.
Let us help you add highly skilled, versatile developers to your team.