web-dev-qa-db-fra.com

SCRUM: Comment intégrer le travail effectué par un développeur qui survachant hors bande?

Nous avons une équipe de Scrum "typique" et nous nous engageons à travailler pour un sprint, et à maintenir un arriéré. Récemment, nous avons rencontré un problème d'essayer d'intégrer/gérer le travail d'un développeur qui survolant en dehors des travaux de bande (choisissez de travailler en dehors des heures de travail normales/sprint).

Pour donner un exemple, si l'équipe prend 50 points de travail, disons qu'ils compléteront tout ce qui fonctionne dans le cadre de Scrum à la fin du sprint et et la société est heureuse. L'un des membres de l'équipe décide de travailler seuls, sur un article d'arriéré, à leur temps libre. Ils ne vérifient pas ce travail, mais la sauvegardez-le (nous utilisons TFS et c'est dans un magasin d'abri).

Comment gérer cela? Quelques problèmes ..

  • Au cours de la prochaine Sprint, les membres de l'équipe affirment que les travaux de programmation sont effectués à 99% et ont juste besoin d'examen et de test du code. Comment traitez-vous cela dans la méthodologie Scrum and Agile?
  • D'autres développeurs se plaignent de ne pas être impliqués dans les décisions de conception liées à ces histoires, car le travail a été fait hors de bande.
  • Notre propriétaire du produit est tenté de tirer dans ce travail "gratuit" et que les membres surchargevants font probablement cela exprès afin d'obtenir davantage de fonctionnalités dans le produit que l'équipe ne serait autrement pas en mesure d'accomplir dans le ou les sprints. Il y a une idée que cela enfreint le "processus". De toute évidence, l'assurance-chômage et la documentation doivent encore être effectuées sur ce travail.

Je vois beaucoup de discussions sur ne pas forcer une équipe de Scrum pour travailler des heures supplémentaires, mais qu'en est-il d'un membre de l'équipe travaillant au-delà des attentes présentées pendant la planification et l'exécution des sprints? J'hésiterais à régner cette personne et à dire que vous ne pouvez pas travailler supplémentaire (mettre en garde sur brûler bien sûr), mais il semble en même temps qu'il semble causer des problèmes avec certains membres de l'équipe (mais pas tous).

Comment intégrer le travail effectué par un membre survachant dans le processus Scrum and Agile pour le développement de logiciels?

32
Matt

D'accord, alors quelqu'un écrit avec enthousiasme avec un excellent code qui doit être fait, tout simplement pas en ordre. Avec tout l'accent mis dusé:

laissez-les

Cela provoque des complications dans vos sprints Scrum. Est-ce vraiment important dans le grand schéma des choses? S'il accomplit ce qu'il est censé, alors laissez-le continuer et construire de grandes choses pour vous.

Je connais plusieurs programmeurs étonnants qui ont quitté des entreprises parce qu'ils n'ont pas laissé les programmeurs en dehors des contraintes d'un système artificiel comme Scrum (j'ai moi-même laissé mon dernier emploi après avoir été traité comme étant de plus que des QA glorifiées). S'il existe des plaintes d'autres développeurs sur les contributions (plaintes parfaitement valables, je peux ajouter), il peut être préférable d'introduire un programme "20% de temps" pour le laisser (et d'autres) faire ce qu'ils font mieux avec une interférence minimale.

Au lieu des histoires futures (cela peut nécessiter une contribution des autres), laissez le développeur expérimenter avec de nouvelles technologies ou des fonctionnalités. Vous trouverez peut-être une excellente nouvelle opportunité qui n'aurait jamais été explorée autrement. Je suis sûr que ce développeur a quelques choses qu'ils aimeraient essayer si vous les laissez simplement.

48
SomeKittens

Je pense que vous devriez considérer ici deux choses.

  1. N'empêchez pas le flux créatif de quelqu'un.
    • Si un dev veut faire du travail hors du temps, laissez-les ensuite.
  2. Ne créez pas de travail pour les autres.
    • Si un dev veut faire du travail en dehors des heures de travail, c'est sûr que l'enfer mieux ne pas créer plus de travail pour les autres.

Le point 2 est probablement ce que les autres développeurs sont inquiets.

Comme vous l'avez mentionné, ils n'aiment pas le fait que le code est écrit sans l'entrée de l'équipe. Cela peut être parce que, en termes de conception, cela finit par être inférieur. Et le code avec une conception inférieure a une façon d'infecter autre code autour de lui.

Alors, qu'est-ce que tu peux faire?

Laissez le code de développement ambitieux au contenu de son cœur, mais il est clair que Il n'y a aucune raison d'assumer que son code parascolaire sera utilisé.

Après tout, il fait partie d'une équipe. L'équipe doit donc être impliquée dans la mise en place de tout le code.

