web-dev-qa-db-fra.com

Les développeurs tournent-ils sur un projet une bonne ou une mauvaise idée?

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).

38
Christian P

Je ne vois pas beaucoup d'inconvénients ici moi-même. La rotation vous obtient:

  • Pollination croisée du knowlege institutionnel - Tout le monde connaîtra le projet hérité et le nouveau, du moins en théorie.
  • Formation croisée - Différents projets nécessitent des choses différentes souvent. Vous grandissez beaucoup plus qu'un développeur travaillant dans des projets laids et hérités que dans de beaux projets de Greenfield.
  • Fondamentalement de meilleurs projets - rien de tel que d'avoir une nouvelle équipe à venir pour vous faire terminer la documentation et nettoyer les processus laids que vous êtes disposé à vivre avec mais non admettre publiquement.
  • Meilleur code - Plus de têtes sont meilleures dans la plupart des cas.
  • Améliorations susceptibles de moraliser - la variété est l'épice de la vie. Et qui veut être bloqué dans le mode de correction/conduit de canalisations de bugs de manière permanente. Gardez également à l'esprit que votre "nouveau" projet deviendra un héritage à un moment donné, voulez-vous être coincé là-bas pour toujours?

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.

18
Wyatt Barnett

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:

  • Meilleure gestion de projet. Si les responsables de projet des deux projets sont à bord, il est de leur mieux l'intérêt de travailler dur afin que les périodes de transition ne soient pas douloureuses pour le projet. Ceci est tourné (selon votre configuration) pourrait générer une collaboration plus étroite entre les PMS et les équipes de développement.
  • Meilleure documentation (proactive). Si vous savez que vous obtenez commutées et d'un projet, il est non seulement dans l'intérêt du projet, les sociétés intérêt, les meilleures pratiques en général, mais maintenant chaque développeurs meilleur intérêt pour rendre la vie facile alors qu'ils rebondissent environ.
  • Le moral chose est une grosse affaire, si vos développeurs n'ont pas eu assez d'être coincé sur un projet hérité, ils ne seront peut-être pas les développeurs que vous voulez! S'ils ont, les éteignent et que d'autres développeurs travaillent pour que cela leur fera sentir l'amour pour votre entreprise - ils risquent de ranger les bits de code qu'ils pensaient que personne ne verrait jamais aussi. Les systèmes hérités sont souvent considérés comme des projets de deuxième classe qui sont souvent à leur détriment, peut-être que vous aiderez à changer cette perception.
6
JohnMark13

Je suis d'accord avec la meilleure réponse d'Aaronaugers et j'ai des ajouts.

  • Les gens n'aiment pas être poussés autour.
  • Dans un cadre commercial hiérarchique, des personnes peuvent être assignées à des responsabilités qui leur sont plus loin enlevées. Cela peut simplement faire partie du travail. Cependant, plus cela se produit plus souvent, les personnes moins susceptibles de se sentir responsables de tout ce qui leur est attribué.
  • L'ancien point s'applique également aux travaux de maintenance des choses que les personnes elles-mêmes n'ont pas créé. Nettoyer le désordre d'autres personnes (ou plus formulé de neutralement: travail inachevé) ne motive pas particulièrement à la plupart des individus.
  • La philosophie "Un programmeur est un programmeur est un programmeur, ce sont des plug-ins anonymes à insérer dans des projets, selon les besoins" ne fait pas de programmeur se sentir apprécié ou en veille davantage sur les tâches qui lui ont été attribuées.

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.

2
Martin Maat

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).

2
Dainius

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

  1. La direction apprendra la force, la force et la faiblesse du développeur particulier, qu'ils puissent gérer le multitâche ou non et adaptatif aux changements.
  2. Si un développeur quitte une entreprise pour une raison quelconque, la société a déjà une sauvegarde prête pour l'avenir.
  3. Il améliorera la performance du projet, autant de personnes y travailleront, la même chose est testée par de plus en plus de développeurs. (Test de gaspillage de ressources minimisé)
  4. Tous les membres de l'équipe travaillent en équipe et cela augmentera la performance du projet et dans la gestion future, le type d'équipe doit être effectué lors de la mise en œuvre de module ou de tâche.

à partir d'une perspective de développeur

  1. Cela rendra le développeur plus positif car sa confiance augmente.
  2. Les développeurs obtiennent des idées meilleures et meilleures du code des coéquipiers des tiers et ils peuvent utiliser ces techniques dans le développement futur.
  3. De meilleures idées et suggestions d'autres membres de l'équipe, la productivité des développeurs augmente.

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.

0
Pragnesh Karia

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.

0
dietbuddha