Wer prüft welche Kriterien für Epics?

Unsere Product Owner ist also in einer Position, in der sie sich durch die Zerlegung einer großen User Story belastet fühlt:

  1. Der Product Owner präsentiert eine Geschichte
  2. Ingenieure stellen fest, dass es für eine einzelne Geschichte zu groß ist
  3. Ingenieure wandeln es in ein Epos (oder Thema) um und schreiben dann zusätzliche Benutzergeschichten (als Entwickler), die wir benötigen, um das Epos zu vervollständigen.

Anstatt den PO die Entwickler-[Unter-]Geschichten schreiben zu lassen, schreiben wir sie für uns selbst, mit der Maßgabe, dass wir das Epic liefern , wenn alle unsere Geschichten vollständig sind, und die Annahme/Bestätigung nach Kriterien erfolgt, die ursprünglich vom PO geschrieben wurden (die ursprüngliche Geschichte, die wir in ein Epos umgewandelt haben)

  • PO's Story ( als Admin will ich blabbeln, damit ich blabbeln kann ) (insgesamt 21 Punkte)
    • Entwicklergeschichte 1 (8 Punkte)
      • Entwicklergeschichte, Aufgabe 1
      • Entwicklergeschichte, Aufgabe 2
    • Entwicklergeschichte 2 (13 Punkte)
      • Entwicklergeschichte, Aufgabe 1
      • Entwicklergeschichte, Aufgabe 2
      • etc...

Usw...

Dies ist für die Bestellung einfacher zu verwalten. Sie schreibt einfach die Geschichte auf, damit sie mit ihrem Blick auf das Gesamtbild auf hohem Niveau bleiben kann, anstatt Stunden damit zu verschwenden, zusätzliche Geschichten zu schreiben, an denen sie kein Interesse hat und die sie nicht versteht. Die Entwickler sind zufrieden, weil wir alles in logische Workloads aufteilen und darauf hinweisen können, und diese dann damit beauftragen, einen PSP bereitzustellen.

Jetzt ist der technische Leiter etwas unruhig, weil er möchte, dass jede der Entwicklungsgeschichten anhand irgendeiner Art von Akzeptanzkriterien getestet wird, genauso wie die epische Geschichte akzeptiert/getestet wird; als Meilensteine/Checkpoints sozusagen. Wir empfehlen in diesen Fällen etwas Niedrigeres: zum Beispiel Unit-Test-Suiten, die zeigen, dass alles bestanden wird, und/oder QA, die SOAPUI-Tests gegen neue Webservices oder andere Testtools durchführt – aber hauptsächlich Unit-Test-Suiten für Dinge, die dies nicht tun noch ein Frontend haben.

Kurz gesagt, wir empfehlen, dass Entwicklergeschichten von der QA anhand der Ergebnisse verschiedener Arten von Tests akzeptiert werden. Wir werden versuchen, die QA in die Anforderungen einzubeziehen, damit sie während des Prozesses Fragen stellen und sicherstellen können, dass die Ingenieure die ursprünglichen Akzeptanzkriterien im Auge behalten. Dann lassen wir die PO und QA die Abnahme der Originalgeschichte vornehmen, sobald das Epic geliefert wurde, und das wird anhand der Kriterien geschehen, die in der Originalgeschichte geschrieben sind, die wir in ein Epic umgewandelt haben.

Meine Frage ist also: Sehen Sie daran etwas grundsätzlich Falsches? Wie gehst du an das Testen von Epic usw. heran?

Antworten (3)

Bemühe dich, unabhängige kleinere Geschichten zu schreiben

...zusätzliche Geschichten, die sie weder interessiert noch versteht.

Schreiben Sie keine Geschichten, die die PO nicht versteht. Wenn es der Bequemlichkeit der Entwickler dient, ist es keine Geschichte. Es ist nur eine technische Aufgabe. Geben Sie sich mehr Mühe, kleinere Geschichten zu schreiben, die der PO versteht. Siehe vorherige Diskussion in PMSE hier, wie man größere Geschichten aufteilt.

Übrigens ist es nicht so, dass sich der Product Owner alleine abmüht Geschichten und Akzeptanzkriterien zu schreiben. Bei Backlog-Refinement-Meetings sollte das Entwicklungsteam mit dem Product Owner zusammenarbeiten, um die Storys aufzuteilen und Akzeptanzkriterien zu schreiben.

...Unit-Test-Suiten für Dinge, die noch kein Frontend haben.

Komponententests dienen der Entwicklerproduktivität. Sie können den Umfang der vom QA-Team durchzuführenden Regressionstests reduzieren. Sie sind jedoch kein Ersatz für QA und PO, die Abnahmetests aus Sicht des Endbenutzers durchführen. Stories sollten vertikale Slices sein (mit einem Front-End und einem passenden Back-End).

