Comment gérer le backlog d'un tracker de problème

10

Nous utilisons consciencieusement Trac depuis plusieurs années maintenant, et notre liste de "billets actifs" est passée à près de 200 articles. Il s'agit notamment de bogues dont la priorité est trop faible et trop compliqués à corriger pour l'instant, de demandes de fonctionnalités qui ont été différées, de problèmes qui n'ont jamais vraiment généré de plaintes, mais tout le monde convient que cela devrait être corrigé un jour, des refactorisations de code prévues et d'autres infélicités de conception que nous ne faisons pas '' Je ne veux pas perdre de vue, etc.

En conséquence, avec près de 200 de ces problèmes, la liste est presque écrasante; il n'est plus utile comme source de ce qui doit être travaillé en ce moment.

Quelle est la meilleure façon de suivre les problèmes de ce type?

Une partie du problème est que certains de ces problèmes sont si peu prioritaires qu’ils ne seront peut-être jamais réglés. Je déteste perdre la trace de ces articles (comme ne pas vouloir jeter quelque chose hors de ma maison au cas où j'en aurais besoin un jour); dois-je les jeter malgré tout (en les marquant comme wontfix) et supposer que je pourrai les trouver à l'avenir si j'en ai besoin?

Josh Kelley
la source
200 pour toute une équipe m'ont fait rire. :-) J'ai à lui seul 120 problèmes en suspens, dont la plupart ne seront jamais résolus! - Donc pour résumer: bonne question! J'étais sur le point de demander la même chose.
Martin Ba

Réponses:

6

Tout d'abord, demandez à chaque développeur d'examiner chacun des éléments et d'examiner / tester chaque élément pour voir s'il s'agit toujours d'un problème (il peut être préférable de les répartir entre les personnes). Ensuite, fermez tous ceux qui ne sont plus un problème ou qui ont déjà été pris en charge par d'autres efforts de développement.

Assurez-vous maintenant que chacun est marqué comme un effort de développement important, moyen ou petit. Il s'agit d'une estimation très approximative utilisée pour catégoriser plus facilement les projets et aider à rassembler les choses. Si tout est déjà estimé, cela vous aidera, mais ne vous attardez pas sur les heures. Allez-y juste avec un rapide test intestinal. Cela fonctionne souvent pour amener les développeurs dans une pièce et passer en revue chaque élément et utiliser l'effort que la majorité des gens juge approprié.

Examinez chacun des trois groupes d'efforts et marquez chaque élément du groupe avec une priorité de Critique, Valeur commerciale élevée, Valeur technique élevée, Valeur moyenne, Valeur faible et Jamais résolu.

À ce stade, vous connaissez vraiment la liste à fond et comprenez vraiment le travail qui est impliqué dans votre carnet de commandes et vous pouvez commencer à vraiment prendre une décision sur ce qu'il faut faire avec les éléments. Retirez tous les éléments marqués comme ne devant jamais être corrigés et archivez-les de votre carnet de commandes.

Désormais, lorsque vous planifiez les éléments à inclure dans votre prochaine version, vous pouvez utiliser les éléments critiques et de haute importance au cœur de votre version. Passez en revue la liste des éléments de priorité moyenne et faible et ajoutez tous ceux sur lesquels vous pouvez travailler en même temps que les autres éléments de votre liste car les développeurs travailleront déjà dans cette partie du système.

La liste des éléments marqués avec une priorité moyenne ou faible peut être utilisée comme une liste de choses sur lesquelles les gens doivent travailler lorsqu'ils ont un peu de temps libre ou comme formation pour les nouveaux employés. Je trouve toujours qu'il est agréable d'avoir une personne dans l'équipe à chaque itération pour travailler sur ces éléments et aider le reste de l'équipe si nécessaire. De cette façon, vous terminez toujours le travail sur l'itération actuelle, mais vous avez quelqu'un qui est flexible et peut aider à éteindre les incendies en cas de besoin, mais qui gère les problèmes qui n'attireraient normalement pas l'attention.

Une chose que nous avons trouvée agréable, c'est qu'entre chaque itération, nous avons eu une courte période de 2 semaines où toute l'équipe ne travaillait que sur les éléments marqués avec un petit effort de développement. Nous concentrerions la fermeture d'un grand nombre de billets en peu de temps.

Amy Patterson
la source
3

Trac a-t-il un réglage de priorité? Quelque chose comme 1 pour les grands bouchons et 5 ou plus pour des choses qui auraient été sympas à faire un jour?

Si vous pouvez trier par priorité, vous pouvez ignorer les éléments de priorité inférieure pour l'instant.

David Thornley
la source
1
Tout ce qui est au niveau "agréable d'avoir fait quelque temps" ne sera jamais fait. Retirez-le.
Aaron McIver
1
@Aaron: Je préfère le garder au cas où nous voudrions augmenter la priorité un jour. De toute évidence, cela ne se fera jamais à cette priorité, sauf si les développeurs ont beaucoup trop de temps à consacrer (et ont déjà créé un client Gopher pour le logiciel et l'ont rendu conforme au haïku).
David Thornley
Trac a un paramètre de priorité, bien que nous ayons accumulé suffisamment de carnet de commandes que j'ai à peu près décidé que nous avons encore besoin d'une approche "yank it out".
Josh Kelley
3

lire: http://en.wikipedia.org/wiki/5S_%28methodology%29

Mettez-les dans le grenier, attendez un an, puis déménagez. Voilà ce que je fais.

Sérieusement, si vous n'allez pas le réparer, oubliez-le. Voir Extreme Programming.

Mais pour les articles sur le code. Vous pouvez les mettre dans un système de révision de code, comme observations mineures. Ce système peut être configuré pour signaler les problèmes lorsque cette partie du système est modifiée. J'ai trouvé que cela ne fonctionnait pas en tant que collègues, je pensais que c'était ce à quoi je m'attendais et je n'ai pas répondu aux observations de l'examen.

La seule façon de le faire est une hiérarchisation impitoyable. Faites-le maintenant ou ne vous embêtez pas.

ctrl-alt-delor
la source
pouvez-vous nous expliquer comment les 5 se rapportent au suivi des bogues sw, l'article de wikipedia semble se concentrer sur la fabrication
jk.
@jk tout est connecté. Nous pouvons apprendre de tout. La fabrication Lean et le développement de logiciels Agile sont presque la même chose. À une exception près. Dans la fabrication, ne pas être répétable est un défaut, dans la conception, la répétition est un défaut (arrêtez d'écrire le même code encore et encore). Bien qu'il y ait des parties du processus qui devraient être répétées (le processus).
ctrl-alt-delor
2

Ce n'est pas vraiment une question de contrôle de version autant qu'une question de flux de travail et de priorité commerciale. Le suivi des choses qui sont connues pour être erronées est une bonne idée même s'il est peu probable qu'elles soient «jamais» corrigées a quelques avantages. D'une part, cela signifie que QA (si vous avez une équipe QA distincte) sait ne pas enregistrer de nouveau bogue pour cela. Un autre avantage est que si un nouveau problème survient, mais que sa cause première est due à l'un de ces problèmes "nous le savons mais c'est une priorité faible", toute analyse sur le correctif est déjà suivie - ce qui peut rendre le plus récent, plus élevé - version prioritaire du bogue beaucoup plus facile à corriger.

Un autre aspect de cela est qu'il peut y avoir une certaine marge de manœuvre pour entreprendre une partie de ce travail, maintenant ou à l'avenir. Peut-être qu'un jour vous obtiendrez un stagiaire et que vous pourrez leur attribuer quelques-unes des plus simples en guise d'introduction pour vous mouiller les pieds dans la base de code.

Si les développeurs estiment que ces problèmes seraient utiles à résoudre - par exemple, s'ils représentent une dette technique, et que cela faciliterait l'utilisation de la base de code pour les résoudre, mais qu'ils n'ont aucune valeur commerciale - il pourrait être utile d'en discuter. avec les parties prenantes des entreprises et voir si un accord peut être conclu là où ces éléments du carnet de commandes sont récupérés de temps en temps J'ai vu des équipes Scrum faire des choses comme bloquer 3 à 5 points de vitesse par sprint pour les éléments de "backlog technique" - cela peut nécessiter des ajustements politiques selon la relation de l'équipe de développement avec les parties prenantes de l'entreprise, mais j'ai vu ça marche très bien.

autophage
la source
1

Cela dépend vraiment de quelques choses.

  1. Quelle est la taille de l'équipe: si l'équipe est suffisamment grande, vous pouvez attribuer des tickets d'une manière qui permettrait de terminer les éléments de priorité inférieure.
  2. À quelle fréquence effectuez-vous des versions: Si le cycle de publication est suffisamment long, vous pouvez vous en sortir en ajoutant plus de choses ou en suspendant une version jusqu'à ce que tous les tickets soient résolus.
Woot4Moo
la source