I read an article a while ago, but it never really occurred to me how important it really is. In my philosophy class yesterday we got into a discussion about human nature and how Hobbes was focused on the idea that man is selfish, in all situations and thereby needs a strong government to control them and keep them civil. John Locke, one of our founding philosophers has a different idea, that people are civil because they are forced to be good-natured and need to work together in order to form societies.
Working together implies separating tasks, specialization and segregation. As a developer this means that I will not be able to, and technically don’t need to, do everything. I can ignore some aspects of the development and rely on other peoples libraries and instead focus on bringing together the ideas that are more abstract and interesting, like bringing together my game ideas.
Specialization seems to be one of those topics that gets a lot of bad wrap, and probably because of the net bubble popping and how the super saturated environment took a nose dive because no one knew much of anything. Specialization seems to have brought itself back into the spotlight in software development because there are far too many people trying to accomplish far too much, and those who have decided to only be eight trick ponies seem to be able to push through the fray.