Geben Sie hier die Bildbeschreibung ein

Meine Frage ist also: Sehen Sie daran etwas grundsätzlich Falsches?

Ja. Ihr Team scheint vom Wasserfalldenken belastet zu sein. Dies ist nicht ungewöhnlich für Teams, die versuchen, von Wasserfall zu Agil zu wechseln. Versuchen Sie, beim vertikalen Aufteilen von Geschichten Hilfe zu erhalten (unter Verwendung von Online-Ressourcen oder eines Mentors). Ihr Engineering Manager scheint das richtige Gespür zu haben. Das ist ein großes Plus!

Wie gehst du an das Testen von Epic usw. heran?

Du nicht. Das Team sollte sich bemühen, unabhängige kleinere Geschichten zu schreiben, die der PO verstehen und testen kann.

Ich liebe diese Antwort!
Hier ist also das Problem. Was tatsächlich passiert, ist, dass wir den Übergang vor etwa 3 Jahren vollzogen haben und der neue ScrumMaster/PM uns zurück ins Wasserfall-Denken drängt, damit sie die Dinge in ein Gantt-Diagramm bringen können. Das Problem mit diesem „Stück vom Kuchen“-Müll, den wir wirklich und zutiefst hassen, ist, dass er der Architektur schadet und keine brauchbaren Geschichten hervorbringt. Das mag in Ordnung sein, aber die neue Denkweise besagt, dass eine fertige Story ein nutzbares, lieferbares Feature sein muss, das in einem einzigen Sprint erledigt werden kann. Wir haben bewiesen, dass dies in etwa 80 % der Fälle unmöglich ist.
Das andere Problem ist, dass wir nicht funktionsübergreifend sind. Wir haben Client-Entwickler und Server-Entwickler. Selbst bei einem dünnen vertikalen Schnitt dauert es oft den größten Teil des Sprints, um den neuen Service für den Kundenverbrauch bereitzustellen, was nicht viel Zeit für Integration und Qualitätssicherung lässt, und wir können nichts als erledigt bezeichnen
Außerdem scheint der Artikel, aus dem dieses Diagramm stammt, einige andere Kommentare ( blogs.adobe.com/agile/2013/09/27/… ) darüber zu enthalten, dass diese Slices tatsächlich sinnvoll sind. Vielleicht gibt es ja noch Platz für horizontale Schnitte...

TL;DR

Wer prüft welche Kriterien für Epics?

Epen und Themen sind im Allgemeinen nicht testbar, daher lautet die Antwort wirklich „niemand“. Stattdessen muss das gesamte Scrum-Team diese zu großen Elemente während der Backlog-Verfeinerung oder der Sprint-Planung zerlegen, bis sie Stories sind, die testbare Kriterien enthalten, die gemessen werden können.

Das gesamte Scrum-Team, zu dem ausdrücklich der Product Owner gehört, muss zusammenarbeiten, um umsetzbare User Stories zu definieren, die test- und nachweisbar sind . Ihr aktueller Prozess fördert keine ausreichende Zusammenarbeit, um dies zu erreichen.

Darüber hinaus führt Ihr aktueller Prozess dazu, dass das Team Gelegenheiten verpasst, mit dem Product Owner zusammenzuarbeiten, um Implementierungsdetails auszuhandeln, die einen Mehrwert schaffen, Projektkosten senken oder zu mehr Nachhaltigkeit führen. Während sich der Product Owner nicht um Details auf Codeebene kümmern sollte, kann das Verständnis der Kompromisse bei verschiedenen Implementierungen dem gesamten Team helfen, sicherzustellen, dass das Richtige erstellt wird und dass Möglichkeiten zum Erstellen eines potenziell auslieferbaren Inkrements vorhanden sind durch offene Diskussionen über Minimum Viable Features und YAGNI- Prinzipien gesteigert.

Epics und Themes sollten es niemals aus dem Product Backlog in das Sprint Backlog schaffen. Dabei entsteht ein sehr starker „Projektgeruch“, der auf ein grundlegendes Problem bei der Umsetzung des Scrum-Prozesses des Teams hinweist.

Aufgaben vs. abhängige Storys

Geschichten

Geschichten und Aufgaben sind zwei verschiedene Dinge. Eine User Story hat ein Format , von dem erwartet wird, dass es als Platzhalter fungiert, der ein Feature, einen Standpunkt, der den Nutznießer des Features darstellt, und einen Kontext definiert. Variationen des Connextra-Formats sind das, woran die Leute am häufigsten denken:

Als [Rolle oder „Wertverbraucher“]
möchte ich [Merkmal oder Funktionalität]
, damit [in einem bestimmten Kontext davon profitiert].

