Is it better to specialize or generalize?

I've been doing a lot of soul searching lately about where I see myself in the next five years.  In almost all aspects of my life (work, school, recreation) I seem to come back to the realization that I'm really good at many things, but not truly great at any one thing.  Taking sports as an example, I'm better than average at tennis, baseball, soccer, running, skiing, biking, etc., but I'm far from being truly exceptional in any of those.  Or in my career, I have experience in a number of specialized areas such as web development and UX design, but my best skill is probably connecting and leading those with the specialized skills to deliver successful projects.  I'm now at a cross road where I'm trying to figure out if I want to pick a skill and specialize in it, or if I want to continue to generalize.XKCD Cartoon Nora Dunn, a writer at created a great pros/cons list, especially the cons of each such as:

  • You have less job security if your area of specialty becomes obsolete.
  • If you are too specialized, the company can’t use you for other tasks or jobs, thus decreasing your overall flexibility as an employee.
  • Less focused job searches are more difficult to endure.
  • Employers might not know how best to place you in their organization if your skills are too spread out. They may not view you as reliable or tenacious enough with any one job or skill set to be worth hiring.

I think great companies realize the need for both.  Without specialists, a company can never separate itself from the competition with truly amazing or unique products/services.  If a company could only exist with one or another, there is no doubt that a company of specialists would become more successful.  But, with too few generalists, a company risks a few things.  First, their vision and focus might become too narrow if everyone is an expert in specific types of trees, but nobody knows how to navigate the forest.  Second, the role of a successful generalist is in many ways that of a "Connector" (as outlined in The Tipping Point by Malcolm Gladwell).  They understand enough about the problem at hand, the skills of the specialists in the company, and they understand possible solutions for the problem enough to be able to connect the right people to bring about the best solution. The toughest problem with being a generalist is trying to measure your impact and convince others of the value you bring to the table.  I know that I would be a tremendous asset to many teams.  It warms my heart to hear former developers I led say things like "When you were there was some fun while developing apps.... Day by day that fun deteriorated... ".  My struggle remains convincing someone that hasn't worked beside me before have confidence that I would be the best decision they could make.