Si, toutefois, son travail est sain et convient à la conception convenue de l'équipe, il sera en mesure d'utiliser une grande partie de ce qu'il a déjà écrit (bonus!). Sinon, cela va le forcer à réfléchir davantage sur son design la prochaine fois qu'il décide d'avoir une tête de départ.

De cette façon, personne ne se dit : [~ # ~ # ~] Non [~ # ~], et personne n'a de travail supplémentaire créé pour eux.

34
MetaFight

Retournez-le dans l'équipe

Vous devriez vous poser (ou mieux l'équipe, y compris l'overachiever):

Pourquoi ce comportement est-il un problème?

Puisque vous étiquetez le développeur en tant que surachiever, je suppose que son travail est de bonne qualité, alors je vais supposer que ce n'est pas un problème.

Mais il semble que d'autres problèmes:

  • Le travail supplémentaire n'est pas testé correctement
  • il n'est pas documenté
  • le reste de l'équipe ne le sait pas
  • le développeur décide de la prochaine mise en œuvre, pas le PO
  • le développeur ne reçoit aucun retour d'information des différentes parties prenantes à intégrer dans son travail.

Le prochain pourquoi je voudrais comme ça:

Pourquoi le développeur le fait-il?

  • Si à la fin de la sprint ne reste pas assez de travail, il devrait y avoir une décision d'équipe (y compris le PO) sur ce qu'il faut s'attaquer à la prochaine étape. Pourquoi le développeur évite-t-il cette décision?

Une fois que vous avez répondu à ces questions, vous pouvez commencer à répondre à votre propre question:

  • si ce n'est pas un problème, laissez-le faire sa chose. Bien que certaines personnes soignent Scrum comme une religion, cela ne devrait pas être comme ça.
  • Plus probablement, vous avez deux problèmes dans l'équipe: le (s) causé par le développeur de voyous et le (s) déclenchant le comportement du développeur de voyous. Trouvez un moyen de résoudre le plus tard et le premier disparaîtra.
8
Jens Schauder

Au fur et à mesure que j'aime l'idée que l'ajout de travail gratuit dans le mélange est une bonne chose, ce n'est pas un travail gratuit - pas à moins que ce développeur unique soit aussi le testeur, et le QA et le gars de construction et de la créatrice et de tout le reste. Si son travail peut être mis dans le prochain sprint sans aucun impact, alors .. allez-y. Mais je pense que ce n'est jamais le cas. Tout le monde, à tout le moins, doit comprendre ce qu'il a fait et quel impact il a sur eux. Ils doivent comprendre que ses changements sont dedans et de ne pas dupliquer ses efforts - il est difficile de dire à une personne qui a travaillé dur sur une tâche que pour trouver le gars voyou la semaine dernière.

Vous travaillez dans un environnement agile et une chose que je sais sur Agile est qu'il est conçu pour travailler pour vous, pas contre vous. Vous devez donc changer votre façon de travailler pour permettre à ce type d'activité extra-scolaire. Cela signifie que l'entrée et l'accord de chacun, vous ne pouvez pas le faire sans leur buy-in. Son vital. Si l'équipe n'aime pas cela, le mec voyou cesse de le faire. Fin de. Ce n'est pas un gars qui fait ce qu'il aime, peu importe la qualité de son travail, c'est un effort d'équipe tout le chemin. L'équipe vient en premier.

Vous devez donc vous asseoir tout le monde à la prochaine réunion de planification et discuter de cela, tous les membres de l'équipe doivent décider de le permettre ou de modifier votre processus pour mieux gérer ce type d'activité.

Peut-être que vous obtiendrez une solution dans laquelle tout le monde travaille sur leurs projets privilégiés et les amène à la table (vous pouvez imaginer le chaos à votre livraison que vous faites :) qui met en évidence le problème avec elle en premier lieu) ou vous pouvez mandater Zone où chaque dev a l'automographie à développer quelle que soit la solution, c'est la "contribuée" de la même manière que le nombre de projets open source fonctionne ou que vous pouvez donner à tout le monde de temps libre pour expérimenter (l'ancien temps de 20%).

3
gbjbaanb

nous avons également fait face à la même chose, nous avons essentiellement commis quelque chose comme 20 points, mais la semaine dernière, voire au milieu de Sprint, nous avons manqué de codage de la tâche à cause de tests et de repos du processus que nous n'avons pas risqué de choisir un autre PBI, alors quoi Les programmeurs ont tenu à regarder dans l'arriéré et à commencer à développer de futurs PBIS (silencieusement!) et d'informer le reste de l'équipe dans la planification que PBI est prêt pour la révision et les tests de codes! Tout comme tu l'as dit.

En fait, cela a suscité des inquiétudes de notre point de vue qu'il semble que nous sommes plus capables, mais nous n'utilisons pas pleinement le potentiel de notre équipe, qui était en partie vrai, mais oui, peut-être que nos programmeurs pourraient faire plus, mais nos testeurs ne pouvaient pas suivre cette vitesse afin Il y avait un risque d'échec du sprint. Après avoir réfléchi à cette question, nous avons découvert que nous devions changer notre point de vue sur Scrum et le problème principal, c'est que les gens ne veulent pas prendre ce risque, c'est parce que nous commettre PBIS si l'équipe n'a pas ressentie C'est bon de prendre ce risque de choisir de nouveaux PBIS au cas où nous avons un programmeur gratuit.

Tout simplement, nous avons commencé à prévisionnel PBIS plutôt que de s'engager. Prévision essentiellement signifie que nous choisissons 25 points à la planification et au début du sprint, et lorsque le programmeur se libère au milieu de Sprint, car il n'y a plus de tâche de codage, il ne fait donc plus de tâche de codage, alors il/elle choisit l'un des futurs PBI et le mettre dans le sprint actuel et commencer à travailler À ce sujet, si le PBI pourrait passer tout le processus (tester, fusionner et etc.) dans le même sprint, il est un point bonus pour l'équipe, sinon nous n'échoudons pas le sprint à cause de ce PBI et de mener à bien le travail restant ( Tester ou me contourner ou etc.) au prochain sprint et de poker pour un travail restant. Cela peut donc être fait dans deux sprints différents dans le pire scénario. Je sais que cela pourrait ressembler à des crambades, mais cela a réellement amélioré la manière dont nous travaillons. Je peux juste résumer ses avantages comme ci-dessous:

  • Il défait la phobie de défaut de sprint en raison du risque de prendre plus de PBI
  • Cela rend le travail supplémentaire de vos programmeurs et de votre équipe visible
  • Il augmente la vitesse de votre équipe

Cependant, peut-être pour une équipe avec moins d'expérience, peut-être qu'elle réduirait la poussée que l'engagement donne à l'équipe pour terminer les PBIS

1
arfo

Ce développeur rédige-t-il des tests et un code propre/solide ou est-ce qu'il/elle pousse tout ce qu'il peut être fait rapidement? Personnellement, je n'autorisserai personne de travailler à l'extérieur des heures définies, car il gâchera vos estimations et que vous avez souligné d'autres problèmes.

Cependant, vous ne devriez jamais être rigide dans votre processus. Scrum est juste un cadre pour que vous puissiez toujours ajuster le processus pour inclure le temps supplémentaire (mais il est encore difficile de planifier ce que quelqu'un pourrait faire).

Vous pourriez également lui demander de travailler sur des choses autres que le projet. Regardant la nouvelle technologie ou créer une formation sur des choses qu'il fait différemment. En bout de ligne, tout est tout fait en dehors de votre programme planifié détruire vos estimations et je ne le laisserais pas arriver.

1
Mark-Sullivan

Certaines des autres réponses ont suggéré que le développeur "overachieving" soit "voyou" ou "violer les principes de Scrum". Ceci est incorrect et ce développeur devrait être encouragé (bien que vous ne devriez pas demander aux gens de travailler sur quelque chose de spécificité dans ce temps supplémentaire, mais vous pouvez faire des suggestions et aider à favoriser des idées).

Il n'y a rien dans Scrum pour prescrire comment les gens travaillent et quelque chose de plus qu'il ait fait naturellement être intégré à la vitesse de l'équipe.

Son travail devrait être apporté à l'arriéré du produit et estimé à la prochaine réunion de planification. Si vous ne pouvez pas prédire ce que l'effort restant est tout de suite, vous devriez gérer le temps de la sprint pour le comprendre (c'est-à-dire une pointe).

Intéressant Vous décrivez le développeur comme "Overachieving", je suppose que cela signifie qu'il ajoute beaucoup plus de valeur que les autres membres de l'équipe.

Les difficultés à faire un travail supplémentaire crée implique qu'il y a quelque chose de sous-optimal (ou peut-être même dysfonctionnel) dans votre équipe.

Si tel est le cas, vous devriez vous demander pourquoi est-ce qu'il réalise beaucoup plus, avec vraisemblablement seulement un peu d'effort supplémentaire?

Est-il possible pour vous permettre au reste de l'équipe d'atteindre plus?

J'ai vu la situation où les équipes ont été micro-gérées, potentiellement sur des histoires d'utilisateurs prescriptives, définition de la définition du fait, qui finit par devenir des développeurs. Ce développeur fait-il le travail qui il veut? Je suppose qu'il prenne de bonnes décisions. Travaillerait de cette façon dans la semaine de travail aider le reste de l'équipe aussi?

0
Dave Hillier