Wie man eine PBI/User Story in mehrere Sprints für verschiedene Aufgabentypen aufteilt oder verwaltet

Wir haben Mühe, Product Backlog Items (PBIs)/User Stories in Sprint-große Stücke zu zerlegen, da wir mehrere Schritte haben, die linear abgeschlossen werden müssen.

Jede Freigabe durchläuft mehrere Schritte:

  1. Entwicklung (Entwicklungsumgebung)
  2. Testen (Testumgebung)
  3. Staging-Tests (Staging/Pre-Prod-Umgebung)
  4. Benutzerakzeptanztests (UAT) (Staging/Pre-Prod-Umgebung)
  5. Bereitstellung in der Produktion

Wir können die Entwicklung und das Testen im Allgemeinen in einem Sprint abschließen und die UAT wird im folgenden Sprint abgeschlossen. Es ist sinnvoll, die UAT-Aufgaben unter denselben PBIs zu haben, die für die Entwicklung und das Testen verwendet werden, um eine Duplizierung der PBI/User Story zu verhindern. Das Problem besteht darin, dass PBIs immer für mehr als einen Sprint geöffnet sind, was bedeutet, dass unser Sprint-Rückstand zu groß, schwer zu verwalten und schwer zu erfassen ist. Es stellt auch einen Präzedenzfall dar, wo wir anfangen zu sagen, dass das Testen in einem anderen Sprint stattfinden kann als die Entwicklung usw.

So wie ich es verstehe, haben wir folgende Möglichkeiten:

  1. Weiter so wie wir sind.
  2. Erstellen Sie eine separate, doppelte PBI für UAT-Aufgaben. Die PBI würde von der Haupt-PBI kopiert werden.
  3. Erstellen Sie eine allgemeine UAT-PBI, die alle Aufgaben enthält, die für UAT für diese Version erforderlich sind.

Aufgrund anderer Prozesse, die wir nicht ändern können, kann sich UAT nicht im selben Sprint wie Entwicklung und Test befinden.

Wir verwenden derzeit Visual Studio Team Services/Azure Dev Ops.

Wäre das die beste Praxis dafür?
Gibt es noch andere Optionen, die ich übersehen habe?

Antworten (3)

TL;DR

Ihr UAT-Prozess befindet sich derzeit außerhalb Ihres Entwicklungsteams, und Ihre Bereitstellung und Bereitstellung sind eng miteinander verbunden. Ohne die zugrunde liegenden Prozesse oder Geschäftsannahmen zu ändern, gibt es keine Möglichkeit, das, was Sie derzeit tun, „agil“ zu machen.

Sie können jedoch:

  1. ein geeigneteres agiles Framework auswählen,
  2. verbessern Sie Ihre agilen Praktiken,
  3. gestalten Sie Ihre Entwicklungs- und Lieferprozesse neu, oder
  4. Akzeptieren Sie die Kosten für die Geschäftsabwicklung mit Ihrer aktuellen Implementierung unverändert.

Während unterschiedliche Antworten Ihnen verschiedene potenzielle Lösungen bieten können, fallen sie normalerweise in einen dieser vier Eimer. Für welche der verfügbaren Optionen Sie sich entscheiden, ist größtenteils eine geschäftliche oder politische Entscheidung. Berücksichtigen Sie dies also unbedingt in Ihrem Entscheidungsprozess.

Analyse

Danke, aber wenn wir in die Staging-Umgebung für UAT pushen, müssen wir die gesamte Veröffentlichung auf einmal pushen. Auf diese Weise können wir es wie einen Probelauf behandeln, der unsere Produktionsbereitstellung testet. Das bedeutet, dass die UAT nicht derselbe Sprint wie die Entwicklung sein kann, egal wie lange wir den Sprint machen.

Trotz der ursprünglichen Frage sind die wahren Probleme, wie in den Kommentaren beschrieben , folgende:

  1. UAT ist ein externer Prozess.

    Das UAT-Team und der Prozess gehören nicht zum Entwicklungsteam und liegen daher außerhalb der Kontrollspanne.

  2. Lieferung und Freigabe jedes Inkrements sind eng gekoppelt.

    Durch die Gleichsetzung von Lieferung mit Freigabe, insbesondere bei einer externen Abhängigkeit, kann Ihr Prozess die Definition of Done nicht innerhalb einer einzigen Iteration erfüllen.

Sobald Sie diese beiden integrierten Prozessprobleme erkannt haben, können Sie mit der Bewertung von Lösungen beginnen.

Potentielle Lösungen

Es gibt einen großen potenziellen Pool an möglichen Lösungen für Ihre Probleme. Welche politisch akzeptabel sind und welche für Ihr Unternehmen wirtschaftlich sinnvoll sind, wird von Unternehmen zu Unternehmen stark variieren.

