Jay was my colleague in a previous job and while I don't agree with everything he says he always has interesting things to say.
I particularly liked this part.
"A long time ago someone started telling people that they should be specializing generalists (sorry, I can’t remember who to attribute there). It was good advice, but the sheep only heard “generalist”. These days there’s loads of programmers who know a bit of everything. Which is good, but they aren’t deep in anything. They keep selling the idea of knowing a little of everything as a good thing, because they are a generalist. I’m not buying.
I prefer to compose teams of true specializing generalists. For example, if I’m building a Flex front end over a RESTful Rails application, I want everyone to be familiar with Flex, Ruby, ActionScript, REST, SQL, etc. But, I also want at least one team member to be deep with each of the key elements. I’m talking seriously deep. I want them to be so deep that they annoy the team with their “too detailed” explanations of what’s going on and what needs to be done. Those guys drive innovation in their area of expertise, and the app is significantly better because of their low-level understanding."
I particularly liked this part.
"A long time ago someone started telling people that they should be specializing generalists (sorry, I can’t remember who to attribute there). It was good advice, but the sheep only heard “generalist”. These days there’s loads of programmers who know a bit of everything. Which is good, but they aren’t deep in anything. They keep selling the idea of knowing a little of everything as a good thing, because they are a generalist. I’m not buying.
I prefer to compose teams of true specializing generalists. For example, if I’m building a Flex front end over a RESTful Rails application, I want everyone to be familiar with Flex, Ruby, ActionScript, REST, SQL, etc. But, I also want at least one team member to be deep with each of the key elements. I’m talking seriously deep. I want them to be so deep that they annoy the team with their “too detailed” explanations of what’s going on and what needs to be done. Those guys drive innovation in their area of expertise, and the app is significantly better because of their low-level understanding."