Note: This document is work-in-progress. Please don’t publish it on news sites, or otherwise link to it in public without the author’s permission. Private linking is acceptable.
Many workplaces seem to think that it is a good idea to make sure every developer is limited to a certain aspect of the development process, and will specialise exclusively in it. Taken to extreme, however, such a trend is very dangerous.
Programmers need to have a solid understanding of the entire product stuck in their head. Good programmers can also benefit from a change of scenery. And naturally, reviewing someone else’s code, and criticising it, is also always beneficial.
Therefore, you should make sure that your workers don’t over-specialise. Let them dedicate some time to work on what they find interesting, and let them review and criticise other people’s work.
Once, before I started my undergraduate studies, I worked s a developer of a software-based modem (so-called “Winmodems”). I was impressed from the atmosphere there, and how professional and clueful the managers were. One of the things I liked about the job was that while I was initially hired as a tester, I eventually was appreciated for my eclectic knowledge of different aspects of sound, games, modems, Internet, and other fields. So, I was given more diverse things to do there, involving many aspects of our operation.
You should follow suit and involve your star developers in as many aspects of your development.