Eine Story ist ein Platzhalter für Gespräche, um die Zusammenarbeit zu ermöglichen, und ist nicht als vollwertige Spezifikation gedacht. Geschichten werden im Allgemeinen in Story Points geschätzt (z. B. modifizierte Fibonacci-Folge, T-Shirt-Größen usw.).

Storys leben im Allgemeinen im Product Backlog, da sie zwar der INVEST -Mnemonik entsprechen, aber einen Wert für das Projekt und potenziell lieferbare Funktionen darstellen.

Aufgaben

Auf der anderen Seite ist eine Aufgabe ein Checklistenpunkt, der dem Team hilft, seinen Fortschritt beim Abschluss der Geschichte zu verfolgen. Eine Story sollte Aufgaben haben, aber eine Story sollte (als Faustregel) keine abhängigen Storys haben.

Aufgaben leben oft eher im Sprint Backlog als im Product Backlog, da es sich eher um Implementierungsdetails oder technische Meilensteine ​​handelt als um Geschichten, die sich strikt an die INVEST-Kriterien halten sollten. Trotzdem sollten sie klein und testbar sein, also gibt es sicherlich ein bisschen Überschneidung.

Aufgaben können handlungsorientiert sein, werden aber oft eher in idealen Stunden als in Aufwandsstufen geschätzt. Zum Beispiel eine Geschichte wie:

Als Bankkunde
möchte ich jeden Geldautomaten gebührenfrei nutzen können, um überall
auf mein Geld zugreifen zu können.

sollte während des Sprint Plannings in diskrete, messbare Aufgaben unterteilt werden. Die Aufgaben für diese Story, ob sie sich auf der Rückseite einer Story-Karte, Elementen im Sprint Backlog, Zeilen in einer Tabellenkalkulation oder auf ihren eigenen Karteikarten befinden, könnten so aussehen:

  • ☑ Fügen Sie eine Datenbankspalte hinzu, um die Mitgliedschaft im ATM-Netzwerk zu verfolgen. (2 Stunden)
  • ☑ Fügen Sie eine Datenbankspalte hinzu, um Gebühren im Zusammenhang mit Geldautomatenabhebungen in ausländischen Netzwerken zu verfolgen. (16 Stunden)
  • ☐ Modellrückrufe hinzufügen, um Kunden Geldautomatengebühren zu erstatten, die auf Abhebungen an ausländischen Geldautomaten zurückzuführen sind. (8 Stunden)

Aufgaben können während des Sprints vom Team hinzugefügt, gelöscht oder geändert werden, wenn neue Erkenntnisse gewonnen oder Abhängigkeiten oder Implementierungsdetails entdeckt werden. Das Sprint Backlog gehört dem Entwicklungsteam, nicht dem Product Owner, daher spiegelt der Inhalt des Team-Backlogs die Arbeit wider, die das Entwicklungsteam leisten muss, um die User Story aus dem Product Backlog zu implementieren.

Zusammenarbeit

Während das Product Backlog dem Product Owner und das Sprint Backlog dem Team gehört, ist es dennoch sinnvoll sicherzustellen, dass beide Artefakte für alle in der Organisation sichtbar sind, um die Zusammenarbeit zu fördern.

Ein Product Owner, der den Aufwand oder die Stunden, die mit Story-bezogenen Aufgaben verbunden sind, nicht sehen kann, hat unzureichende Einblicke in die tatsächlichen Kosten einer bestimmten Story, und das Team verpasst wertvolle Gelegenheiten zur Zusammenarbeit an verhandelbaren Implementierungsdetails . Beispielsweise kann sich während eines Sprints herausstellen, dass der Product Owner nicht alle Gebühren für alle Banken abdeckt; Die 80/20-Regel bedeutet, dass sich das Team vielleicht auf die Festcodierung von Werten für drei lokale Banken konzentrieren kann, die die meisten Beschwerden hervorrufen, anstatt eine flexiblere Lösung entwickeln zu müssen, die für alle Banken überall gelten würde.

Einheiten-/Funktionstests und Sprint-Review-Demonstrationen

Epics sind nicht testbar oder (allgemein) nachweisbar. Themen sind es auch nicht. Das macht sie für Sprints ungeeignet; Sie sollten nur für die langfristige Planung verwendet und bei Bedarf während der Backlog-Verfeinerung oder der Sprint-Planung zerlegt werden.

