In general , we have had our best results by switching teams around. There are a few areas where one developer has so much experience or knowledge that they tend to come back to that area whenever theres more to do.
Sometimes this has worked well, usually when it is specialized domain knowledge thats in question. Weve had developers who have tried to stick with internal parts of the system, and by and large that works out less well. I suspect that its because its hard to build good systems tools if you dont have to use them. In any case, if you have someone who is stuck on some area, its to your advantage and theirs to move them to something else: youll get cross-training in their specialty area, and youll keep everyone fresh.
As a general rule, in every iteration, move the person who has been on the team longer to a new area.
© 1997, 1998, Ronald E Jeffries
ronjeffries@acm.org
http://www.xprogramming.com