Ich habe zwei Geschichten (ich weiß, dass sie den Nutzenteil vermissen)
- Als Kreditverwaltungsbenutzer kann ich die aktuellen und vorherigen Gehaltsunterschiede für Büros anzeigen.
- Als Kreditverwaltungsbenutzer kann ich eine E-Mail mit einer PDF-Datei mit den aktuellen und früheren Gehaltsunterschieden für Büros erhalten.
Die beiden sind insofern verwandt, als sie dieselben Abfrage- / Filterkriterien haben würden. Der einzige Unterschied besteht darin, dass in der Story "Anzeigen" die Ergebnisse dem Benutzer angezeigt werden und in der Story "E-Mail" die Ergebnisse in ein PDF geschrieben werden, das dem Benutzer per E-Mail gesendet wird.
Ich kämpfe mit der Trennung der gemeinsamen Aspekte dieser beiden Geschichten oder ob ich es überhaupt tun sollte.
Zum Beispiel haben beide die gleiche Abfrage, was sie mit den Ergebnissen machen, ist unterschiedlich.
Sollte ich die Abfrage in eine andere Geschichte aufteilen, die rein technisch ist?
Die Erstellung des PDFs und das Versenden der E-Mail sollte offline erfolgen. Sollte dies eine technische Geschichte werden?
Ich konnte sehen, wie diese beiden Geschichten in zwei funktionale und zwei technische Geschichten unterteilt wurden.
Als System kann ich die Unterschiede in der aktuellen und vorherigen Abrechnung für Büros berechnen.
Als Kreditverwaltungsbenutzer kann ich die Unterschiede in der aktuellen und vorherigen Abrechnung für Büros anzeigen.
Als System kann ich ein PDF-Dokument der Unterschiede in der aktuellen und vorherigen Abrechnung für Büros erstellen.
Als Kreditverwaltungsbenutzer kann ich eine E-Mail anfordern, die eine PDF-Datei mit den Unterschieden zwischen der aktuellen und der vorherigen Gehaltsabrechnung für Büros enthält.
Das Problem, auf das ich immer wieder zurückkomme, ist, dass die 4 Geschichten nicht unabhängig sind und nicht "den Kuchen schneiden".
Ich bin mir also nicht ganz sicher, wie ich mit diesen beiden umgehen soll.
quelle
Antworten:
User Stories sind keine Systemspezifikationen oder funktionalen Anforderungen. Sie sind vielmehr der Beginn eines Gesprächs, das zu solchen Spezifikationen oder Anforderungen führen kann.
Dementsprechend würde ich erwarten, dass es bei der Systemimplementierung zu Überschneidungen kommt. User Stories sollen solche funktionalen Überschneidungen nicht beschreiben oder beseitigen. Der Zweck von User Stories besteht darin, funktionale Erwartungen aus Sicht eines Benutzers zu erfassen und nicht Implementierungsdetails zu beschreiben.
quelle
Tun Sie nicht: Versuchen Sie, die Geschichten zu teilen, machen Sie eine Geschichte und dann die andere.
Tun Sie: Stellen Sie sicher, dass das Entwicklerteam über die zweite Geschichte informiert ist.
Das Problem beim Versuch, die detaillierten Aufgaben zu planen und ein allgemeines Modell zu entwickeln, das beide auf elegante Weise bewältigen kann, ist, dass es schwierig ist.
Der Zweck von User Stories ist es, Dinge zu erledigen. Elegant ist ein sekundäres Ziel und sollte dem Refactoring überlassen werden.
Offensichtlich ist es sehr ärgerlich, wenn Sie dies voll ausschöpfen und niemandem von den zehn anderen ähnlichen Aufgaben erzählen, die erledigt werden müssen, aber es ist auch durchaus vorstellbar, dass die zweite oder dritte Aufgabe erst in Betracht gezogen wird, wenn die erste erledigt ist. Wenn Sie alles planen möchten, gehen Sie mit Wasserfall aus.
quelle
In einem gewaltsamen Einvernehmen mit Robert Harvey besteht der Zweck einer User Story darin, zu verstehen, was der Benutzer tun muss, um zu können. Während der Pflege versteht und interessiert sich der Kunde für die User Story, während sich die Entwickler ein wenig mehr um sie kümmern. Wenn Sie genügend Fragen gestellt haben, um die Arbeit zu verstehen und einzuschätzen, können Sie Aufgaben erstellen, um sie zu unterstützen.
In diesem speziellen Fall könnten Sie Aufgaben erstellen, die den Kern der beiden User Stories bilden, die zusammen mit den Aufgaben ausgeführt werden, mit denen Sie sich zuerst befassen.
Die wichtigen Dinge, die zur User Story hinzugefügt werden müssen, sind:
quelle
Genau genommen sind User Stories das Versprechen eines Gesprächs, um das gewünschte Ergebnis zu verstehen.
Nehmen Sie zum Beispiel Ihre zweite User Story
Denken Sie an Folgendes:
Denken Sie beim Aufteilen der Story an Ihre INVEST-Kriterien, sofern dies möglich ist.
Es ist in Ordnung , Geschichten zu haben, die eine natürliche Reihenfolge haben. Berücksichtigen Sie dies - normalerweise ist die erste Geschichte größer, da sie die erforderliche Funktionalität bietet, und die zweite Geschichte baut darauf auf.
Ich würde "technische" Geschichten in Frage stellen, da es sich in der Regel um Aufgaben handelt, die bei der Umsetzung der auf die Benutzerergebnisse bezogenen Geschichten hilfreich sind.
quelle
TL; DR
Angenommen, beide User Storys werden innerhalb derselben Iteration in den Geltungsbereich gezogen, ist es die Aufgabe des Teams, die Storys in einen Implementierungsplan und die zugehörigen Aufgaben zu zerlegen. User Stories bieten Kontext und Umfang; Sie sind keine Implementierungen, Spezifikationen oder Punschlistenelemente.
Geschichten sollten in Iterationsaufgaben zerlegt werden
Unabhängig davon, ob Sie Scrum oder eine andere agile Methode verwenden, ist es ein häufiger Fehler, die Planungsphase einer Iteration zu überspringen. Wenn in Scrum ein Product Backlog Item (es muss streng genommen keine User Story sein) in den aktuellen Sprint gezogen wird, soll das Team einen Teil der Sprint-Planung verwenden, um Gemeinsamkeiten zwischen Workitems herauszufiltern, Abhängigkeiten zu identifizieren und Entwickeln Sie anschließend ein Sprint-Backlog, um die Arbeit auf Aufgabenebene zu erfassen.
Wie Sie in Ihrem Beitrag betont haben, ist es nicht ungewöhnlich (und sogar wünschenswert), dass eine agile Iteration eng verwandte User Stories enthält. In Scrum wird dies durch die Verwendung des Sprint-Ziels angezeigt. Außerhalb des Scrum-Frameworks ist es oft noch sinnvoll, verwandte Storys einzubeziehen, da sie gemeinsame Ziele oder Abhängigkeiten haben. Durch das Extrahieren und anschließende Bearbeiten der gemeinsam genutzten Abhängigkeiten in einer einzelnen Iteration können Teams in Zukunft häufig die Notwendigkeit vermeiden, Code für ähnliche, aber nicht identische Features zu überarbeiten oder zu überarbeiten.
Aufgaben Implementieren Geschichten
Hier ist eine andere Möglichkeit, über die Abhängigkeitsplanung für User Storys nachzudenken. Im Allgemeinen:
Das Behandeln von User Stories als Implementierungsplan oder Aufgabenliste wird von den meisten Praktikern als ein agiles Anti-Pattern angesehen. Wie auch immer Sie sich entscheiden, überspringen Sie nicht die Planungsphase Ihres agilen Frameworks, und stellen Sie sicher, dass Sie Abhängigkeiten und gemeinsame Implementierungsdetails irgendwo im Prozess Ihres Teams nachverfolgen.
quelle