Estou surpreso que todo mundo acha que isso é uma coisa boa. Os autores do Peopleware (que, IMO, ainda é um dos poucos programas preciosos livros de gerenciamento de projetos realmente vale a pena ler) discordo totalmente. Quase toda a Parte IV do livro é dedicada a este assunto.
A equipe de software é uma unidade funcional incrivelmente importante. As equipes precisam se tornar realmente produtivas. Leva tempo (um lote de tempo) para que os membros da equipe conquistem o respeito uns dos outros, aprendam os hábitos e as peculiaridades e os pontos strongs e fracos dos outros.
Certamente, por experiência pessoal, posso dizer que depois de um ano trabalhando com certas pessoas, aprendi a rir de certas coisas que costumavam me irritar, minhas estimativas como líderes de equipe são muito melhores, e não é É muito difícil distribuir o trabalho para deixar todo mundo feliz. Não foi assim no começo.
Agora você pode dizer: "Ah, mas não estamos dividindo a equipe toda, apenas movendo algumas pessoas". Mas considere (a) quão cegamente improdutivas suas substituições estarão no começo, e (b) quantas vezes você se encontrará ou outras equipes dizendo, sem nem pensar, " Eu realmente gostei de X " ou " Isto teria sido mais fácil com Y ainda por aí ", sutil e inconscientemente ofendendo os novos membros e criando cismas dentro da equipe existente, mesmo semeando descontentamento entre os" antigos "membros.
As pessoas não fazem isso de propósito , é claro, mas isso acontece quase sempre. As pessoas fazem isso sem pensar. E se eles se forçam a não fazê-lo, acabam se concentrando ainda mais na questão e ficam frustrados com o silêncio forçado. Equipes e até subequipes desenvolverão sinergias que se perdem quando você se envolve com a estrutura. Os autores do Peopleware chamam isso de "teamicide".
Dito isto, mesmo que a rotação dos membros da equipe seja uma prática horrível, girar as próprias equipes está perfeitamente bem. Embora empresas de software bem administradas devam ter algum conceito de propriedade de produto, não é tão perturbador para uma equipe transferir toda a equipe para um projeto diferente, contanto que a equipe realmente conclua o projeto antigo ou, pelo menos, o leve para um nível que eles estão felizes com.
Por ter entradas em equipe ao invés de em desenvolvedor , você obtém todos os benefícios que você espera obter com desenvolvedores rotativos (documentação, "polinização cruzada", etc. .) sem nenhum dos efeitos colaterais desagradáveis em cada equipe como uma unidade. Para aqueles que realmente não entendem de administração, pode parecer menos produtivo, mas tenha certeza de que a produtividade perdida ao dividir a equipe supera totalmente a produtividade perdida ao mover a equipe para um projeto diferente.
P.S. Em sua nota de rodapé você menciona que o líder técnico pode ser o único pessoa não a ser rotacionado. Isso é praticamente garantido para bagunçar ambas equipes. O líder de tecnologia é um líder, não um gerente, ele ou ela tem que ganhar o respeito da equipe, e não é simplesmente concedida autoridade por níveis mais altos de gerenciamento. Colocar uma equipe inteira sob a direção de uma nova liderança com quem nunca trabalharam e com muita probabilidade de ter idéias diferentes sobre coisas como arquitetura, usabilidade, organização de código, estimativa ... bem, será estressante como o inferno para o líder tentando construir credibilidade e muito improdutivo para os membros da equipe que começam a perder a coesão na ausência de sua antiga liderança. Às vezes, as empresas têm para fazer isso, ou seja, se o lead sair ou for promovido, mas fazê-lo por escolha parecerá insano.