Dans Scrum, devez-vous diviser le backlog en un backlog fonctionnel et un backlog technique ou non?

12

Dans nos équipes Scrum, nous utilisons un backlog, qui contient principalement des sujets fonctionnels, mais aussi parfois des sujets techniques. L'avantage d'avoir 1 backlog est qu'il devient facile de choisir les sujets pour le prochain sprint, mais j'ai quelques questions:

  • Tout d'abord, il me semble plus logique d'avoir un backlog technique séparé, où les développeurs eux-mêmes peuvent ajouter des éléments techniques purs, comme: nous pourrions améliorer les performances de cette méthode, cette classe manque de documentation technique, ... En ayant un backlog, tous les développeurs doivent toujours passer par le propriétaire du produit pour que leurs sujets soient ajoutés au backlog, ce qui semble un travail supplémentaire et inutile pour le propriétaire du produit.
  • Deuxièmement, si vous avez un propriétaire de produit qui se concentre uniquement sur les éléments purement fonctionnels, les éléments purement techniques (comme la documentation technique manquante, le code qui s'érode et doit être refactorisé, les classes qui posent toujours des problèmes pendant le débogage car elles n'ont pas une base stable et doit être refactorisé, ...) finissent toujours en fin de liste car "ils ne servent pas directement le client". En ayant un backlog technique distinct et du temps réservé à chaque sprint pour ces éléments techniques purs, nous pouvons améliorer les applications de manière fonctionnelle, mais aussi les garder en bonne santé à l'intérieur.

Quelle est la meilleure approche? Un ou deux arriérés?

Patrick
la source

Réponses:

15

Je ne suis pas un expert mais je dirais que vous ne pouvez avoir qu'un seul backlog par équipe. L'équipe doit décider quels problèmes sont urgents et lesquels peuvent être reportés. Si vous séparez les problèmes en différents types de piles, vous allez à l'encontre de l'idée centrale qui est au cœur de la mêlée, à savoir qu'il existe un pool de problèmes et que chaque sprint, l'équipe travaille sur les plus urgents d'entre eux. Si vous (divisez) les équipes, vous pourrez peut-être diviser les types de tâches qui les concernent, mais vous constitueriez essentiellement des équipes qui travaillent en parallèle. L'urgence / nécessité est la décision numéro un lorsqu'il s'agit de planifier le prochain sprint. Vous pouvez catégoriser les tâches, mais cela ne devrait pas entraver votre processus de décision.

Onno
la source
10

J'aimerais ajouter ma voix à ceux qui recommandent un backlog par produit. La création d'un autre backlog est une réponse rationnelle, mais évite vraiment le problème principal: pourquoi le Product Owner ne priorise-t-il pas les éléments techniques sur les éléments de fonctionnalité? Vous devez vous concentrer sur la résolution de ce problème plutôt que de le contourner. Vous pouvez utiliser la technique des 5 pourquoi , par exemple, pour essayer d'aller au fond des choses.

Il peut y avoir de nombreuses raisons pour lesquelles le bon de commande ne donne pas la priorité aux problèmes techniques. Par exemple, peut-être que l'équipe technique n'explique pas le coût à long terme (en $$$) du non-règlement de la dette technique. C'est peut-être autre chose complètement. Il y a de fortes chances que ce soit un problème de communication, et la solution à long terme consiste à y travailler et à le résoudre - supprimer l'obstacle.

De plus, j'ai une autre question à laquelle vous devez réfléchir: pourquoi la dette technique est-elle apparue en premier lieu? Idéalement, un travail tel que la refactorisation, etc. devrait se produire dans les histoires fonctionnelles et être terminé dans le sprint. Ils ne devraient pas être des histoires supplémentaires à part entière, sinon vous n'avez pas de code potentiellement livrable.

MelR
la source
6

Ce à quoi vous faites référence est communément appelé «dette technique». Il peut parfois être difficile de voir comment le travail de la dette technique s'intègre dans le processus de mêlée, de la même manière que les défauts.

Ce que vous proposez est similaire à suggérer qu'il y ait également un `` arriéré de défauts '' séparé, divisant l'arriéré en 3.

Personnellement, je ne recommanderais pas du tout de fractionner l'arriéré des produits. L'idée de l'arriéré de produits est de représenter des éléments de travail exceptionnels . De ce point de vue, la seule différence entre une fonctionnalité et un poste de dette technique est que l'exigence est venue de l'équipe de développement, pas du client. Il s'agit toujours d'un élément de travail et il doit encore être géré, notamment en le priorisant par rapport à d'autres éléments de travail. Cela est particulièrement vrai si l'élément de dette technique nécessite des tests, auquel cas il doit suivre exactement le même processus d'assurance qualité qu'une fonctionnalité standard.

