Quality developers don’t just play an essential role in the success of every tech company; they also play an essential role in the Australian digital economy, with a study by Deloitte Access Economics and The Australian Computer Society (ACS) showing the information and communication technology sector is growing in importance to the country’s gross domestic product (GDP), predicted to reach 7 per cent in 2020. But with this sharp growth comes a bigger need for tech skills. “By 2022, the sector will have created an additional 81,000 jobs, so the big question for policy makers is where all the people will come from when we only have 3000 to 4000 graduates a year?” said past ACS president Anthony Wong.
A recent global study by Brocade shows tech companies are already starting to feel the effects of this tech shortage, with 54% of respondents predicting they will struggle with a lack of IT talent within the next 12 months.
When it comes to hiring quality developers in an environment of growing demand and shrinking supply, it can be easy to get swept up by an impressive resume, and tempting to keep offering ever increasingly enticing packages to attract talent to your organisation. However this can get you – and potentially your entire organisation – in hot water, if the developers you hire are not a good fit.
When assessing candidates, it is of course essential to consider whether they have the requisite skills your organisation needs at that point in time. For example, if you’re looking to create a gorgeous app, you’ll want a front-end developer with extensive design experience. If you’re looking for data management and visibility, though, you’ll be looking for a developer who is familiar with server-side languages like Ruby or Python.
But skills are only one half of the equation. The other, sometimes overlooked half is personality and cultural fit. These qualities can be difficult to discern in the space of just one or two interviews. To help you bring these to the surface, here are 10 questions to ask when you’re looking to hire quality developers.
1. Tell us about a project that you are proud of. What tactics and tools did you use, and why do you think they worked well?
Developers might be able to sprinkle some buzzwords throughout their resume, and even talk fairly confidently on relevant topics, but this question gets to the heart of their experience, and will really show if they have produced the results to back up their CV bullet points. It will hopefully also indicate whether the developer has any live projects with real users, which is a good sign the developer can create a functional product.
As strategic developer Andrew C. Oliver wrote in InfoWorld: “This [question] tells me a lot about what they know, what they value, what actual positions they’ve held on a team, and whether they actually think about what they’re doing.”
2. Tell us about a project that you are not proud of. What went wrong, and what would you do differently next time?
How people deal with their failures is far more telling than how they deal with their successes. You want to hire quality developers who are going to learn and grow within their roles, and to do so, they need to make mistakes, and be willing to learn from those mistakes.
3. How would you describe your learning style?
According to Google software engineer Saurya Velagapudi, a candidate’s learning style can reveal a lot about whether they’ll be compatible with the rest of your team.
“There’s not one ultimate way of operating, but you should know your team and ask them direct questions about how they learn and how they handle these types of things,” he said. “People learn differently – there are writers, readers, doers, copiers, and so on. For instance, maybe everyone on your team writes documentation about what they’ve done and then everyone else reads it – great! Your team culture is established, and if you interview a tinkerer who just likes to do stuff and keep to themselves, you can recognise that they could completely upend the workflow of your team.”
4. Have you ever had to work on multiple projects at the same time? How did you manage that?
Most, if not all, development teams are often working on several projects at any one time. Being a good cultural fit, therefore, means being able to work efficiently and multi-task to not to hold up any projects.
5. Have you worked with QA (quality assurance) before? How do you feel about, and how would you go about improving it?
QA is crucial when working out any bugs, but some developers can have a not-so-harmonious relationship with their QA team, which can cause problems down the track if a quality developer has not been hired. You want to hear that the developer values the QA process, understands its importance, and can handle the process without taking it personally.
6. Have you ever worked in a customer-support or client-facing role?
The best developers know that the user lies at the centre of their product, but not all developers have a good understanding of their end-user, particularly if they’ve always been tucked away in the back of the office where there’s little chance of interacting with them. Those who have been in more customer-facing roles, therefore, have a distinct advantage above those who haven’t.
7. What’s an example of a time you helped a non-technical person with a technical problem, and how did you explain it to them?
There’s the stereotype of the antisocial developer, sitting in a dark room with his state-of-the-art headphones on, takeaway containers strewn about the desk. In reality, though, quality developers have to play an active role in the workplace community in order to help the entire business thrive – and this occasionally means explaining complex concepts to those who may not have as much technical knowhow.
“The best developers are amazing at their craft – creative, confident, competitive, independent and cool-headed – but also able to explain difficult concepts to non-technical groups,” said Scott Sheppard of MoZeus Worldwide in an article for Forbes. “Think Richard Hendricks from ‘Silicon Valley’ trying to explain ‘Middle Out’ to the masses. I need developers who can create brilliant things, but also have a firm grasp on our industry and audience.”
8. Can you give me an example of a time when you demonstrated good communication and collaboration?
The best development is rarely done in isolation; more often than not, they are team efforts, the result of people putting their heads together to come up with the best solution. Good communication and collaboration, therefore, are important qualities to look out for when hiring quality developers.
“Good communication skills are crucial, perhaps even more valuable than technical aptitude,” says CTO of indico, Madison May. “We’ve interviewed quite a few individuals who are clearly extremely technically competent, but who have had difficulty clearly communicating the reasoning behind their decisions. They very well might be able to churn out an absolutely brilliant solution if they are left alone for a long period of time, but that’s not necessarily valuable to us.
“Collaboration is key, and code written in isolation is code that’s liable to become a problem.”
9. Ask the candidate for input on a real problem you’re currently working on
Testing candidates is a must. Many like to test their candidate’s abilities using stock puzzles, whiteboard coding demonstrations, or CS101 algorithm tests. The value of these types of tests, however, is questionable, as they often have little to no correlation with what the developer will actually be doing in their day-to-day.
Asking the candidate to demonstrate their skills with a real problem will be much more revealing, whether that’s asking for a code sample, asking them how they would go about solving an actual problem you’re currently facing, giving them a paid sample project assignment, or doing pair programming.
“Every single product I’ve built in my professional career has not had a correct answer. It’s more akin to carving a statue out of marble: you have a vague understanding of what you want to see, but you have to continually chip away at it and refine it until you end up with one possible result. You arrive at the answer, together, with your teammates. You don’t sit on a preconceived answer and direct your co-worker to slug through it alone.
“This is why I so strongly advocate for pair programming at some point in the interview process. Take an hour and knock off whatever bug or feature you were going to work on together … Build something real together. The very act of doing that entirely changes the power dynamic; I cannot stress that enough. Whereas previously you had someone struggling to find out a secret only you were initially privy to, you’re now working together on a problem neither of you have a firm answer to yet. Before it was adversarial; now it’s collaborative. It’ll put your candidate at ease, and they’ll be able to demonstrate their skillset to you much easier.”
10. How much do you know about our product and our organisation? Is there anything you think we could be doing better?
Another key factor to look for in developers is a keen interest in the product, as well as the company. Are they asking questions about the company’s business model, or its marketing plans? Have they had a look at the product (if it exists) and come armed with their own recommendations? These are the people who are going to work hard to improve the product, rather than just routinely tick tasks off their to-do lists.
As Velagapudi said in an interview: “If this person is an early hire, they need some product vision to go along with a desire to build. Do they understand what the product is for and who the market is? For instance, in Google, if I didn’t love the product I worked on, I’d have a very transactional relationship with my work. I wouldn’t think about how the code base or product or user base grows and how that affects the technical roadmap. But … you need someone with that kind of thinking, who can understand where the product is going and translate that into technical terms to push that forward.”
While perhaps not as crucial as hiring the right employees, choosing the right software for your business is still very important. If you want to make sure you’re making the right investment and saving your company future headaches, check out our free checklist How to choose the right software for your business. Download it now.