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:
- Vos spécifications manquent d'un point de vue explicite ou d'une proposition de valeur.
- Vos éléments de backlog ne sont pas liés aux objectifs de sprint.
- Votre processus de nettoyage du backlog est soit totalement absent, soit impossible de créer des pics d'histoire pour le backlog produit.
- 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.
- Votre équipe n'inclut pas correctement l'incertitude concernant les éléments du carnet de commandes dans ses estimations de planification de sprint.
- 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.
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.
la source
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:
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.
la source
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.
la source
Certaines des stratégies ci-dessous peuvent aider,
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.
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.
la source