MattDavey
la source
4

Je suis d'accord avec Onno en ce qu'il ne devrait y avoir qu'un seul backlog par projet. Sinon, l'équipe prend essentiellement en main ses propres décisions qui appartiennent légitimement au propriétaire du produit.

Même les éléments "purement techniques" doivent avoir une certaine valeur pratique pour les utilisateurs (et donc pour le propriétaire du produit) pour être éligibles au backlog de sprint. Il vous appartient d'expliquer les avantages de ces derniers au propriétaire du produit et de le convaincre de la valeur ajoutée qui justifie le coût. Et ce processus vous oblige à réfléchir à ces questions et à sélectionner les changements techniques qui apportent le plus de valeur au projet avec le moins d'effort.

Péter Török
la source
2

Je suis d'accord avec toutes les réponses ci-dessus. Dans le feu de la réalité commerciale, l'OP continuera de privilégier les histoires fonctionnelles aux histoires techniques. Souvent à la frustration de l'équipe. L'équipe doit s'abstenir d'histoires techniques sans aucune valeur pour l'utilisateur (qui se soucie d'une optimisation, si la vitesse n'est pas un problème?) Et apprendre à voir certaines autres tâches techniques comme impliquées par les histoires fonctionnelles. La "définition du fait" joue également un grand rôle. Les histoires fonctionnelles restantes sont enregistrées dans l'arriéré pour que le bon de commande puisse établir des priorités.

Par exemple, la documentation technique: la disponibilité de la documentation technique (le cas échéant) est un élément typique qui appartient au DOD. À cet effet, sa mise à jour est IMPLICITE avec chaque histoire fonctionnelle.

Par exemple, le code de refactorisation: doit être effectué lorsqu'il profite au développement du produit. Pas plus tôt (l'équipe ne doit pas supposer dans quelle direction le produit évoluera) et pas plus tard lorsqu'il s'est déjà transformé en dette technique. La révision de la conception pourrait également faire partie du DoD.

Kris Van Bael
la source
0

Je suis d'accord avec MelR. S'il y a quelque chose de «technique», nous devons chercher pourquoi nous le faisons - ou même quelle est la cause et l'effet à court et à long terme (pour l'utilisateur)?.

J'ai vu de nombreux arriérés où les soi-disant «tâches techniques» peuvent facilement être écrites d'une manière de valeur commerciale.

Les tâches techniques sont également souvent le résultat de grandes histoires en panne, car cela peut être le moyen le plus simple de décomposer les choses. Mais cela peut entraîner des itérations plus lentes de la vraie valeur ajoutée (ou des opportunités de feedback) ou pire encore l'échec des sprints.

En ce qui concerne "le code qui s'érode et devrait être refactorisé" comme Patrick le mentionne, je crois que nous devons nous demander - quel domaine de la fonctionnalité du système ce code affecte-t-il? et quel est l'effet à long terme sur l'utilisateur si nous ne le refactorisons pas maintenant?

Ensuite, il y a le sujet de "laisser les choses un peu mieux que ce que nous avons trouvé" afin de réduire la dette technique à long terme et cela peut-il être fait dans le cadre des petites histoires de chaque sprint sans trop d'impact sur le projet plus large?

En fin de compte, je ne vois pas la nécessité de deux backlogs, cela ouvre la possibilité de ralentir les besoins correctement hiérarchisés - mais il y a un besoin pour un propriétaire de produit qui est éduqué aux préoccupations des impacts techniques et qui a une forte capacité à identifier la vraie valeur afin pour décomposer les histoires verticalement - Adobe offre une bonne explication sur le découpage vertical .

James
la source
0

Non, vous ne devez jamais créer d'histoires techniques. Il s'agit d'une erreur courante. Vos histoires doivent refléter l'exigence commerciale. Les trucs techniques ne sont jamais vraiment liés aux besoins de l'entreprise. C'est le rôle du Scrum Master et de l'équipe d'évaluer toutes les tâches techniques qu'ils devront accomplir pour atteindre l'objectif ou l'histoire.

Si votre histoire concerne la création d'un écran de connexion par exemple, vous devrez également envisager la création de la base de données si elle n'a pas encore été créée.

Je ne vois pas le problème de créer, avec le bon de commande, des tâches où l'équipe informatique est l'utilisateur. Si la tâche peut être comprise par l'OP et peut être évaluée en termes de valeur commerciale, alors oui, vous avez un moyen de créer des histoires techniques. Vous utilisez simplement le système.

Bastien Vandamme
la source