In keiner bestimmten Reihenfolge umfassen einige Ihrer Optionen:

  • Machen Sie Lean oder Kanban, nicht Scrum.

    Auch wenn die Frage nicht mit Scrum getaggt war, ist der Begriff „Sprints“ im Allgemeinen ein Zeichen dafür, dass ein Team versucht, Scrum zu folgen. Wenn Sie jedoch aus institutionalisierten Gründen, die sich nicht ändern werden, routinemäßig nicht in der Lage sind, Ihre Sprint-Ziele innerhalb einer einzigen Iteration zu erreichen, ist Scrum möglicherweise nicht das richtige Framework für Sie.

  • UAT verinnerlichen.

    Wenn UAT außerhalb des Teams ist, ist es möglich , es in das Team zu bringen. Ob Ihr Unternehmen das will oder nicht, ist eine ganz andere Frage. Es ist möglich, also lehnen Sie den Gedanken nicht ab, nur weil es nicht so ist, wie der Prozess heute aufgebaut ist.

    Ein Scrum Master oder agiler Coach sollte die Geschäftsleitung aktiv über solche grundlegenden Prozessprobleme aufklären. Ermöglichen Sie dem Führungsteam, seinen Gehaltsscheck zu verdienen, indem es organisatorische Prozessprobleme löst.

  • Entkoppeln Sie die Bereitstellung von der Bereitstellung.

    In einem agilen Framework sollte jeder Zyklus oder jede Iteration ein potenziell auslieferbares Arbeitsinkrement liefern. Sie müssen es jedoch nicht wirklich bereitstellen, nur weil es geliefert wurde.

    Viele agile Teams verwenden Feature-Toggles und andere Continuous-Delivery-Praktiken, um es dem Team zu ermöglichen, Features an Sprint-Grenzen (oder sogar häufiger) bereitzustellen, ohne diese Änderungen notwendigerweise in Nicht-Entwicklungsumgebungen bereitstellen zu müssen. Indem Sie die Bereitstellung in Ihrer UAT-Umgebung aus Ihrer Definition of Done entfernen und es ihnen überlassen, Feature-Toggles zu aktivieren, wenn sie bereit sind, schaffen Sie die Möglichkeit, diese Elemente Ihres Prozesses zu entkoppeln.

    Das bedeutet natürlich, dass alle Probleme, die in UAT entdeckt werden, als neue Arbeit an das Product Backlog oder die Eingabewarteschlange zurückgesendet werden müssen, um sie gemäß Ihrem agilen Framework zu schätzen, zu priorisieren und zu planen. Sie haben viel Flexibilität, wie Sie dies tun, aber das Einzige, was nicht verhandelbar ist, ist, dass Sie keinen externen Prozess haben können, der Ihren internen agilen Prozess kapert oder umgeht.

    Durch die Entscheidung für separate Teams oder einen externen Testprozess muss das Management den Kompromiss akzeptieren, dass UAT und Bereitstellung Out-of-Band sind und dass die externen Prozesse nur an Iterationsgrenzen und durch den Verbrauch neue Arbeit für das Team schaffen können von Teamressourcen, die aus anderen Aktivitäten gezogen werden müssen. Auf die eine oder andere Weise gilt dies unabhängig davon, welches agile (oder sogar nicht agile) Framework Sie verwenden!

Es sind auch andere Lösungen möglich. Allen gemeinsam ist jedoch, dass Sie (das kollektive und organisatorische „Sie“) Ihre aktuellen Annahmen neu bewerten und dann überprüfen und anpassen müssen, bis Sie einen effizienteren Prozess erreicht haben. Beachten Sie, dass es auch eine legitime Geschäftsentscheidung ist , die Produktivität und die finanziellen Kosten zu akzeptieren, wenn Sie Ihr Geschäft so fortsetzen, wie Sie es heute tun , aber dass das Management nicht gleichzeitig „Weiter so wie bisher“ und „kontinuierliche Verbesserung“ haben kann. TAANSTAFL.

Todd, tolle Einblicke hier. Ich glaube, wir sind in Bezug auf Kanban auf derselben Seite, aber ich glaube, dass Kanban und Scrum gut funktionieren können, wie im Kanban for Scrum-Leitfaden von Scrum.org angegeben. Sofern das Pull-System von Kanban nichts anderes anzeigt, ist es sinnvoll, UAT von einem „potenziell freizugebenden“ Inkrement zu entkoppeln, indem die beiden in einer starken Definition of Done abgegrenzt werden. Ich denke daran, Ihre Sprints mithilfe von Kanban-Praktiken zu überprüfen und DANN zu entkoppeln, falls dies als notwendig erachtet wird. Auch hier klingt es so, als wären wir dort auf derselben Seite.
Ausgezeichnete Antwort danke. Es hat ein paar Tage gedauert, darüber nachzudenken, und ich werde vorschlagen, dass wir den Sprint auf vier Wochen verschieben, wobei UAT Mitte der vierten Woche beginnt. Das bedeutet, dass die Devs fertig wären, was das Problem war, dass sich UAT im selben Sprint befand, aber die Devs können dann Lösungen für kommende Funktionen finden, PBIs in Aufgaben aufteilen usw. Etwas, für das wir seit einiger Zeit mehr Zeit brauchen jetzt.