Alle Geschichten, die den INVEST-Kriterien entsprechen, sind von Natur aus testbar. Meiner persönlichen Erfahrung nach sollten Storys im Allgemeinen von Feature- oder Integrationstests und Aufgaben von Unit-Tests angetrieben werden. Es gibt sicherlich alle möglichen Vorbehalte und Ausnahmen von dieser Faustregel, aber die Befolgung dieser Ratschläge hilft in vielerlei Hinsicht, einschließlich:

  1. Funktionstests (z. B. automatisierte Browsertests) zeigen die Funktion aus einer für den Benutzer sichtbaren Sicht und können in vielen Situationen sogar als Ersatz für Benutzerakzeptanztests dienen.
  2. Funktionstests bauen Vertrauen bei den Beteiligten auf und zeigen oft, dass das Richtige™ gebaut wurde.
  3. Komponententests sind für das Entwicklungsteam und helfen, das Design voranzutreiben und Regressionen zu verhindern. Sie sind als Sprint-Review-Demonstrationen im Allgemeinen uninteressant, aber aus Sicht der nachhaltigen Entwicklung die wichtigsten Punkte.
  4. Dieser Stil, der TDD und ATDD entlang der Linie von Features vs. Tasks aufteilt, trägt dazu bei, die Testpyramide aufrechtzuerhalten , mit einigen langsamen High-Level-Tests, die von einer Basisschicht aus blitzschnellen Unit-Tests unterstützt werden. Zum Beispiel:

    Testpyramide von Velocity Partners

Wie immer wird es Ausnahmen und Vorbehalte geben, aber als Faustregeln habe ich festgestellt, dass das Vorstehende einigermaßen solide Praktiken ist. YMMV.

Vielen Dank. Wie viel Zeit verbringen Sie Ihrer Erfahrung nach damit, User Stories zu verfeinern, bevor sie tatsächlich in einen Sprint aufgenommen werden? Wir neigen dazu, dass der PO die Geschichte nicht mehr als 1 oder 2 Sprints vorstellt, bevor sie von uns erwarten, dass wir sie übernehmen, und damit fühlen wir uns nie wohl. Wir haben auch Probleme, bei denen es fast unmöglich ist, eine Geschichte dünn genug zu „schneiden“, um sie zu erfüllen UND sinnvoll zu sein, da unser Legacy-System ziemlich komplex ist und die Geschichten normalerweise miteinander verbunden sind und wir mit ständiger Übertragung stecken bleiben.
Mit anderen Worten, wie geht man mit einer Geschichte um, die so dünn wie möglich geschnitten ist, aber (aus Sicht der Aufgabenstellung) immer noch zu komplex ist, um sie in einem einzigen Sprint zu bewältigen? Wenn beispielsweise ein Großteil der Infrastruktur umgerüstet werden muss, um ein einzelnes, testbares Feature zu unterstützen?
@Sinaesthetic Das ist wirklich eine separate Reihe von Fragen. Diese Abhängigkeiten benötigen jeweils ihre eigenen Geschichten. Geschichten sind nicht nur für Features da; Sie sind auch für alles, was Teamkapazität verbraucht. Während Geschichten idealerweise unabhängig sein sollten, ist das manchmal nicht möglich; dann müssen die PO und das Team den Aufwand für die Nachverfolgung der Story-Reihenfolge und Abhängigkeiten vom Backlog verwalten. Wenn dies keine ausreichende Antwort auf Ihren Kommentar ist, würde ich empfehlen, ein konkretes Beispiel zu finden und es als andere Frage zu posten.

Eine kürzere Antwort als die anderen Epen:

Ja, es gibt Probleme mit diesem Ansatz. Während es funktioniert, solange alle zufrieden sind, geht das Risiko in den Anforderungen im Detail verloren.

Wenn Ihre Gesamtlösung so kompliziert geworden ist, dass „einfache“ (wie vom PO betrachtete) Änderungen von den Ingenieuren als „episch“ angesehen werden, wird der PO die Auswirkungen von Änderungen und/oder Verzögerungen nicht verstehen und die Ingenieure werden möglicherweise nicht mit dem PO implementieren 'wirklich will'

Ich denke, es ist eine legitime Herausforderung für agile Methoden, zu fragen, wie mit diesen größeren mehrschichtigen Systemen umgegangen werden soll, bei denen aus welchen Gründen auch immer kleine Änderungen an dem, was der Benutzer sieht, große Änderungen „hinter den Kulissen“ in Serviceschichten/Datenbanken usw. nach sich ziehen können Der Slice-Ansatz zur Bereitstellung diskreter Funktionalität kann Sie tatsächlich in diese Position bringen, in der Sie anstelle einer Anforderung an eine generische flexible Schnittstelle für eine niedrigere Ebene mit einer Vielzahl unflexibler Mini-Schnittstellen enden können.

Ich würde Sie diesem Problem entgegenwirken, indem Sie eine Meta-Anforderung/Story für Ihre unteren Ebenen schreiben, um diese Flexibilität wieder herzustellen und „einfache“ Änderungen an der Benutzerfunktionalität zu unterstützen, ohne dass eine Änderung der Basisfunktionalität erforderlich ist.

Ihre unteren Ebenen müssen möglicherweise sogar in ein eigenes Produkt mit einer eigenen Bestellung aufgeteilt werden