Should Developers Specialize?
Finally we come to the area of specialization. Should developers specialize? I think the correct answer is yes, but it has to be in a broad area and in a flexible manner. What do I mean by a "broad are"? Preferably one that’s complex and well established in a given domain; for example, some part of the financial services industry. Try to choose an area that has a decent shelf life, in excess of five years. Rather than focusing exclusively on the technology, it’s important to have a good understanding of the industry in which your code will operate.
A well-chosen specialty combines business knowledge with technical knowledge. This practice helps your work to be broader than that of a pure technologist, and has the advantage that business knowledge tends to change more slowly than technology. Once you have an understanding of the business side, you can focus on the technology. Most programmers do it the other way around, and many don’t learn the business end at all.