TL; DR
Les user stories servent à documenter la valeur à ajouter au produit et pourquoi. Les détails de la mise en œuvre (par exemple, comment la valeur doit être ajoutée, testée, mesurée ou validée) sont contraints par l'histoire, mais n'y figurent pas. Ils sont délibérément laissés comme des artefacts séparés pour maintenir la flexibilité et l'agilité dans le cadre.
Les spécifications et les détails d'implémentation sont le plus souvent capturés dans d'autres artefacts tels que les scripts et scénarios de développement piloté par l'acceptation (ATDD), le développement piloté par les tests (TDD) et le développement piloté par le comportement (BDD). Ces artefacts particuliers ne sont pas mandatés par le framework Scrum, mais ils vous donneront certainement un bon point de départ si vous n'avez pas déjà d'autres contrôles de processus efficaces en place.
Les témoignages d'utilisateurs ne sont pas des spécifications
L'affiche originale (OP) posait la question suivante :
[Un] client veut un traitement différent pour différentes cartes de crédit, il y a des exigences strictes qui doivent être mises en œuvre et connues pour que les cas de test puissent être écrits ... OERE DOIS-JE LE METTRE SI PAS DANS L'HISTOIRE?
Une user story est une fonctionnalité qui apporte de la valeur , fournit un contexte pour guider les conversations sur la mise en œuvre et un point de vue lié à un consommateur de valeur qui bénéficiera de la valeur fournie par la fonctionnalité.
L' intérêt d'une histoire d'utilisateur est que les détails de mise en œuvre ne sont pas normatifs. L'équipe est libre d'implémenter la fonctionnalité de toute manière qui fournit la valeur identifiée au consommateur de valeur dans le contexte approprié.
Un exemple travaillé
Un exemple d'utilisateur
Ceci est plus facile à expliquer si vous commencez avec un ensemble d'histoires utilisateur moins ambigu. Étant donné que l'OP n'a pas fourni une histoire utilisateur exploitable qui suit la mnémonique INVEST , je vais en inventer une à titre d'exemple. Considérez l'histoire suivante:
En tant qu'utilisateur qui préfère payer par carte Discover,
j'aimerais avoir la possibilité d'effectuer mes achats avec la carte Discover
afin de ne pas être limité à Visa, Mastercard ou American Express.
Cela fournit une fonctionnalité concrète, fournit un contexte qui peut guider les décisions de mise en œuvre que l'équipe doit prendre et identifie le consommateur de valeur en tant que client propriétaire d'une carte Discover. Ce n'est pas un ensemble de spécifications, mais c'est ce dont vous avez besoin pour avoir les bonnes conversations avec le client et avec l'équipe sur la meilleure façon de mettre en œuvre l'histoire pendant une itération de développement.
Analyse et mise en œuvre
La mise en œuvre réelle appartient à l'équipe. L'équipe devra faire une analyse pour déterminer:
- La façon la plus simple d'implémenter une nouvelle fonctionnalité.
- Laquelle des diverses options de mise en œuvre sera la plus facile à soutenir à l'avenir, sans accumuler de dette technique.
- Comment appliquer les principes ouvert-fermé et YAGNI pour garantir que votre nouvelle fonctionnalité est robuste sans être trop conçue.
L'un des principes fondamentaux du Manifeste Agile est la collaboration avec les clients. Une équipe interfonctionnelle et auto-organisée devrait être en mesure de collaborer avec le client pour définir les détails de la mise en œuvre dans le cadre des directives fournies par la user story.
Si vos user stories ne sont pas bien écrites, ou si l'équipe n'a pas les compétences ou la maturité de processus pour faire l'analyse juste suffisante requise par leur framework agile, alors ce sera évidemment beaucoup plus difficile que nécessaire. Des livres entiers ont été écrits sur la façon de créer de bonnes histoires d'utilisateurs au niveau de granularité adéquat; il n'y a malheureusement pas de solution miracle, mais c'est une compétence apprenable pour les équipes agiles.
Conception pilotée par les tests et conduite par les comportements
La meilleure façon de s'assurer que l'analyse est solide et que la mise en œuvre est à la fois saine et supportable est l'utilisation de pratiques TDD et BDD. Par exemple, compte tenu de l'histoire ci-dessus, l'équipe doit capturer la mise en œuvre prévue à l'aide d'artefacts tels que:
Fonctionnalités de concombre avec des scénarios testables.
Ceci est très utile pour piloter le développement de tests d'acceptation et pour documenter les attentes des utilisateurs quant au comportement des applications. Par exemple, la user story doit avoir une ou plusieurs fonctionnalités Cucumber associées qui décrivent comment l'utilisateur peut extraire avec une carte Discover et à quoi ressemble ce processus pour l'utilisateur.
Tests RSpec qui valident le comportement (et non les détails d'implémentation internes) des nouvelles fonctionnalités de code.
Ceci est très utile pour documenter et valider le comportement prévu de la fonctionnalité dans l'application. Par exemple, la user story entraînera la création de tests unitaires et d'intégration qui garantissent que l'utilisation d'une carte Discover invoque le comportement spécifique à la carte dont l'application a besoin pour autoriser une vente via la passerelle de paiement.
Les outils spécifiques n'ont pas d'importance. Si vous n'aimez pas Cucumber ou RSpec, utilisez les outils ou méthodologies qui conviennent le mieux à votre équipe. Cependant, le fait est que les détails d'implémentation sont basés sur la user story , mais ne sont pas prescrits par elle . Au lieu de cela, l'implémentation (ou les spécifications, si vous préférez) sont des détails à élaborer pendant le développement de la fonctionnalité de manière collaborative.