Je travaille sur une petite équipe qui va commencer à travailler sur un nouveau grand projet avec une autre petite équipe. L’autre équipe travaille actuellement sur un système existant sur lequel elle travaille depuis des années.
Le responsable a décidé que les développeurs de mon équipe effectueraient une rotation tous les quelques mois pour remplacer les développeurs travaillant sur le système hérité. Ainsi, l’autre équipe aura la possibilité de travailler sur le nouveau projet et de mieux comprendre le nouveau système.
Je souhaite connaître les avantages et les inconvénients (le cas échéant) de la rotation des développeurs du projet tous les 2-3 mois.
Je sais qu'il s'agit d'une question similaire à celle-ci: "La rotation du développeur principal est-elle une bonne ou une mauvaise idée?" , mais cette question concerne un développeur principal. Cette question concerne la rotation de l’ensemble de l’équipe sur le projet (le responsable technique du nouveau projet peut ne pas être remplacé - je ne sais pas encore).
la source
Réponses:
Je suis surpris que tout le monde pense que c'est une si bonne chose. Les auteurs de Peopleware (qui, IMO, est encore l’un des rares ouvrages précieux sur la gestion de projets logiciels qui méritent d’être lus) méritent vraiment l’ opposition . Presque toute la partie IV du livre est consacrée à cette question.
L' équipe logicielle est une unité fonctionnelle extrêmement importante. Les équipes ont besoin de jell pour devenir vraiment productives. Il faut du temps ( beaucoup de temps) pour que les membres de l'équipe gagnent le respect de chacun, apprennent les habitudes et les bizarreries de chacun, ainsi que leurs forces et leurs faiblesses.
Personnellement, par expérience personnelle, je peux dire qu’après une année de travail avec certaines personnes, j’ai appris à rire de certaines choses qui me raillaient jadis, mes estimations en tant que chef d’équipe sont bien meilleures, et il n’est pas trop difficile de Faites distribuer le travail de manière à rendre tout le monde heureux. Ce n'était pas comme ça au début.
Maintenant, vous pourriez dire: "Oh, mais nous ne séparons pas toute l'équipe, nous ne faisons que déplacer quelques personnes." Mais considérez (a) à quel point leurs remplaçants seront aveuglément improductifs au début, et (b) combien de fois vous vous retrouverez, vous ou une autre équipe, à dire, sans même penser, "J'ai vraiment aimé X" ou "Cela aurait toujours plus facile avec Y " , offensant subtilement et inconsciemment les nouveaux membres et créant des schismes au sein de l’équipe existante, semant même le mécontentement des" anciens "membres.
Les gens ne le font pas exprès , bien sûr, mais cela se produit presque à chaque fois. Les gens le font sans réfléchir. Et s’ils s’y obligent, ils finissent par se concentrer davantage sur la question et sont frustrés par le silence forcé. Les équipes et même les sous-équipes vont développer des synergies qui se perdent lorsque vous vissez la structure. Les auteurs de Peopleware appellent cela une forme de "teamicide".
Cela étant dit, même si la rotation des membres de l'équipe est une pratique horrible, la rotation des équipes elles - mêmes est parfaitement satisfaisante. Bien que les sociétés de logiciels bien gérées devraient avoir une certaine notion de propriété du produit, il n’est pas aussi dérangeant pour une équipe de la transférer dans un projet différent, à condition que l’équipe ait réellement la possibilité de terminer l’ancien projet ou du moins de l’apporter. un niveau dont ils sont contents.
En ayant des relais d' équipe au lieu de relais de développeur , vous obtenez les mêmes avantages que ceux attendus des développeurs en rotation (documentation, "pollinisation croisée", etc.) sans les effets secondaires désagréables sur chaque équipe. Pour ceux qui ne comprennent pas vraiment la gestion, cela peut sembler moins productif, mais soyez assuré que la perte de productivité résultant de la scission de l'équipe est totalement inférieure à la perte de productivité résultant du déplacement de cette équipe vers un projet différent.
PS Dans votre note de bas de page, vous indiquez que le responsable technique peut être la seule personne à ne pas faire l'objet d'une rotation. C'est à peu près garanti de gâcher les deux équipes. Le responsable technique est un leader et non un manager. Il doit gagner le respect de l'équipe et ne doit pas simplement être autorisé par des niveaux de gestion supérieurs. Confier toute une équipe à la direction d'un nouveau responsable avec lequel ils n'ont jamais travaillé et qui risque fort d'avoir des idées différentes sur l'architecture, la convivialité, l'organisation du code, l'estimation, etc. pour le leader essayant de construire une crédibilité et très improductif pour les membres de l'équipe qui commencent à perdre de la cohésion en l'absence de leur ancien leader. Parfois, les entreprises ontfaire cela, c’est-à-dire si le prospect quitte ou obtient une promotion, mais le faire par choix semble insensé.
la source
Je ne vois pas beaucoup d'inconvénient ici moi-même. La rotation vous obtient:
Le seul inconvénient est sans doute la baisse de productivité que vous subissez lorsque vous changez de lieu, mais cela ne devrait que faire mal au premier tour. Ensuite, les deux parties auront du temps aux deux endroits et les parties laides du transfert seront probablement mieux comprises et peut-être résolues.
la source
Fait intéressant, selon mon expérience, nous avons souvent commencé nos projets avec cette intention même. En fin de compte, nous avons souvent omis de concrétiser cette intention en raison des contraintes imposées au nouveau projet et de la conviction que la formation croisée coûte trop cher.
J’espère toujours que nous y sommes parvenus, car à long terme, j’estime qu’il est avantageux pour toutes les parties - équipe, entreprise, client et logiciel. 2/3 mois semble être une période suffisamment longue pour que le risque d’impact négatif important soit limité. Il n’ya pas de changement de contexte pour les développeurs impliqués, sauf au moment du basculement, où ils peuvent se consacrer au projet alternatif.
Quelques avantages possibles non mentionnés:
la source
La rotation est une bonne chose pour l'entreprise et peut également l'être pour les développeurs.
Il y a beaucoup de bonnes raisons et Wyatt en a mentionné beaucoup dans sa réponse.
Cela étant dit, dans votre cas, vous constaterez peut-être qu'en introduisant ce projet, les développeurs qui passent du projet plus récent au projet hérité risquent de ne pas être heureux, il est donc nécessaire de bien expliquer pourquoi cela se produit et combien de temps est pour, et le plan pour aller de l'avant.
Il serait peut-être bon de penser à ne pas échanger les équipes en bloc pour commencer et à faire pivoter 1 ou 2 développeurs pour commencer, bien que cela puisse sembler être une rétrogradation (que certaines personnes pourraient voir).
la source
D'accord avec Aaronaught, il est très étrange de voir combien de personnes ne voient tout simplement pas d'inconvénients. Peu de méchants pensent que l'on peut pointer très vite - le code n'a pas de propriétaire et quand tout le monde est responsable de tout, la qualité n'est pas bonne . Les développeurs ne sont pas des ressources (même s'ils sont appelés ainsi très souvent par les responsables), ce sont des personnes et pour l'équipe, il est très important de se connaître, la rotation y crée un peu de chaos. Si vous travaillez pour un projet plus longtemps, vous deviendrez un expert (non seulement dans le domaine, mais dans ce projet), vous saurez d'où vient la plupart des problèmes, qui vous obtiendra les meilleures réponses ou peut-être des connaissances de domaine plus spécifiques, etc. Si vous êtes nouveau, vous devrez apprendre tout ce que vous pensez, cela ralentira donc les progrès. Mais bien sûr, il est également bon de connaître les autres pratiques de votre organisation, comment d'autres équipes construisent et organisent. Il est particulièrement utile que vos projets soient liés d'une manière ou d'une autre. Par exemple, un projet est associé à un autre (pas nécessairement directement), ce qui vous permettra de mieux comprendre la situation dans son ensemble. Et bien sûr, la diffusion de l’expertise est bonne (si vous aurez le temps d’obtenir ces connaissances).
la source
Je suis d'accord avec la réponse principale d'Aaronaught et j'ai quelques ajouts.
Le moment idéal pour réaffecter quelqu'un, c'est quand ils commencent à s'ennuyer de ce qu'ils font. Il n'y a plus rien à gagner, tout est sous contrôle, le travail est fait. Dans ce cas, ils se présentent généralement et demandent eux-mêmes d'autres opportunités.
Bien sûr, la réalité est têtue et souvent, il n’ya pas de choix. Quelqu'un peut être nécessaire ailleurs, pour une raison quelconque. Ce n'est pas forcément mauvais, cela peut aussi donner l'impression qu'une personne est importante et si elle doit résoudre un gros problème, elle aura un crédit.
Le simple fait de déplacer les gens pour diffuser des connaissances va probablement augmenter le taux de roulement. De cette façon, les connaissances seront diffusées, mais elles le seront à l’extérieur de la société, ce qui n’est probablement pas l’intention.
la source
TL; DR Faites-en une équipe, puis une équipe de soutien de 2 projets.
Pour faire écho à @Aaronaught, je pense que le mélange d’équipes peut être problématique, car il faut du temps pour s’acclimater à de nouvelles pratiques, processus, etc. Si vous faites tourner trop de personnes pour qu’elles perdent rapidement leur identité, l’équipe perdra son identité. Cela conduit à plus de questions, de confusion et de temps passé à essayer de rattraper cette identité.
D'un autre côté, s'il y a un effort concerté pour réunir les deux équipes en une seule et avoir un soutien d'équipe pour deux projets, je pense que cela fonctionne très bien tant que l'équipe n'est pas trop grosse. J'ai fait partie de nombreuses équipes qui soutiennent plusieurs projets. Plus la technologie est proche des 2 projets, plus la transition est facile. D'après mon expérience, le coût élevé de la transition d'un projet à un autre vient lorsque l'on croise des langues, un serveur / client (en particulier une interface graphique), un secteur (médical, Web, jeux) ou d'autres lignes similaires. L'astuce consiste à amener suffisamment de personnes à travailler sur le projet assez souvent pour en retirer des avantages, mais pas aussi souvent que le coût de la transition dépasse les avantages.
Les avantages d’attirer un plus grand nombre de personnes sur un projet sont assez bien connus, de même que les coûts.
la source
La rotation des programmeurs est une bonne chose du point de vue de l’entreprise et du développeur.
Du point de vue de l'entreprise
Du point de vue du développeur
Une seule chose principale, il faut garder à l’esprit que,
La rotation des programmeurs ne devrait pas être très fréquente. après 60% à 70% du développement effectué, seul le déplacement sera bénéfique.
la source