I sent these excerpts to all on my team and many more developers and developer managers at work.
The whole chapter is VERY insightful on understanding what drives top developer talent.
…That's not a new idea.
Fred Brooks wrote about it in 1974, and the study
he quoted was published in 1968. But I think he underestimated the variation
between programmers. He wrote about productivity in lines of code: the best
programmers can solve a given problem in a tenth of the time. But what if the
problem isn't given? In programming, as in many fields, the hard part isn't
solving problems, but deciding what problems to solve. Imagination is hard to
measure, but in practice it dominates the kind of productivity that's measured
in lines of code.Productivity
varies in any field, but there are few in which it varies so much. The
variation between programmers is so great that it becomes a difference in kind.
I don't think this is something intrinsic to programming, though. In every
field, technology magnifies differences in productivity. I think what's
happening in programming is just that we have a lot of technological leverage.
But in every field the lever is getting longer, so the variation we see is
something that more and more fields will see as time goes on. And the success
of companies, and countries, will depend increasingly on how they deal with it.If variation in productivity increases with
technology, then the contribution of the most productive individuals will not
only be disproportionately large but will actually grow with time. When you
reach the point where 90% of a group's output is created by 1% of its members,
you lose big if something (whether Viking raids, or central planning) drags
their productivity down to the average.If we want to get the most out of them, we need to understand
these especially productive people. What motivates them? What do they need to
do their jobs? How do you recognize them? How do you get them to come and work
for you? And then of course there's the question, how do you become one?
More than Money
I know a handful of super-hackers, so I sat down and thought about what they have in common. Their defining quality is probably that they really love to program. Ordinary programmers write code to pay the bills. Great hackers think of it as something they do for fun, and which they're delighted to find people will pay them for.Great programmers are sometimes said to be indifferent to money. This isn't quite true. It is true that all they really care about is doing interesting work. But if you make enough money, you get to work on whatever you want, and for that reason hackers are attracted by the idea of making really large amounts of money. But as long as they still have to show up for work every day, they care more about what they do there than how much they get paid for it.Economically, this is a fact of the greatest importance, because it means you don't have to pay great hackers anything like what they're worth. A great programmer might be ten or a hundred times as productive as an ordinary one, but he'll consider himself lucky to get paid three times as much. As I'll explain later, this is partly because great hackers don't know how good they are. But it's also because money is not the main thing they want.What do hackers want? Like all craftsmen, hackers like good tools. In fact, that's an understatement. Good hackers find it unbearable to use bad tools. They'll simply refuse to work on projects with the wrong infrastructure.