Why You Should Quit Looking for Ninja Developers
Division of labor plays an important role in the scientific and technological progresses we see today. When each person knows something specific, and knows it well, your team will be able to collaborate and do things well.
This is especially true in software development. Since the industry is changing so quickly, many developers that work full time throughout the week make pet projects or learn new libraries/frameworks/approaches on the weekends. Why do they do that? Because they know it's important to stay informed and stay niche.
From a management perspective, it is much easier to manage people who are not specialized — specialized people are often more opinionated because they know their stuff. As a result, collaborative advantages are sacrificed to make teams easier to manage. Remote work is a good example — though hiring highly specialized freelancer may help the team, many managers stay away from it because they don't know how to manage engineers remotely.
Let's talk about some more concrete examples. Would you go to a dentist for your cavity or a therapeutist doctot who studied the whole body? Would you find a generic lawyer to deal with all your corporate finances and paralegal issues? Probably not.
Now, if you were to flip through an orthodontal text book that was published this year versus five years ago, you'd probably find them to be pretty similar. In other words, orthodontics hasn't changed that much in the past five years. Now, let's compare the requirements for an Android developer now and three years ago. More than half of the must-know libraries and approaches today either didn't exist or wasn't used by anyone three years ago. What I'm trying to say is that, if you'd go for a specialized doctor for your teeth, why wouldn't you do the same for Android developers?
Of course, I'm not saying jacks-of-all-trade developers don't exist. However, they're hard to come by (and they probably don’t have personal lives, hobbies, and work all the time). Also, they're most likely extremely expensive to hire — why not hire two or three specialized developers with the money?
Most of the iOS/Android developers I've met specialize in one primary platform and have some basic knowledge about other ones. Why aren't they experts in all related platforms? Well, they only have 24 hours in a day, just like all of us.
If you're set on finding an all-in-one developer, you'll most likely loose all the advantages that comes with division of labor and niche specialization. And, if your manager insists on finding someone like that...well, you need a new manager, not developer.