Starting the start of the industrial revolution in 18th century, there has been a trend of increasing specialization. Rather than workers being involved in all aspects of creating a product, workers began to produce smaller and smaller subsets of the product. By the time Adam Smith wrote The Wealth of Nations in 1776, pin-making had become specialized to the point where it could involve eighteen different specialists. Smith wrote that, “One man draws out the wire, another straights it, a third cuts it, a fourth points it, a fifth grinds it at the top for receiving the head…”
Not only has this trend continued through the present day, it is likely accelerating. A recent article in Harvard Business Review, “The Age of Hyperspecialization”, claims that as work becomes more knowledge-based and as communication technology improves, it is easier to split work into smaller and smaller pieces.
The article talks about about a number of companies and business models. But, in particular, presents a site called TopCoder, which allows companies to present development work that needs to be done. The work is then bid on and completed by hyperspecialists all over the world: a designer in the US, an analyst in Kiev, an architect in Bangalore, a programmer in Beijing, and so on.
These individuals do not work together as a team. Rather they have very specific artifacts to produce. The artifacts are defined in a very sequential (“waterfall”) process.
It is interesting to think about a grand, sweeping trend like the one toward hyperspecialization in contrast to agile development. Agile does not at all require individuals to be generalists, but individuals are expected to work together as a team. The handoff-driven model created by hyperspecialization and used on sites like TopCoder are anything but agile.
So where does this go? Is agile at odds with a 300-year trend? It could be. Or, perhaps teams will evolve more agile ways of working within the trend toward hyperspcialization.

Thanks for that Mike. I like it when you filter the HBR!
Some people, wrongly, may think of agile teams as self-sufficient, like maybe a subsistence farm is. Life on such a farm, although romantic to the western bourgeois, would actually be a nightmare. There would be no light, medicines, starvation would be common, etc.
Agile teams actually are a function of specialization. We have the building people, they are specialists. The receptionists. Then we have the IDE writers, the open source tools, we have you, specializing in knowledge and knowledge transfer, we have the computers we work on (each of which are built from components made my specialists). The freedom to work in teams like we do is a side-effect of specialism. Any self-sufficiently we may show is because the foundations are set already. Are freedom is an illusion, as all freedoms in complex systems are.
I don’t think that it’s a question of agile been compatible with specialization, I think the former is a function of the latter. The more specialisation there is, the more agile we will become - what a liberating idea.