Scrum peut-il utiliser les spécifications techniques du Product Backlog plutôt que les user stories?


14

Dans l'entreprise pour laquelle je travaille actuellement, nous avons commencé à faire des projets Scrum. Ce n'était pas si difficile de convaincre les managers de passer de la cascade à Scrum. Nous faisons un projet où nous reconstruisons notre plateforme à partir de zéro. Donc (la plupart) des fonctionnalités sont connues et la plupart des améliorations sont plutôt techniques.

En cela, il pourrait être justifié d'avoir des tâches techniques plutôt que des histoires d'utilisateurs. Notre carnet de commandes comporte toutes sortes de tâches techniques telles que:

  • Réécrivez la classe DB de MySQL vers PostgreSQL.
  • Implémentez la journalisation du système.
  • Réécrire le cache d'objets.

Les choses qui surgissent pendant les stand-ups incluent que de longues «tâches de recherche» sont recherchées, mais elles ne sont jamais faites. De plus, les membres de l'équipe affirment au milieu du sprint que des tâches non planifiées doivent être ajoutées.

Comment un Scrum Master doit-il gérer cela? Serait-ce que pour ce genre de projet, Scrum n'est PAS la voie à suivre?

Réponses:


10

TL; DR

Scrum n'impose pas l'utilisation de user stories; ils sont simplement une pratique agile utile. Bien que le Product Owner puisse certainement utiliser des spécifications techniques au lieu de user stories pour créer le Product Backlog, la plupart de vos autres problèmes de processus proviennent d'un échec à adopter Scrum efficace et des pratiques agiles.

Divers problèmes avec votre processus

Votre Scrum semble être brisé de différentes manières, notamment:

  1. Vos spécifications manquent d'un point de vue explicite ou d'une proposition de valeur.
  2. Vos éléments de backlog ne sont pas liés aux objectifs de sprint.
  3. Votre processus de nettoyage du backlog est soit totalement absent, soit impossible de créer des pics d'histoire pour le backlog produit.
  4. Votre processus de planification de Sprint ne décompose pas correctement les éléments du Backlog de produit en éléments de Backlog de Sprint.
  5. Votre équipe n'inclut pas correctement l'incertitude concernant les éléments du carnet de commandes dans ses estimations de planification de sprint.
  6. Votre équipe ne respecte pas les fondamentaux du time-boxing ou l'intégrité du Sprint.

Bien que Scrum ne soit pas toujours la bonne solution pour chaque projet, dans ce cas, il serait plus précis de dire que Scrum ne fonctionne pas parce que l'équipe ne fait pas vraiment Scrum. Votre question sur les user stories n'est qu'une petite partie des problèmes de processus plus vastes auxquels votre équipe est confrontée.

Pourquoi les programmeurs agiles adoptent les témoignages d'utilisateurs

Les spécifications techniques sont un moyen fondamentalement rompu de communiquer les exigences. Les exigences qui ne sont pas amarrées d'un point de vue ne fournissent pas de conseils utiles aux développeurs. En utilisant vos exemples publiés:

  • Réécrire le cache d'objets. Pourquoi? Quel est l'objectif? Qui reçoit l'avantage? Qui peut fournir des éclaircissements sur la tâche? Si cela est lié à une exigence non fonctionnelle, à quel objectif du projet cela répond-il?
  • Implémentez la journalisation du système. Pourquoi? Qui va lire les journaux? Quelles informations les journaux doivent-ils contenir? Comment savoir si le format de journal ou les données de journal sont utiles?

Du point de vue d'un développeur, ne pas être en mesure de répondre à ce genre de questions conduit exactement au type de problèmes de processus que vous décrivez. C'est ce que font les user stories: elles fournissent le contexte indispensable et agissent comme des espaces réservés pour des conversations supplémentaires avec les parties prenantes ou les utilisateurs finaux sur des fonctionnalités spécifiques.

Vous ne devez pas utiliser les user stories parce que vous pensez que c'est une exigence de cadre ou parce que c'est une pratique agile largement acceptée. Au lieu de cela, vous devriez travailler à les créer et à les utiliser efficacement, car cela rend les tâches de programmation plus faciles et la profession de programmation plus amusante. Votre kilométrage peut varier, bien sûr.


Vous n'avez pas besoin de commencer chaque réponse par TL; DR, c'est correct d'avoir un résumé au début sans en-tête! : P
Dave Hillier

9

Je ne pense pas que le problème ici soit Scrum en tant que tel, je pense que le problème est qu'il n'y a pas de livrable de projet clairement défini et (j'en ai fait l'expérience plusieurs fois) pas de direction claire.

Je pense que vos tâches techniques sont très bien, peut-être sur le grand côté mais mesurables et définissables donc tout à fait bien pour une histoire.

Les tâches de recherche sont un énorme drapeau rouge pour moi dans Scrum car elles offrent peu d'avantages visibles et peuvent créer un énorme fluage de portée. Je préconise de limiter ces avances dans un sprint, ils ne devraient pas être ajoutés et ils ne devraient certainement pas être ajoutés au détriment des objectifs engagés. S'ils sont nécessaires pour terminer une tâche de sprint convenue, alors cette dépendance aurait dû être claire lors de la planification (sinon, qu'est-ce qu'ils estimaient?).

