The war for developers is hotter than ever these days.
Software developers are currently enjoying one of the brightest employment outlooks with unemployment rate less than half of the national average (a mere 2.5%) and a projected growth rate of 17% over the next decade. With such high demand, it’s little wonder that Silicon Valley software companies routinely make news for poaching talented developers from one another. Even outside of Silicon Valley, hiring talented developers is a real challenge.
So if hiring a developer is so challenging, how can you ensure to hire those top performing developers?
One mistake many companies make is trying to hire a developer, or team of developers, too quickly. This is especially tempting when a project’s demands are stretching the current development team to the limit. Unfortunately, however, a quick hire—and especially multiple quick hires—can ultimately be counterproductive.
Researches have shown that A-players can have a profound impact on your company's success, by achieving as much as a ten-fold difference in productivity and quality among developers and development teams, even within the same industry.
No one understood this principle more than Apple CEO, Steve Jobs, known for building a team of some of the most innovative and driven designers and engineers in the industry. In the book In the Company of Giants: Candid Conversations with the Visionaries of the Digital World, Jobs spoke at length about how hiring great people takes time: “I noticed that the dynamic range between what an average person could accomplish and what the best person could accomplish was 50 or 100 to 1. Given that, you're well advised to go after the cream of the cream. That's what we've done. You can then build a team that pursues the A+ players. A small team of A+ players can run circles around a giant team of B and C players. That's what I've tried to do.”
When it comes to people in the context of work, you can generally group them into three categories: A, B and C players. A-players are your star performers. They are the top 5% of people who strive to excel, adopt high standards for themselves, work collaboratively, take initiative and embrace change, rather than resisting it.
B-players are the majority and they are your competent, steady performers. They can successfully do several roles and are considered as ‘good, but not great’. There are many types of B players, but most are loyal, don't live and die for the next promotion, and are not driven by power, status and money as are A players, who live for little else. They also tend to stay for longer time period of times and therefore tend to carry the corporate history with them.
C-players are the bottom 10%. They do just enough to scrape through, don’t volunteer to take on new projects, like (and cause) conflict and have little to no personal accountability or responsibility.
To make matters worse, A-players admit to being maddened by the B players' (not to mention C-players) seeming indifference to what matters most to those at the top. And as Steve Jobs have stated repeatedly, adding just one B-player in to the mix changes it all.
So How Can You Hire A-Players Talent?
Your first task should be to fill in your pipeline with potentially top notch qualified candidates. But how can you do that?
The best way to hire A-Players is to be an A-Player yourself. A-Players want to work with other A-Players, which also means that A-players tend to hang out with other A-players. Reach out to your top performing employees and ask about their friends. You can also reach out to great people you have worked with in the past and ask for referrals. Previous studies have shown the referrals are the leading source for successful hires.
Some of the best and brightest developers are already hard at work in the open source community, making that community an excellent source of information when it’s time to hire new talent.
One way to vet open source talent is to look for top contributors to open source projects, or look for contributors to open source projects similar to your company’s projects. This will help you identify candidates who demonstrate the skill-sets you need. You can even examine the code they’ve written and submitted to open source repositories, such as GitHub, to ensure they possess the level of expertise you require.
Another popular method of finding top-level development talent is through hackathons, programming sessions where programmers meet to test their skills, solve a problem, join forces to create a new app and generally have fun. Such events are a great way to see programmers in their element and scout for top talent. A word of caution, however: Since there are a variety of different kind of hackathons—including mobile, open source, Web applications and more—be sure to attend a hackathon appropriate to your market and goals.
Many programmers have their own personal blogs or might be mentioned on the blogs of other programmers. This can be a great source for potential candidates, and it allows you to learn about the candidate before even contacting him or her for a resume. You will be able to judge their technical skill, problem solving ability, and communication skills all in one place. Here are a few blog suggestions that might be helpful to start your search.
Previous mentioned research on the 10X principle of developers, also found “no relationship between a programmer's amount of experience and code quality or productivity.” In other words, some of the best developers may well be developers who do not have a resume chocked full of amazing, high-profile companies they’ve worked with in the past. Some of the best developers may be individuals who are, as of yet, undiscovered talent.
An important step to discovering such hidden gems is preliminary testing. There are a number of services, such as Toptal and Codility, which specialize in helping companies test programmers before hiring them (usually before even interviewing them). It gives you objective insights into your candidates programming skills, showing you their thinking process before you interview them.
When you are reviewing CVs and while you’re interviewing developers, look for your prospective employee’s aptitude in general, especially as it relates to their ability to learn new skills, solve problems and contribute to their workplace.
In today’s fast-paced technological landscape, programming languages, frameworks and environments come and go. C, C++, Java, Python, PHP, .Net, Objective-C, Ruby, Ruby on Rails and Swift have all enjoyed—and in many cases are still enjoying—their time in the limelight. Yet, the rapid rise of many of these languages highlights the need to hire developers who show a natural aptitude for learning and adapting to new technologies, not just an impressive skill level with a single language.
One way to determine a candidate’s aptitude for learning is to look at the history of languages they have learned and used. A good developer is always learning new languages and frameworks, as much out of curiosity and a desire to stay current as for financial gain. Does the candidate in question show evidence of keeping up with new programming languages and frameworks? Or are they still using older, less appropriate solutions to tackle modern problems?
Here you can find the top 7 questions to help you identify an A-player based on his past successes.
You should never, ever hire a programmer without first having the opportunity to see his actual output.
It can sometimes be very tempting to hire the first programmer that looks promising, but you should never extend an offer until you have seen the work that your prospect can actually produce. The most typical form is giving a test project, but you can also bring your candidate as a consultant, or adding a probationary clause to an employee agreement.
Steve Newcomb, founder and CEO of Famo.us, describes how his company follows the above advice and hires only the best, using a trial-period approach that involves two-week consulting contracts. At the end of the evaluation period, “the potential employee must present what he or she has been working on. The rest of the development staff then votes on whether to keep them, evaluate further, or kick them off the island. The vote has to be unanimous for someone to be hired or asked to leave.”
Between their initial testing and the trial period, Famo.us can begin a relationship with a new developer confident in that developer’s abilities. Just as important, a trial period provides an opportunity to see if the developer will fit in with the company’s culture. Even the most talented developer can quickly become a liability if they clash with their teammates and the rest of the company.
In today’s competitive environment, there’s no denying that finding and hiring top development talent can be a real challenge. Nonetheless, as studies have shown, a team of top development talent can pay for itself many times over. Looking at the open source community, taking your time, focusing on skill rather than experience and aptitude instead of one specific skill, can go a long way toward ensuring your company has the best and the brightest.