Comment gérer les fonctionnalités cosmétiques supplémentaires dans les sprints Scrum?


11

Je lisais les documents Scrum et il est dit que les tâches dans Sprint devraient être "potentiellement expédiables".

Je suis confus par ce que cela signifie. Supposons que dans le sprint 1, l'objectif était "le formulaire d'inscription des utilisateurs".

Combien de détails dois-je ajouter pour que quelque chose soit prêt à être expédié? Par exemple:

  1. Je peux montrer le formulaire simple avec des champs sans aucun style sophistiqué et les marquer comme terminés
  2. Je peux juste faire la validation côté client comme marque comme terminée mais côté serveur est également l'option ou les deux
  3. Je peux également ajouter des info-bulles fantaisie jQuery, survoler, captcha, couleurs, étiquettes pour le formulaire
  4. Ensuite, il y a beaucoup de style sur la façon d'afficher les messages d'erreur à l'écran

Je peux faire sans fin sur un sujet. Alors, comment divisons-nous cela et quand je peux penser que c'est prêt pour l'expédition.

Ou dois-je écrire chaque chose la plus petite possible, comme afficher des erreurs, du texte contextuel ou une boîte à lumière sous forme de sous-tâches et les mettre en sprint. Cela conduirait à des milliers de tâches pour l'ensemble du projet.

Je veux dire encore une fois si certains fonctionnent pour Internet Explorer et certains pour Firefox, puis-je à nouveau les diviser en tâches également. Il faut y consacrer du temps et lorsque le manager me demande ce que vous avez fait à ce moment-là, je n'aurai aucune tâche à dire mais en réalité ils font tous partie de l'enregistrement des utilisateurs


5
quels "documents Scrum"?
Dave Hillier

Réponses:


13

D'accord avec le propriétaire du produit et l'équipe Scrum, pas avec Internet. Cela devrait être déterminé dans votre définition de Terminé et dépendra largement du fonctionnement de l'équipe.

Bien que la fonctionnalité devrait être «livrable» (je déteste ce terme dans Scrum), on pourrait affirmer que la fonctionnalité est livrable sans l'interface utilisateur. Beaucoup de gens souffrent de cette idée fausse dans Scrum - le but d'un sprint est d'obtenir autant d'histoires que possible (idéalement toutes) `` Terminé '', mais il n'a certainement pas besoin d'être intégré dans quelque chose qui pourrait être publié.

Il est important de repasser des choses comme ça tôt, afin que tout le monde dans l'équipe travaille à un objectif commun. L'éthos de Scrum est la communication, alors demandez à l'équipe Scrum et tirez une conclusion logique.

Vous pouvez travailler dans une équipe où l'interface utilisateur est généralement gérée séparément, par exemple par une équipe différente ou une fois que les experts de l'interface utilisateur décident de l'apparence du formulaire, etc. Alternativement, dans un petit projet / équipe, il peut être attendu que l'interface utilisateur soit construite comme vous aller.

Tant que l'équipe connaît la réponse, la réponse est sans importance.


2
+1 pour "Tant que l'équipe connaît la réponse, peu importe la réponse."
mattyB

Un autre +1 pour "Tant que l'équipe connaît la réponse, peu importe la réponse." Documenter les exigences avec les User Stories et les décomposer en tâches est un art et non une science. Chaque équipe (y compris le Product Owner) doit apprendre ensemble le niveau de détail à documenter dans la Définition de Terminé, dans les conditions d'acceptation d'une User Story ou en tant que Tâches individuelles.
Nick

Vous serez ravi de savoir que la dernière version du Scrum Guide (juillet 2013) ne fait plus référence à shippable. L'expression maintenant utilisée est potentiellement libérable .
Derek Davidson PST CST

5

Si les fonctionnalités cosmétiques font partie de la fonctionnalité, elles devraient probablement être réalisées dans le cadre de l'histoire. Le fait est qu'une fois que vous dites qu'une histoire est terminée, vous ne devriez plus avoir à coder sur une fonctionnalité particulière. Cependant, en fin de compte, cela est décidé par le propriétaire du produit - il peut souhaiter les fonctionnalités cosmétiques ou non. Cela devrait être précisé dans les critères d'acceptation.

