Je travaille sur une petite équipe qui commencera à travailler sur un grand nouveau projet avec une autre petite équipe. L'autre équipe travaille actuellement sur un système hérité sur lequel ils travaillent depuis des années.
Le responsable a décidé que les développeurs de mon équipe tournent tous les quelques mois pour remplacer les développeurs travaillant sur le système hérité. De cette façon, l'autre équipe aura une chance de travailler sur le nouveau projet et de mieux comprendre le nouveau système.
Je veux connaître les avantages et les inconvénients (le cas échéant) de faire tourner les développeurs du projet tous les 2-3 mois.
Je sais que ceci est une question similaire à "fait tourner le développeur principal une bonne ou mauvaise idée?" , mais cette question se concentre sur un développeur principal. Cette question concerne la rotation de l'ensemble de l'équipe sur et hors du projet (Tech. Diriger pour le nouveau projet peut être pivoté ou non - je ne sais pas encore).
Je ne vois pas beaucoup d'inconvénients ici moi-même. La rotation vous obtient:
Probablement le seul inconvénient est la chute de la productivité que vous obtenez des endroits de commutation mais qui ne devrait blesser que la première fois. Ensuite, les deux côtés auront du temps de siège dans les deux endroits et que les parties laides de la transmission seront probablement mieux comprises et peut-être résolues.
Fait intéressant, dans mon expérience, nous avons souvent commencé nos projets avec cette intention très. La ligne que nous n'avons souvent pas réussi à agir sur cette intention en raison de contraintes sur le nouveau projet et de croyance que la formation croisée est trop chère.
Je souhaite toujours que nous ayons géré cela, à long terme, je crois qu'il est bénéfique pour toutes les parties - équipe, entreprise, client et logiciel. 2/3 mois sonne comme un siège suffisamment long qu'il existe un risque considérable d'un impact négatif sérieux, il n'existe aucun changement de contexte pour les développeurs impliqués, à l'exception du point de passage au cours de laquelle ils peuvent se consacrer au projet alternatif.
Quelques avantages possibles non mentionnés:
Je suis d'accord avec la meilleure réponse d'Aaronaugers et j'ai des ajouts.
Le moment idéal pour réaffecter à quiconque est quand ils commencent à s'ennuyer avec ce qu'ils font. Il n'y a rien de plus à gagner, tout est sous contrôle, le travail est fait. Dans ces cas, ils se présenteront généralement et demanderont d'autres opportunités elles-mêmes.
Bien sûr, la réalité est têtue et souvent il n'y a pas d'autre choix, quelqu'un peut être nécessaire ailleurs à cause de quelque raison que ce soit. Ce n'est pas nécessairement mauvais, il peut également faire sentir une personne importante et si la personne doit résoudre un gros problème, il y aura du crédit pour lui.
Il suffit de mélanger les gens autour de la propagation des connaissances susceptibles d'augmenter le chiffre d'affaires. Ainsi, la connaissance sera diffusée, mais elle sera diffusée en dehors de la société qui n'est probablement pas l'intention.
D'accord avec Aaronaugaute qui est très étrange de voir combien de personnes ne voient tout simplement pas les malsides .. peu de mauvaises pensées, que vous pouvez pointer très rapide - le code n'a pas de propriétaire et quand tout le monde est responsable de tout n'est pas si bon pour la qualité . Les développeurs ne sont pas des ressources (même s'ils sont appelés comme celui-là très souvent par les gestionnaires), ils sont des gens et pour l'équipe est très important de se connaître, la rotation fait un peu chaos là-bas. Si vous travaillez pour un projet plus longtemps, vous deviendrez un expert (non seulement dans le domaine, mais dans ce projet), vous saurez où provenait la plupart des problèmes, qui vous obtiendrez de meilleures réponses ou peut-être une connaissance de domaine plus spécifique etc. Si vous êtes nouveau, vous devrez apprendre tout cela pense, donc cela va ralentir le progrès. Mais bien sûr, il est également bon de connaître d'autres pratiques dans votre organisation, comment les autres équipes construisent et organisent. C'est particulièrement bon si vos projets sont liés de quelque manière que ce soit, par exemple, un projet est saisi pour un autre (non nécessaire directement), de manière à mieux comprendre la grande image. Et bien sûr, la propagation de l'expertise est bonne (si vous aurez le temps d'obtenir ces connaissances).
La rotation des programmeurs est une bonne chose du point de vue de l'entreprise et du point de vue du développeur.
d'une perspective d'entreprise
à partir d'une perspective de développeur
ne seule chose principale, doit garder à l'esprit que,
La rotation des programmeurs ne devrait pas arriver très fréquente. Après 60% - 70% de développement effectué, mais seulement le changement sera bénéfique.
TL; DR Faites-le une équipe, puis c'est une équipe qui prend en charge 2 projets.
Pour écho @AarOngout, je pense que les équipes de mélange peuvent être problématiques car il peut prendre le temps de s'acclimater sur de nouvelles pratiques, processus, etc. Si vous faites pivoter trop de personnes à rapidement, l'équipe perdra son identité. Cela conduit à plus de questions, de confusion et de temps passé à essayer de compenser cette identité.
D'autre part, s'il y a un effort concerté pour rejoindre les 2 équipes en une seule équipe et avoir 1 équipe d'assistance à deux projets, je pense que cela fonctionne très bien tant que l'équipe n'est pas trop grande. J'ai fait partie de nombreuses équipes qui soutiennent plusieurs projets. La technologie plus proche Les 2 projets sont, plus la transition est la plus facile. Dans mon expérience, le coût plus élevé en transition d'un projet à un autre vient lors de la traversée des langues, du client/serveur (interface graphique), de l'industrie (médical, Web, jeu) ou d'autres lignes similaires. L'astuce consiste à trouver des personnes différentes de travailler sur le projet assez souvent pour gagner les avantages, mais pas souvent que le coût de transition dépasse les avantages.
Ensuite, les avantages pour obtenir plus de personnes sur un projet sont assez bien connus, de même que les coûts.