As sports fans know, the NFL draft is this weekend. In many ways, it’s the most exciting event of the year for football fans. Every team gets to participate, and fans have the chance to believe that their favorite team has improved itself, at least until games are played and reality sets in. Mike Tanier has written the best article I’ve read analyzing the meaning of the NFL draft — Made, not Born. I don’t want to talk about it in terms of football, though, but rather in terms of hiring software developers.
Years after the draft, players are called a “bust” or a “steal” based on how they perform, but Tanier’s inarguably true argument is that how players develop once they reach the NFL is more important than their qualities when they were drafted. Incredible athletes who are drafted into a bad situation often have short, unimpressive careers. Lesser athletes who are drafted into good situations wind up in the Hall of Fame. People obsess too much over draft analysis and not enough over how well teams develop players. (Indeed, many teams that are considered great at picking players in the draft are more likely great at developing the players they pick.)
What does this have to do with software development? Obviously hiring developers is different than drafting football players. What I think is similar, however, is that what you do to enable programmers to succeed once they start work is just as important is hiring the right people in the first place. There are all kinds of situations a talented programmer can be placed in that will lead to their writing poor quality code and developing bad habits that are hard to break. A lesser programmer on a good team with solid processes and better mentors can produce great software.
This is one of the things I wonder about when I read articles about Google’s hiring practices. Does Google produce the software that they do because they hire incredibly talented people, or do they create an environment for developers that enables them to make the most of their talent? I expect that they’re good on both counts, but people seem to obsess more over the former than the latter.
April 23, 2009 at 10:00 am
Very good article. Does this mean that company leadership is made, not born? And if so, do CEOs really diserve the astronomical salaries they earn?
April 23, 2009 at 10:05 am
Richard Posner (a big believer in free markets) believes that there’s a market failure with regard to CEO salaries.
April 23, 2009 at 10:20 am
A lot of folks obsess over talent vs process because hiring the wrong talent means they made one mistake at a single point in time. Having the wrong process means they make a mistake every day they work.
April 23, 2009 at 11:13 am
Jeff for the win!
April 25, 2009 at 7:00 pm
Nice point… I mean I think this is the perfect counterpoint to the Joel on Software hiring paradigm. I mean Joel has a point that it is really hard to get rid of someone (though it ought not be as hard as he makes it out to be), but as an organization it is critical to focus on the other side too.
Are you developing people and procedures (i.e. a “culture”) that will lead to success? If not, you will have a hard time getting good people ( of course these days I don’t think this is nearly as hard as it has been ) and even when you get some you wont see that much improvement.
In fact, if someone is good at software, they will seem to be a drag if you are in bad shape, they’ll keep writing all those tests and trying to refactor, exposing all the cruft you’ve got.
Solid organizations will have their feet in both camps, but it is easy to overfocus on the hiring aspect. Going back the football analogy, take Tony Romo as an example. I know as a Dallas Cowboy’s fan, the lack of post-season results is frustrating, but how many teams would not love to have him on their team? He was not a high draft pick (in fact was he picked at all?) and the Cowboys somehow managed to develop him into a Pro-Bowl Quarterback.
April 25, 2009 at 9:04 pm
Except that by the time a player gets through the NFL, he’s pass through a Pop Warner screen, a High School screen, a College Screen, and a Professional screen. When you’re dealing with the top <0.1% of the player pool, you already know that you’ve eliminated most of the chaff. When interviewing for devs, you are looking at both the hall of famer and 10 year old fat kid with ADD in the same pile of resumes
April 29, 2009 at 11:06 pm
@nialscorva: That’s why Dead Trees are a poor way to filter for talent.