On m'a dit que "les histoires d'utilisateurs ne sont pas des exigences, il suffit d'un rappel de ce que veut le client, vous ne pouvez pas mettre en œuvre dans une histoire". Mais prenons un exemple qu'un client veut un traitement différent pour différentes cartes de crédit. Il existe des exigences strictes qui doivent être mises en œuvre et connues de manière à ce que les cas de test puissent être écrits. Où les exigences devraient-elles aller sinon dans l'histoire d'utilisation?
Comment les développeurs peuvent-ils se développer d'une histoire s'il n'y a pas d'exigence plus faible? Comment les testeurs peuvent écrire des cas de test (celles détaillées) basées sur une histoire d'utilisateur? Où faut des exigences telles que les contraintes de DB, la validation des champs, etc. vivent en dehors de l'histoire d'utilisation?
Cette réponse se concentrera sur la manière de travailler avec des histoires d'utilisateurs et des exigences de niveau inférieures. Je ne discuterai pas des vertus, ni de l'absence de Scrum ou d'agile. Je ne parlerai pas de gourous non plus.
Cette réponse suppose que vous êtes à bord avec Scrum, mais je n'ai pas encore trouvé de moyen de le faire fonctionner pour vous.
Comme d'autres personnes ont mentionné, des histoires d'utilisateurs sont couvrant la manière dont les utilisateurs aimerait que le logiciel soit. Étant donné que les utilisateurs ne se soucient pas des éléments de mise en œuvre de bas niveau, tels que les tables de base de données, les contraintes, les modèles architecturaux, etc., vous ne trouverez pas de tels détails dans une histoire d'utilisateur.
Cependant, cela ne signifie pas que ces détails ne doivent pas être enregistrés nulle part.
Lorsque les développeurs mettent en œuvre des histoires d'utilisateurs, elles doivent être conscientes des détails de niveau inférieur Les utilisateurs typiques ne le sauront pas. Cette information peut provenir de PME, de BAS, du propriétaire du produit, de votre architecte ou de toute autre personne experte ou technique.
Cela signifie-t-il que les détails de faible niveau doivent être enregistrés dans des histoires d'utilisateurs? Non et oui).
À un moment donné entre le moment où l'histoire est créée et implémentée, quelqu'un devra travailler Comment Pour la mettre en œuvre. Cela prend généralement la forme de conversations avec les personnes impliquées dans l'histoire (utilisateur, architecte, développeur, etc.). Ces conversations devraient entraîner des critères sans ambiguïté critères d'acceptation qui définissent clairement la portée de la mise en œuvre de l'histoire de l'utilisateur. Ces détails devront être enregistrés quelque part et où cela est vraiment à vous. La clé ici est que ces détails sont élicitionnés après L'histoire d'utilisation a été créée. Je pense que c'est ce que votre gourou tente de souligner.
En tant que développeur, il est clair que vous aurez besoin d'un moyen d'associer des exigences plus spécifiques avec votre histoire d'utilisateur. Just Comment Vous faites cela entièrement à votre équipe.
Si les personnes de votre équipe souhaitent conserver ces détails sur les histoires d'utilisateurs, vous devrez peut-être respecter cela. Il y a des avantages pour garder vos histoires d'utilisateurs de haut niveau exemptes de détails de mise en œuvre. Cela les garde maigre et votre arriéré peut être lu comme une histoire de vos utilisateurs et votre propriétaire de produit. Il suffit de faire vos besoins en tant que développeur connu aussi bien. Vous devriez être capable de travailler un compromis où simplement lier à l'histoire de l'utilisateur conserve tout le monde heureux.
Yup, son bs. Et Scrum n'est pas agile.
Je déteste la rigidité des dossiers praticiens agiles qui vous télui-tête qu'il y a une façon de faire agile et que vous devez suivre toutes les règles énoncées dans les Saintes Écritures de la méthodologie "agile" qu'ils utilisent. C'est tout BS.
Agile est d'être agile.
Agile consiste à obtenir des choses avec un minimum de frais généraux. Cela ne signifie pas "pas de documentation", car vous finissez généralement de documenter davantage dans un rôle agile, vous venez d'obtenir avec la documentation sans avoir à planifier un processus de documentation. De même avec le codage, les tests et la capture des exigences. Les seules choses qui comptent dans un processus agile sont celles qui vous aident à faire votre travail, rapidement et efficacement sans aucune BS.
Donc, dans ce cas, si vous appuyez sur les exigences de l'utilisateur dans les cartes vous aide à écrire, à tester, à écrire et à démontrer le code nécessaire ... Placez les exigences de la carte et dites aux gourous que l'équipe a toujours raison.
Que pense le reste de votre équipe de dev? Dans une réelle méthodologie agile, si elles pensent que les exigences devraient être écrites à l'avant sans aucune "conversation de l'utilisateur", alors cela devrait être, vous faites ce que l'équipe pense mieux pour eux de faire leur travail. Si l'équipe pense que les conversations utilisateur sont une bonne chose, puis écoutez-les et comprenez pourquoi elles pensent cela et apportez-vous dans leur façon de travailler.
Tout simplement pas appeler cela une histoire d'utilisateur et tout le monde sera heureux.
Je pense que la réponse est, vous pouvez écrire cela où que vous soyez.
En général, des implémentations spécifiques ne sont pas incluses dans une histoire d'utilisateur pour quelques raisons:
Il n'y a pas de règles qui omettent des documents supplémentaires si nécessaire. Peut-être que le client a besoin d'y accéder et peut-être pas. Si vous espérez que vous souhaitiez générer une sorte de contrat entre vous et le client sur la mise en œuvre spécifique, comme si vous pouvez le suivre et quand il ne fonctionne pas, vous ne pouvez pas blâmer le client, vous vous êtes trompé. Si le client comprend les détails techniques du traitement par carte de crédit, vous devez partager ces documents avec eux et en faire une partie de la conversation.
Je pense que si ce que vos consultants de Scrum vous disent, c'est que Scrum n'a pas besoin d'exigences, alors vous avez des consultants très pauvres. Ils ont même tort de vous dire qu'une histoire d'utilisateur n'est pas une exigence du tout, ils devaient simplement être une sorte d'exigence.
Quels sont les différents types d'exigences logicielles?
Celles-ci constituent généralement un besoin de haut niveau, quelque chose qui constituerait généralement une déclaration de style exécutif sur un système. Il est à dessein de haut niveau et large et ne peut être mis en œuvre sans beaucoup plus de détails.
Ce sont les exigences de l'histoire utilisateur que vous connaissez. Ils peuvent généralement correspondre à une note collante.
Cela semble être la pièce manquante dans votre puzzle. Indiquée des exigences de niveau utilisateur, une exigence fonctionnelle définit les acteurs de niveau système et les propriétés d'un système, ainsi que des comportements et des fonctions d'un système. Cela pourrait également être fait dans un format d'histoire et inclus dans votre arriéré. Ces articles doivent rester seuls et peuvent être mis en œuvre indépendamment de toute exigence utilisateur.
Les exigences fonctionnelles définissent votre solution qui ressemble à ce que vous décrivez comme l'écart de votre processus.
Types d'exigences notables qui ont besoin mentionné, mais sont sans conséquence à votre question: exigences non fonctionnelles, exigences techniques, etc.
Une histoire d'utilisateur est un type d'artefact spécifique dans le but de décrire l'interface que l'utilisateur attend du système et c'est pourquoi les détails de bas niveau n'appartiennent tout simplement pas là. Si vous les mettez là-bas, vous modifiez l'intention de l'artefact et cela n'adapte plus à la définition des États-Unis.
Utilisez d'autres formes de spécification pour capturer des exigences de niveau inférieures et des décisions de conception. Exactement ce que ces autres formes devraient être, c'est quelque chose qui doit être résolu dans votre organisation et personnalisé à votre environnement spécifique.
Votre question semble très semblable à quelque chose comme
J'ai ceci carfacératoire Et j'ai besoin de faire des vélos aussi, mais notre "gourou" a dit que je ne suis pas autorisé à le faire. Quel est ce BS!?!
Respectez la séparation des préoccupations et de la cohésion de vos artefacts, celles de votre code et celles de vos processus.
Beaucoup de bonnes réponses ici. Espérons que je peux ajouter une certaine valeur avec un autre ...
Je pense que l'une Raccrochez équipe peut-être avoir fait migrer d'une méthode non-Agile.
C'est généralement une méthodologie et, dans la pratique, que généralement chute d'eau de forme n'implique d'essayer de documenter toutes les exigences techniques avant la rédaction d'une ligne de code.
Mais cela ne fonctionne pas toujours. Souvent, il ne fonctionne pas. La raison? Étant donné que les exigences alignent rarement avec la réalité. Les choses changent. D'où le mouvement vers Agile.
Avec Agile, l'histoire de l'utilisateur est tout ce que les soucis des utilisateurs au sujet. Ils veulent obtenir la forme du point A au point B. Comment pour y arriver en termes de mise en œuvre est entre vos mains. Si vous attendez quelqu'un pour vous dire les exigences techniques, alors que ce pas vraiment agile. Si vous avez des questions, demandez. Si vous avez besoin d'une documentation, un document, mais vous ne voulez pas le client faire toutes ces décisions pour vous. Ils peuvent avoir des opinions, mais dans un environnement Agile ces avis devraient être (comme votre gourou suggère) discute dans une conversation.
Il peut se sentir que c'est un fardeau pour votre équipe, mais le considèrent comme un luxe. Votre équipe a maintenant beaucoup de mot à dire dans la solution - qui n'a pas été nécessairement le cas dans le modèle de cascade.