Cela ne signifie pas nécessairement qu'il est prêt à être utilisé par l'utilisateur final, cela signifie simplement qu'il est prêt pour quelqu'un . Que quelqu'un pourrait être un testeur ou une autre équipe comme l'équipe back-end.

Si vous le demandez en tant que développeur, la réponse devient "vous savez, parce que le propriétaire du produit vous dira s'il veut ou non les fonctionnalités cosmétiques".

Si vous le demandez en tant que propriétaire de produit, il vous suffit de décider si vous souhaitez diviser la fonctionnalité en plusieurs histoires. Il n'y a aucune exigence, autre qu'elle doit vous satisfaire , comme moyen de satisfaire votre client .

N'oubliez pas: le but n'est pas d'adhérer strictement à la mêlée. L'objectif est de fournir un logiciel de haute qualité à l'utilisateur final. Utilisez-le comme un guide lorsque vous rencontrez des problèmes comme celui-ci. L'ajout de produits cosmétiques dans la même histoire que les pièces purement fonctionnelles vous aidera-t-il à fournir un code de qualité à votre client? Ou bien, est-ce que cela sera utile en deux histoires? Soit la réponse est claire, soit cela n'a pas d'importance et vous pouvez faire tout ce qui fonctionne pour votre équipe.


3

«Potentiellement livrable» signifie que le navire ne peut pas nécessairement être expédié. Par exemple:

Un formulaire d'inscription Web qui a l'air terrible et n'a aucune validation sur les champs, peut convenir à certaines situations, comme un projet d'école, mais dans une entreprise de plusieurs millions de dollars, cela nuirait à la marque à montrer aux utilisateurs finaux. Le code peut être expédiable sans être quelque chose que vous voudriez expédier ou que le marketing ou légal vous permettrait d'expédier.

C'est quelque chose que les programmeurs (et les autres personnes qui sont en cours à ce stade, par exemple les concepteurs) seraient heureux de publier ce qu'ils sont en ce moment, même si, pour une raison quelconque, il ne serait jamais réellement publié comme ça (par exemple, il doit être traduit dans d'autres langues avant d'être expédié à quiconque - le Canada a des règles strictes concernant l'achat de logiciels par le gouvernement qui accordent une attention égale au français et à l'anglais).

Il s'agit d'un point de contrôle de qualité, vous regardez tout le monde dans les yeux et demandez s'ils seraient heureux de l'expédier tel qu'il est en ce moment, sans travail supplémentaire, sans vérification pour voir s'ils ont fait cette dernière chose. J'ai entendu ce qu'on appelle le point de contrôle du mécanicien d'avion. Vous regardez un ingénieur dans les yeux et leur demandez s'ils sont prêts à vous accompagner sur le vol d'essai.

L'idée est d'être le plus agile possible. Le plus rapidement vous pouvez transmettre quelque chose à de vrais utilisateurs; que ce soit des copies bêta du code pour sélectionner des individus ou des tests A / B sur votre site Web, mieux c'est. Si vous montrez aux utilisateurs un code trop approximatif, approximatif tel que défini par leurs attentes pour votre produit, ils vous donneront des commentaires inutiles. Ils parleront de choses sur lesquelles vous ne cherchez pas d'informations: ils n'aiment pas que le bouton soit jaune ou que la zone de texte ne soit pas alignée avec les étiquettes. S'il est assez bon, vous pouvez obtenir des commentaires utiles. Plus vite vous obtenez ces commentaires, mieux c'est! Vous pouvez valider l'adéquation produit / marché et les hypothèses que vous avez faites sur la fonctionnalité que vous avez essayé de créer.

L'expédition de la fonctionnalité est la partie la moins importante de cela. Déplacer l'équipe de développement et terminer les User Stories est la chose importante. Arriver au point où vous pouvez prétendre que quelque chose est fait est une grande motivation.


1

À ma connaissance, chaque histoire doit être «réalisable» et «livrable» dans la mesure où elle est prête à être consommée par quelqu'un , pas nécessairement l'utilisateur final . Ainsi, votre histoire peut offrir certaines fonctionnalités qui peuvent ensuite être livrées au propriétaire du produit, qui peut choisir de la proposer aux utilisateurs finaux ou de répéter la fonctionnalité.

