I have often wondered about specialization. We can often find ourselves in ruts if we specialize too much. But on the other hand, specialization can lead efficiencies in some cases. In my work as a consultant, I often find myself in new situations where I have to learn fast. As one of my associates states — problem solving is the key skill. Kevin Barnes article Three theories on how to use developers efficiently is a good read about the subject.