My colleague, Will, has been attempting to hire developers. He’s a bit frustrated. Take a look at Explaining the tech job market. Will is frustrated with the level of competence he’s seeing in candidates. That prompted him to discover Parnas’s Law of Hiring:
Parnas’s Law: The more incompetent developers you hire, the more you need.
There’s plenty of anecdotal evidence to back this up. In fact, one of the reasons agile projects succeed more often than traditionally planned projects is because there’s no place for incompetent developers to hide. Either your stuff works today and tomorrow and the next day or it doesn’t.
So how do you recognize competent developers? Well, the first thing, is analyze the job. Competent developers don’t care what language they use, although may well have a preference for some languages over others. If you write a laundry list job description, you won’t attract a competent developer. Think hard about the functional skills you need, as well as the domain expertise required, and how well a candidate has learned products in the past. Make sure you ask behavior-description questions in an interview to discover what released products the developers worked on, and how they worked. Develop an audition. Check references.
There’s a corollary to Parnas’s Law of Hiring: The more incompetent the hiring manager, the more incompetent developers you hire. Sad, but true.