One of the repeating motifs of recruiting in the software industry are mantras of “talent”: “We recruit the best talent”, “talent attracts talent”, “we value talent” and so on. Some companies have so called “head of talent”, “talent acquisition”, “talent development” professionals on their payroll - basically a re-branding of HR. With the amount of conversations, conference talks and hype going on around talent, you would expect people will have an answer to the question “what is talent?”. You’d expect, and you’d be wrong: “it’s like porn, you know it when you see it” is the answer I usually get - and as with porn, this only conveys that the word is merely an unhelpful judgemental label. If you cannot give some attributes of “talent”, how are you going to find it, develop it, keep it? Also, it’s not as if the subject of talent hasn’t been researched - quite the contrary! Although research is far from being exhaustive of the subject (or anything related to intelligence for that matter), there is plenty we do know. As it turns out, most of what we hear about “talent” in the software industry is just plain wrong and based on naive and deprecated models if not outright self delusions. For example, Joel Spolsky has observed years ago that almost all companies are somehow convinced they hire only the top 1% of developers - a clear case of selection bias. When people tell me they want to hire the top 1% of developers, I laugh. First because as Joel Spolsky noted everyone says that. Second, it implies we have some measurement of developers abilities - if we had that, why are we working so hard on interviews? Third, do they mean “top 1% of the population” of developers or the developers with top 1% of the skill scale? they are not the same. Fourth, it assumes that skill is static and when they hire a top 1% developer she will remain a top 1% developer - in other words that performance is dependent only on the identity of the developer.
All of these assumptions are completely wrong.
Talent is multi dimensional
Suppose for a second we have some kind of metric by which we can sort developers on a scale to choose the best 1% of them. If such a metric exists, design a test for it and stop doing interviews! The reason why we have interviews, test projects and hiring committees is that there is no metric or even a group of metrics which can be measured and by which we can evaluate developers. In sports a large surrounding industry of gambling and statistics popped up because while the game itself has a clear score the relative strength and weaknesses of players and teams are far from being easily measurable - and it isn’t even clear which attributes impact the game and should be measured. Likewise, software engineering involves many different skills and let’s be honest here, we don’t really know what skills contribute to success and which of them are necessary or sufficient. But unlike sport matches, in software engineering we don’t know how to score relative performance of engineers - we have no measurement of goodness for code nor are we likely to ever have one. There are many different dimensions to goodness of code, and their relative important can change between projects or time. Even performance which is the most measurable of these is contextually defined, for one project performance means throughput while for another it’s the 99th percentile of latency.
Talent isn’t static
Everyone wants to hire talent, but few people are asking “where does talent come from?”. There are a lot of evidence that “ingrained talent” is largely a myth. The more we learn about the brain the more we understand the answer to the nature vs nurture question is always “both”. On the one hand, we have Mozart: a brilliant musician from childhood; on the other side of the spectrum we have the Polgar sisters - geniuses by design. But Mozart was born to a musician father and grew up immersed in music, nurtured from an early age and no one can tell how he would have developed in another family. Conversely, how many potential Mozarts have we missed due to lack of nurture? no one knows.
A genius is not born but is educated and trained….When a child is born healthy, it is a potential genius.László Polgár [source]
None of us started proficient in programming, nor were we born with the ability to speak or think - we developed these abilities. If there’s one thing we know for sure about intelligence, it’s that it is adaptive - in fact, the general definition of intelligence is “adapting to provide better results predictably better than random”. The “better than random” part is important, because there’s nothing intelligent in winning 50% of coin tosses (or making profit in a rising market). The “adaptive” part is of particular interest though, as all strategies are specialized to some degree; being good at something doesn’t mean you’ll be good at something else, a fact worth remembering when hiring fresh graduates based on their University score - being good at University tests is not a transferrable skill to developing software. Intelligence is adaptation, and while it’s true that some individuals adapt faster than others it should be clear the reasons for that are mixture of innate abilities and environmental factors. All standard tests are remarkably bad at measuring this because they are focused on measuring specific skills and not adaptation. Personally I believe the best predictor of a person’s adaptive abilities are what we call “personality traits” - things like curiosity, openness and critical thinking (it turns out this belief has grounding in research). Anyway, if we accept that intelligence is adaptive it should be clear any measurement of current skill is less interesting than the adaptive potential of the individual. “Talent” is a network effect and exhibits all the familiar behaviors of network effects. It shouldn’t be surprising to learn that people better develop their talent in groups. The history of innovation demonstrates that innovation isn’t driven by heroic geniuses but by intricate collaborative networks - although popular media would have you believe otherwise. Indeed, people augment each other not only in skill but in adaptation and learning as well.
“we don’t have these Netflix superstar engineers to do the things you’re talking about”, and when I looked around the room at the company names my response was “we hired them from you and got out of their way”Adrian Cockroft [source]
How often was someone who was thought to be talented in his previous company hired only to have them perform poorly in the new one? How many times have you seen “diamonds in the rough” who displayed no talent in one workplace but suddenly became a rising star after moving to a new one? The prevalence of these occurrences should be enough to convince you that talent development is highly linked to the environment. Understanding this, we shouldn’t say that “A graders hire other A graders, B graders hire C graders” but rather that “A graders create A graders, B graders create C graders”. You’ve witnessed this yourself for sure - the loss or rise of motivation, the challenges, mentoring or put downs by teammates can make a star a disgruntled moron or spark flames of wisdom and enthusiasm in a once mediocre person. You hire potential talent, but manifestation of talent is developed.
Talent isn’t linear
The entire world has an estimated 25-30 million developers, and Google reportedly employees over 100,000 of them. Even if we think this number is exaggerated, Google, Amazon, Facebook, Microsoft and the rest of Silicon Valley giants employ hundreds of thousands of developers - well over the 1% mark. It’s obvious they can’t hire “the top 1%” simply because they are too big, but perhaps a small startup can?This is what skill distributions looks like, for any measurement of skill I have ever seen. For natural skills or attributes the distributions tend to be normal or log-normal, but is this the case for results of applying these skills? We have argued before that talent is a network effect and for network effects power distributions reign, e.g. the Zipfian distribution of city sizes. Skill isn’t uniformly distributed - which means there’s a big difference between hiring the top %1 of the population and hiring the people with the top 1% of results and that difference is extremely large when power laws are involved. That’s the Pareto principle in a nutshell, 80% of results come from 20% of the effort. The developers producing the top 1% of results, for whatever measurement of results you choose, are a tiny fraction of the population. You are unlikely to ever meet one. So let’s assume people mean the top 1% of the population. Here’s what the compensation distribution chart looks like:This specific data is self reported from the San Francisco area and the tail goes well beyond the million $ mark. All compensation and wealth distributions have similar shapes, the top 1% of any free profession don’t make 50% or even 100% more than the mean, they make hundreds of percents more1. In other words, there is no way for a startup to pay a top 1% developer (but perhaps they can offer some other incentive, and I don’t mean stock options because that’s crap).
Another model of talent
If all of these prevalent assumptions about talent are wrong, what does it say about our hiring and management practices? what do managers even mean when they set out to hire “good developers” given that their goodness cannot be measured and is highly volatile? And if talent is as László Polgár claimed not born but rather developed, what is the value of testing for present level of proficiency. Is it possible that where we hire to is more important than who we hire? It’s clear we need a better model of talent, one which focuses on the conditions suitable for development and nurture of talent rather than attracting talent. I have some hunches about what this model would look like, and there are definitely tell-tale examples out there to learn from. But this kind of new model has no chance of taking root in an industry that it currently optimized against it - we need a radical shift in management mindset.
It’s not clear that there’s a strong correlation between skill (even assuming you know how to define and measure it) and compensation. I’ll ignore that for the sake of the argument. ↩︎