The Wall Street Journal recently published an online article headlined Mobile App Talent Pool Is Shallow. In this article, Joe Light discusses the problem that a lot of Smartphone app companies think they have: they believe there are not enough engineers with experience developing software for mobile applications.
A software developer reading that article may jump at the perceived opportunity: Hey, I better learn iOS, or Android, or Windows Phone 7, or something! A recruiter reading that article may experience a feeling of dismay: Crap, there’s nobody who can do what we need doing! They would both be wrong.
Rather than a real paucity of qualified engineers, what the article really highlights is a fundamental flaw in the way many companies hire engineers. Instead of focusing on “Engineers Who Can Write Software for Smartphones,” they should be seeking engineers who can write good software, period.
If you know how to program and do it well, the platform is irrelevant. Likewise, a poor programmer who claims eight years experience on the iPhone is still a poor programmer. I would rather hire the good programmer who has never programmed for a mobile device than a “mobile app expert” who can’t program his way out of a paper bag.
If you don’t believe this is a real problem, take a few moments to peruse Dice.com or Craig’s List, and notice all the job listings looking for “8 years exp in ObscuroSoft version 2.5, knwlge of Arcaniastro X desirable.” These types of ultra-specific requirements can in fact backfire. A developer who has spent eight years memorizing the exact names and parameters to every function in some esoteric API has wasted eight good years that could have been spent learning new programming paradigms or analysis techniques.
The one possible exception I can think of is for a contract of less than three months, when you have one specific bug or change that needs addressing, and your normal developer is temporarily unavailable. Even then, three month contracts rarely stay as three month contracts. New issues crop up and customer demands change. So this is an even rarer instance than it may seem.
Remember, you’re hiring a person, not a technology. I believe that’s a good general rule in all hiring: you want really smart dedicated fun people on your team, and should never just hire the person with the most direct experience in a narrow discipline that you need for that moment. Priorities always shift, and a specialist is useless in weeks.