The Conundrums of Hiring Software Developers

Software developers are notorious for having different levels of skill. Along with that are the various types of software developers, stereotypes, preferences for work environments and unfamiliar skill sets. These factors can put any recruiter or HR representative into a conundrum.

A good parallel for recruiting software developers is the NBA draft. The only people who can really tell you which potential draft candidates fit the team and will perform well are either other players who have played with the draft candidates, coaches and scouts who have watched some of these players like hawks for the past months, and to a lesser extent, religious fans who follow the games. When interviewing for a software development position, most interviewers have never even seen a single line of code. Even worse, some interviewers are terrible developers themselves. I say this is worse because bad software developers are like bad basketball players. No one wants them on their team for a reason. Either because they believe in some terrible methods in developing software or their understanding of software development is just plain wrong. (Imagine a guy who thinks the wrong answers are right to all his questions.)

So how do you tell if a software developer is good at all? The same way players make it to the NBA draft. Getting really good at what they do and having something to show for it. Decent developers will have a track record that can be confirmed by third parties such as co-workers, actual working products, and satisfied users. Other software developers can look at a peer’s work and can immediately tell you if their work is poor, decent, excellent, or phenomenal. A comparison can be made between plays made by Michael Jordan and the plays made by the star high school basketball player. Both look pretty good depending on the context, but you need someone who knows what they’re talking about in order to even know the difference between phenomenal and decent in both areas.

I draw a comparison between professional sports players and developers because I believe the skill and talent levels between great players and good players are just as huge in both worlds. A basketball player on a NBA team is pretty damn good compared to 95% of all basketball players in the entire world. A software developer who is of certain (genius? excellent? hacker? I’m not even sure what they call these types.) caliber will produce programs and solve technical problems 95% of software developer can’t even comprehend. People recognize Michael Jordan for his talent and skill because he was much better at basketball then everyone else. People recognize legendary software developers for their similar prowess and skill. Some of these skills are just as publicized in the media. Here’s a few examples:

  • Napster was created by one guy in college because he wanted to share music. Not a whole lot of people can create a peer to peer network single handedly back in the 90’s. The idea was new and the ability to share music as freely and with quality has never been the same.
  • Copying DVDs. This was done thanks to the work of a few guys, even so, it still takes talent to understand how to reverse engineer anti-pirating security schemas. Even though, these guys argue that the protection scheme was pretty weak.
  • On a related note, one guy did crack the HD-DVD encryption scheme himself. Why are either of these last two accomplishments important? It has allowed pirates to copy movies at will. Something that hasn’t been accomplished since the invention of VHS recording but now with higher quality and larger distribution channels.
  • Bit torrent. This took some thinking and understanding of networks in order to implement and was implemented by one person. I’m willing to bet most software developers don’t have a clue how this thing even works.

So what’s the big deal if a person can reverse engineer a multi-million dollar anti-pirating countermeasure or give people the ability to distribute millions of files at a time? These last two inventions have allowed people to enjoy and use their computers in ways that weren’t possible before. Business types call these things innovations which can have the potential to bring in millions of dollars, just like an NBA basketball team that wins a championship equates to millions of more dollars for the owners. This is why recruiting software developers is a big deal, even if most companies don’t know it. Because in the end, you can’t have a great company without great people.

Leave a Reply