Tolle Frage. Es hört sich so an, als hätte Ihr Rückstand einen Engpass beim UAT-Entwicklungsstand. Scrum.org hat das Engpassproblem angegangen, indem Kanban-Praktiken in Scrum integriert wurden, um Szenarien wie das von Ihnen beschriebene äußerst transparent zu machen.

Ein ständig wachsendes Sprint-Backlog ist ein Artefakt dieser Art von Engpass, was zu einem schwer zu verwaltenden Sprint-Backlog führt, da die Liste der Arbeitselemente weiter wächst. Dies wird durch das Gesetz von Little angesprochen . Im Wesentlichen ist das grundlegende Ergebnis von Little's Law, dass es für einen bestimmten Prozess im Allgemeinen umso länger dauert, bis jedes dieser Dinge abgeschlossen ist, je mehr Dinge Sie zu einem bestimmten Zeitpunkt (im Durchschnitt) bearbeiten Durchschnitt).

Durch die Begrenzung von Work In Progress (WIP) und die Tatsache, dass Ihr Team seine eigene Definition des Workflows versteht, können Sie die Gründe für diesen Engpass aufdecken, ohne dass die Anstrengungen von Sprint zu Sprint wiederholt werden müssen. Es klingt seltsam, aber die Verlangsamung des Arbeitsablaufs durch die Begrenzung von WIP ist effektiv, um zu verstehen, warum Artikel in bestimmten Zuständen (in Ihrem Fall UAT) hängen bleiben, und gibt Ihnen die Möglichkeit, diese Probleme anzugehen, während gleichzeitig ein Mechanismus bereitgestellt wird, um die Arbeit effizient abzuschließen. Blocker und Ineffizienzen werden durch den Einsatz dieser Techniken qualifizierbar und können so leichter angegangen werden.

All dies finden Sie im 2018 Kanban Guide for Scrum Teams . Hoffe das hilft!

Danke, eine wirklich gute aufschlussreiche Antwort. Ich denke, das Problem liegt darin, dass wir UAT aufgrund einiger anderer Prozesse buchstäblich nicht im selben Sprint haben können, ich glaube nicht, dass ich das in meinem ursprünglichen Beitrag deutlich gemacht habe. Ich habe gestern Abend darüber nachgedacht, dass wir unsere Prozesse ändern müssen, um dies zu ermöglichen.

Sie haben eines (oder beide) der folgenden zwei Probleme:

  1. Ihre Geschichten sind zu groß. Teilen Sie sie weiter! Versuchen Sie, der INVEST-Methode zu folgen .
  2. Deine Sprints sind zu kurz. Machen Sie sie länger.

Ich persönlich würde die erste Lösung bevorzugen. Aber wenn Sie Ihre Geschichten bereits so weit wie möglich aufgeteilt haben, dann wäre es besser, längere Sprints zu haben, als immer alles über zwei Sprints zu tragen.

Wenn wir in die Staging-Umgebung für UAT pushen, müssen wir die gesamte Veröffentlichung auf einmal pushen. [...] Das bedeutet, dass die UAT nicht der gleiche Sprint wie die Entwicklung sein kann, egal wie lange wir den Sprint machen.

Ein Ansatz, den ich kürzlich gelesen habe, bestand darin, zwei separate Definitions of Done (DoD) zu haben. Die erste (bis einschließlich UAT) würde dazu führen, dass die Geschichte abbrennt, aber auf dem Sprint-Board würde sie in einer Spalte „Warten auf UAT“ verbleiben. Das zweite DoD wäre für den Zeitpunkt, an dem es bereitgestellt wird.

Danke, aber wenn wir in die Staging-Umgebung für UAT pushen, müssen wir die gesamte Veröffentlichung auf einmal pushen. Auf diese Weise können wir es wie einen Probelauf behandeln, der unsere Produktionsbereitstellung testet. Das bedeutet, dass die UAT nicht derselbe Sprint wie die Entwicklung sein kann, egal wie lange wir den Sprint machen.
@ Jay1b Du beschreibst ein Antimuster. Ihre Einzeliterations-Definition of Done sollte In-Sprint-UAT und die Bereitstellung in höheren Umgebungen umfassen , oder die Definition of Done sollte bei der Lieferung an UAT enden. Sie können einen zweistufigen Prozess oder einen einheitlichen Prozess haben – Sie können beides tun; man kann einfach nicht beides haben.
Grund für die Ablehnung? Wenn jemand anderer Meinung ist, würde ich gerne wissen, was / warum.