D'après mon expérience, les projets avec beaucoup de "pics d'investigation" sont une couverture pour les développeurs qui ne font pas vraiment grand-chose et qui souhaitent passer du temps à découvrir la nouvelle chose cool plutôt que de créer de la valeur commerciale. Je ne dis pas que votre équipe fait cela, mais un projet a besoin d'objectifs clairs et si les développeurs ont la liberté de "rechercher", ils le feront et continueront de le faire, aussi longtemps que vous le leur permettrez.


Donc, c'est bien d'avoir juste des tâches sans véritable histoire d'utilisateur, dans ce cas? Très souvent, les programmeurs disent lors de la planification des réunions que: nous ne savons pas combien de temps cette tâche prend car nous ne savons pas exactement ce qui est inclus. Par conséquent, ils veulent d'abord enquêter.
sanders

2
Scrum devrait fonctionner pour vous, ne vous attardez pas sur "ce qui est correct" - les tâches vont bien, si les tâches nécessitent une enquête, alors l'enquête devrait être chrono et je limiterais personnellement la quantité d '"enquête" qui peut être planifiée dans un sprint - le résultat de cette enquête peut ensuite alimenter la prochaine réunion de planification.
Michael

4

Scrum dit que vous feriez mieux d'avoir un produit livrable à votre client. Cependant, le point ici est que cela ne spécifie pas le produit livrable et le client .

En d'autres termes, dans votre cas spécifique, vous pouvez définir votre produit livrable comme des améliorations de code, des changements de plate-forme, des réécritures et des remaniements, etc., et considérer votre responsable technique comme votre client.

Cela a 100% de sens pour moi. Vous créez un backlog qui raconte les histoires de l'utilisateur de vos produits, et qui est l'utilisateur? Directeur technique. Ainsi, des éléments comme:

  1. En tant que responsable technique, je souhaite que ma base de données passe de MySQL à X, afin de pouvoir augmenter l'évolutivité
  2. En tant que développeur, je veux un système de journalisation complet, afin de pouvoir diagnostiquer plus efficacement

Et ce que vous livrez à votre client (responsable technique), c'est un système de journalisation.

Cependant, en ce qui concerne les tâches de R&D dont vous avez parlé, je vous recommande de lire sur les pics dans Scrum. Ce sont essentiellement des mini-tâches temporelles qui vous aident à déterminer le temps nécessaire pour effectuer des tâches inconnues plus importantes.


Merci. Où vont les pointes dans le processus Scrum? Quand je veux comprendre quelque chose dont j'aurai besoin dans ce sprint à venir. Disons que je fais un pic de 4 heures, et le résultat peut être que j'ai 20 heures en développement. Comment devez-vous gérer cela lorsque ces heures sont nécessaires pour le sprint actuel?
sanders

Un «pic» est une période temporelle utilisée pour rechercher un concept et / ou créer un prototype simple, produire une preuve de concept, étendre les connaissances, etc.
Ioannis Tzikas

@IoannisTzikas n'est pas une réponse à ma question ;-)
sanders

1

En tant que Scrum Master, vous voudrez peut-être envisager des sprints plus longs en raison de la nature du travail. Cela vous donnera un peu plus de tampon pour les tâches de "recherche". Cependant, je pense que vous devez vous assurer que les tâches produisent une sorte de produit de travail / preuve de concept dans le code. Qu'attendez-vous d'autre d'un programmeur? Demandez-leur de faire fonctionner quelque chose et utilisez ces informations pour déterminer si A: il fait ce que nous voulons B: il fonctionne mieux C: combien de temps faut-il pour être plus à jour et commencer à avoir une idée de la durée prendre pour faire quelque chose.

Si vous découvrez que vous ne savez pas autant que vous pensiez à la réécriture actuelle, vous pouvez passer à des cycles de sprint plus courts. N'ayez pas peur de les ajuster au fur et à mesure; c'est ce que signifie être agile. Après vos recherches, vous pouvez également décider d'utiliser la nouvelle technologie. Cela pourrait être une autre raison de raccourcir les sprints avant de devenir trop incontrôlable. Vous découvrirez peut-être au milieu d'un sprint que les nouvelles choses ne fonctionneront pas. Arrêtez le sprint et ajustez-le avec l'ancienne technologie. Après tout, vos développeurs auraient dû pouvoir comparer et contraster les anciennes et les nouvelles méthodes.

Vous jonglez avec les besoins de vos développeurs et dans ce cas faites réécrire l'application. Je suppose qu'il y a des propriétaires de produits qui veulent que ce projet soit terminé le plus tôt possible et n'accepteront pas la nécessité de «recherche» comme excuse à long terme.


1

Certaines des stratégies ci-dessous peuvent aider,

  1. Oui, vous pouvez avoir un backlog avec des histoires techniques .

    Comme une histoire d'utilisateur, cela devrait également être des histoires techniques, en se concentrant sur les avantages qu'elle apportera à l'utilisateur final. Voici quelques conseils pour l'écrire. Ce sont des histoires qui apporteront une valeur intrinsèque au produit comme si vous vouliez passer à un meilleur back-end, etc.

  2. Pour les tâches d'enquête (recherche), utilisez Spike

    Un pic est une expérience qui permet aux développeurs d'en apprendre juste assez sur quelque chose d'inconnu dans une user story, par exemple une nouvelle technologie, pour pouvoir estimer cette user story. Un pic doit être limité dans le temps. Cela définit le temps maximum qui sera consacré à l'apprentissage et fixe l'estimation du pic.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.