wie man Details (Nebenwirkung nicht erwünschter Workflow) mit Scrum User Stories abdeckt

Als Scrum/Agile-System-Student finde ich die Situation, in der man eine User Story in klassischer Form schreiben und gleichzeitig das Verhalten paralleler Workflows beschreiben muss, sehr schwierig. Als ein sehr einfaches und allgemeines Beispiel, das die Situation beschreiben kann, können wir diese User Story schreiben:

Als Benutzer, der einen Artikel kaufen möchte, möchte ich mit MasterCard bezahlen können, damit die gekaufte Bestellung auf den Status „Liefern“ gesetzt werden kann.

In dieser User Story gibt es unzählige verschiedene "alternative Arbeitsabläufe für Benutzeraufgaben" oder Situationen, die unterschiedliche Prozesse (nicht notwendige Fehler) definieren können, wie zum Beispiel:

  • Während ein Kunde eine Bestellung aufgibt, ist seine Kreditkarte fehlgeschlagen

  • Während ein Kunde eine Bestellung aufgibt, läuft seine Benutzersitzung ab

  • Während ein Kunde einen Geldautomaten benutzt, gehen dem Automaten die Quittungen aus und er muss den Kunden warnen

  • Während ein Kunde eine Bestellung aufgibt, existiert seine Kreditkartennummer nicht

  • Während ein Kunde eine Bestellung aufgibt, ist die PIN fehlgeschlagen

(sind vielleicht nicht die besten Beispiele, aber nur um Nebenwirkungen zu beschreiben).

Im Agile/Scrum-System kann man nur das gewünschte Verhalten beschreiben, nicht aber die Nebeneffekte/parallele Arbeitsabläufe.

Meine Fragen:

  1. Wie raten Sie mir, die Backlog-Geschichten einzufügen, die diese Situationen abdecken?

  2. Wie raten Sie mir, Geschichten zu erstellen, die einem „Task Process Workflow Diagram“ folgen? (Diese zweite Frage ist anders, aber verwandt)

Sie haben hier eine gute Frage gestellt, aber ich denke, dass Ihr Titel vielleicht umformuliert werden muss. Ich war mir nicht wirklich sicher, worum es bei der Frage ging, bis ich den Hauptteil des Textes gelesen hatte :)

Antworten (2)

Eine der netten Techniken, die Teams verwenden, ist das Schreiben von Verifizierungskriterien für die User Story auf die Rückseite eines Haftnotizzettels oder in zusätzliche Informationen der User Story (wenn Sie ein elektronisches Tool verwenden). All diese detaillierten Szenarien, die Sie erwähnen, eignen sich gut als Überprüfungskriterien, und wenn Sie sie als solche verwenden, gehen Ihnen diese zusätzlichen Informationen nicht verloren.

Persönlich würde ich nicht dazu raten, sie als separate User Stories zu erstellen, da Sie so sehr ins Detail gehen würden, dass Sie sich mit viel Mühe konfrontiert sehen müssten, alle Stories zu jonglieren, obwohl man dies auch als praktikable Alternative betrachten könnte.

Und vor allem sollten Sie sich nicht zu sehr an ein bestimmtes Format von User Storys binden . Wenn Sie zusätzliche Informationen benötigen und möchten, schreiben Sie sie einfach auf und hängen Sie sie irgendwie an. Ihr Ziel sollte ein gemeinsames Verständnis der zu erledigenden Arbeit sein und nicht einer Buchdefinition der User Story folgen. Die User Story ist nur ein Mittel, um ein gemeinsames Verständnisziel zu erreichen. Solange das Team also den Einfluss der Story auf alternative Arbeitsabläufe versteht, machen Sie es richtig.

+1 an Pawel – Akzeptanzkriterien sind eine der geheimen Saucen von User Stories.

Sie haben eine gute Frage, und ich denke, ein Blick auf die User Story kann helfen, einige Teile des Problems aufzuschlüsseln. Meine erste Reaktion ist, als Benutzer interessiert Sie der Status der Bestellung nicht, das ist Ihnen nicht wichtig.

Die User Story kann viel einfacher und As a user you want to be able to use Mastercard to purchase an article. Dies impliziert:

  • Bei beliebig vielen parallelen Prozessen wird der Artikel tatsächlich geliefert. Genauer gesagt können Sie eine Reihe von User Stories generieren, die von dieser abgeleitet werden.

Zusätzliche User Stories:

  • Als User werden mir erfolgreich gekaufte Artikel erfolgreich zugestellt.
  • Als Benutzer möchte ich die Kreditkarte meiner Wahl verwenden können (eine Lösung sollte alle erforderlichen Kreditkarten enthalten)
  • Als Benutzer möchte ich darüber informiert werden, wenn meine Karte abgelehnt wird.

Aus Ihrem Beispiel gibt es folgende, die untersucht werden müssen:

  • Was warWhile a customer places an order, their user session times out
    • sollte lauten: As a user when I place my order, I expect not be charged twice nor get multiple orders without paying, und ebenso `Ich sollte in der Lage sein, meine Bestellung nachzuschlagen und den Status zu verstehen.
  • Was warWhile a customer uses an ATM machine, the machine runs out of receipts and needs to warn the customer
    • Sollte sein:As a user when I ask for a receipt but there are none, I expect to emailed the receipt
    • Oder alternativ As a user I expect a transaction to be declined if there are no receipts available but I want one.
  • Was war:While a customer places an order, their credit card number doesn't exist
    • Sollte seinAs a user, when I enter an invalid credit card (for whatever reason) I should be notified before the order is placed, so I can correct it
    • Oder alternativ: As the finance department when a invalid credit card is entered send an automated email to the user to indicate their order will be cancelled unless they fix the credit card number. Finance kann auch Ihr Benutzer sein, nicht nur Ihr Kunde.
  • Was warWhile a customer places an order, the PIN failed
    • Kann seinAs a user when I enter an invalid PIN, I should be alerted to enter a valid one
    • Und zusätzlichif this happens more than 3 times, I want my card to be destroyed in case of theft.

Für die konkrete Beratung:

  1. Wie raten Sie mir, die Backlog-Geschichten einzufügen, die diese Situationen abdecken?

    • Erstellen Sie für jede davon individuelle Geschichten. Das resultierende System ist eine Zusammensetzung aller User Storys, die Sie nicht in eine User Story aufnehmen müssen and also all other user stories, das ist de facto wahr.
  2. Wie raten Sie mir, Geschichten zu erstellen, die einem „Task Process Workflow Diagram“ folgen? (Diese zweite Frage ist anders, aber verwandt)

    • Wenn dies eine Frage der tatsächlichen Technologie ist, die spezifisch für das ist, was Ihnen zur Verfügung steht, kann es hilfreich sein, ein Architekturdiagramm aller Prozesse in diesem Bereich zu haben.
    • Wenn dies eine Frage zur Ausführung der Aufgaben ist, schlage ich vor, (A) die User Story aufzuschreiben => (B) die User Story mit mehreren Benutzern zu validieren => (C) ein funktionierendes Prototyping zu erstellen => (D) zu validieren es funktioniert wie erwartet => (E) zusätzliche User Stories einbinden => (F) Verfolgen Sie die Nutzung des Prototyps, um sicherzustellen, dass er tatsächlich ein echtes Problem löst => (G) Iterieren.