The article states this following opinion:
This experience led me to the notion that organizations are being foolish by looking for developers who can do everything. The knowledge required to create major applications is too great. Companies end up getting jacks of all trades and masters of none, and the resulting applications are not all that great.
I very much disagree that yours is a case of being a generalist
versus being a specialist
and that being a generalist implies you have no deep knowledge in any field you operate in. Your statement probably only has some
merit to people that have no more than a few years of development experience.
Take someone that has tens of years worth of generic experience (has done it all). This person might in fact have quite deep knowledge in the fields you would dismiss him from as not being a specialist. Likewise you assume a specialist has deeper knowledge in his field then someone that did not specialize but has more experience. Which in my view would be another erroneous assumption.
You try to classify people based on an aspect that says little about their capability to perform a task. It reminds me of the view non developers and academics had (and maybe some still do) of software development where you have a analyst, …. , programmer, …. , and finally a coder. While in fact no one
in the world just code with fully laid out diagrams as input!
Now I can argue why a company will want to hire generalists if their qualities and experience cover what is needed. Quite simple they will be more flexible and adaptable and more likely to come with or adopt suggestions that improve the end result. Also hiring is quite a time consuming business and getting a specialist on the payroll is taking a risk, the smaller the company the higher that risk is.
Don’t get me wrong, there are tasks where a deep specific knowledge is required and any experienced generalist will support hiring an experienced
specialist in those situations (even if only to learn from). I like to close by saying that for smaller companies, hiring specialists is risky and costly and that for larger companies is best to have generalists too, supported by a few experienced
specialists in various areas. That way you have all the knowledge in-house and you work with people that can assimilate that knowledge and put it to good use. A good blend will improve your workforce over time. The same is true for mixing exeprienced people with less experienced people, you got to blend to be cost effective and keep everyone motivated and intersted in their job!