Cela dit, vous n'êtes pas empêché d'inclure le style dans l'histoire "En tant qu'utilisateur final, je pourrai m'inscrire". Au sein de notre équipe, nous essayons de rendre chaque histoire aussi petite que possible pour maintenir une prévisibilité plus élevée et mieux nous assurer que nous sommes en mesure de tenir ce que nous promettons. Si nous avons un design prêt à l'avance et pensons qu'il est trivial de l'appliquer, il est inclus dans l'histoire. Si nous pensons qu'il peut y avoir une itération sur la conception, c'est une histoire distincte - peut-être multiple.


1

Outre les autres excellentes réponses à cette question, vous pouvez également considérer les caractéristiques cosmétiques comme la partie à portée variable du triangle portée-ressources-temps. Assurez-vous de remplir les exigences de base de cette histoire et ajoutez les jolies choses si vous en avez le temps.

Scrum n'est pas censé garantir la livraison de certaines fonctionnalités dans un délai donné. Il est censé vous donner le maximum de travail utile possible en un temps donné. Si les fonctionnalités cosmétiques "optionnelles" ne sont pas réalisées pendant ce sprint, cela devrait être parce qu'elles n'étaient pas possibles.


Dans mon organisation, les fonctionnalités "cosmétiques" sont obligatoires avant la sortie. Nous voulons que notre application ait une vue professionnelle et élégante. Ce que je me demande, c'est si nous devons travailler pour appliquer les trucs cosmétiques avec le développement de la fonctionnalité, ou lors des derniers sprints du projet. Dans ce dernier cas, nous n'aurons pas de produit potentiellement livrable, tandis que dans le premier cas, nous pourrions perdre du temps à embellir une fonctionnalité que nous déciderons de modifier considérablement ou même de supprimer plus tard.
Eugene

D'accord, c'est une contrainte intéressante. Il semble que l'une ou l'autre façon pourrait fonctionner pour vous, mais le dernier cas prend en charge la valeur Agile de "minimiser la quantité de travail effectuée". En d'autres termes, YAGNI est votre ami.
catfood

@Eugene: Si les propriétaires de produits souhaitent que toutes les fonctionnalités soient livrées dans leur aspect élégant final, c'est ce que vous devez fournir. Sinon, il appartient au Product Owner d'introduire des histoires supplémentaires du type "Make X look good".
Bart van Ingen Schenau

Je dis en fait que ma "définition du fait" est flexible. Il comprend (implicitement) quelque chose comme "L'interface utilisateur doit être propre et professionnelle au minimum, mais elle peut inclure des pièces supplémentaires brillantes s'il y a le temps de les fabriquer." Cela donne intentionnellement aux développeurs beaucoup de marge de manœuvre.
catfood

0

Cela dépend de la personne qui définit les exigences, le «propriétaire du produit». En tant que programmeur, je pourrais me contenter d'une page "formulaire d'inscription" sans style qui prouve simplement que la logique métier de mes services Web fonctionne correctement et que l'enregistrement vous permet d'être authentifié par rapport aux autres ressources du système. En fait, "potentiellement livrable", car cela n'implique pas nécessairement que nous allons l'expédier littéralement à un client, pourrait permettre que cela soit le résultat de la première user story sur le sujet, en particulier si l'équipe technique et l'équipe de conception sont des ressources distinctes avec des arriérés distincts.

Sur un projet plus mature, vous pouvez expédier une version "conçue par le développeur" de la fonctionnalité, avec un style minimal, à un client pilote ou bêta, mais revisitez la même fonctionnalité pour les deux modifications de fonctionnalité (en fonction des commentaires) et l'achèvement de la conception.

Le but de la méthodologie Agile est de permettre à vos besoins de piloter le processus de développement logiciel, plutôt que l'inverse. Ne tombez pas dans le piège de supposer qu'une seule description de la méthodologie est l'exigence vraie et seule orthodoxe. Plus facile à dire qu'à faire, bien sûr, surtout si vous êtes dans une grande organisation où Scrum est devenu une excuse pour imposer le chaos à l'équipe de développement.

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.