A New Approach to Finding Top Software Engineering Talent
Many software companies are searching for the elusive "top performer", regardless of specific technology or skill set. Most struggle to hire the best talent on a consistent basis, and as a result, one of the most common questions my clients ask is, “How can I find more top software engineers?” While the answers vary, the core issue is that hiring managers are often focused on the wrong criteria when considering who to interview; in-turn they are passing up promising talent.
The standard method for hiring a software engineer is to identify the must-have technologies or skills. A desired skill set these days could range from experience with Ruby to knowledge of frameworks like Spring or Hibernate. These skills are hard to find and in high demand, and unless you have the luxury of a long hiring process, there is a better way to identify top performers -- and to identify them faster.
Superstars Often Learn On Their Own
Try to shift the focus from engineers who have performed in their roles and consider people who have accomplished significant things outside of their "day" job. Examples could be a substantial web or mobile project someone completed on their own time, where the project demanded they conduct research and learn challenging new technologies. Take it a step further and consider designing your interview process around a task or problem that will allow candidates to showcase their talents. The key is to find people who are smart, driven and have demonstrated they can learn new skills rapidly. This is the kind of software talent you want on your team, and superstars want to learn - therefore you must offer them a chance to continue to learn things they find interesting.
A Blended Approach Is Best
Often an opening will require a candidate have a specific skill in order to be productive or valuable to the organization. And while I'm not suggesting companies ignore these requirements, I am encouraging a blended approach to interviewing, where more emphasis is placed on what people have accomplished versus what technologies they know. Ask yourself this question: if you were looking for the best carpenter, would you look at the quality of their finished work, or would you want to test their knowledge of obscure facts about building materials or tools? By being open minded to talent that falls outside the typical requirements, you will see an influx of highly skilled, highly motivated talent just waiting to be discovered.
Rethink the Interview Process
While well worth it, this hiring approach may require companies to re-think the way they interview. In my opinion, the two popular methods that do not work well are what I call "Brainteaser" and "Computer Science Fundamentals." The brainteaser interview includes questions like "Why is a manhole cover round?" or "How much does a Boeing 747 weigh?" The CS fundamentals interview aims to test a person's core CS knowledge with questions like "When do you use a linked list instead of an array?" or "What is the purpose of garbage collection in Java, and when is it used?" Both methods are flawed as they are easy to prepare for and often times, companies recycle the questions or use examples found online. In reality, both models are a better measure of how well prepared someone is for an interview over how strong a performer they are.
Seek Out Innate Talent and Accomplishments
A better approach is to design an interview process that aims to single out accomplishments or specific projects in order to identify a candidate's innate talents and potential for success. Some companies design a technical problem and ask candidates to spend part of the interview completing a solution using whatever technologies or tools they are comfortable with. In either case, the goal is to understand and measure all of the variables that go into making someone more or less productive than their peers. This approach requires a bit more effort, time, and creativity, but I feel it's the best way to evaluate a candidate's technical skill, and more importantly, their problem solving ability and ingenuity.
Competition among hiring managers for top software engineering talent is fierce, but highly competent candidates are out there. If you are able to shift the focus away from specific technical skills, and put more emphasis on accomplishments and the complexity of a candidate's work, you will get an influx of outstanding talent that your competitors have overlooked.