Sollte eine User Story zwischen Entwicklern geteilt werden? [geschlossen]

21

Ich sehe häufig Geschichten, die Back-End- und Front-End-Entwicklung haben. Betrachten Sie beispielsweise ein großes Dialogfeld mit einigen Tabellen und einigen dynamischen Steuerelementen. Wir machen mehrere Geschichten (vielleicht eine für jeden Tisch und eine für das dynamische Kontrollsystem).

Das Entwicklerteam teilt sich dann mit einer Person im Back-End und einer anderen im Front-End. Dies erleichtert es dem Back-End-Benutzer, sich nur um die Struktur der SQL-Schicht zu kümmern, während sich der Front-End-Benutzer auf Dinge wie Layout konzentriert. Nachdem die anfängliche Schnittstelle zwischen Back- und Front-End festgelegt wurde, können die beiden Entwickler ihre Aufmerksamkeit darauf richten, dass ihr Teil bis zum Ende des Sprints erledigt ist.

Dann kommt das Chaos. Wem gehört welche Geschichte? Was bedeutet "in Bearbeitung" oder "erledigt"? Sollten wir zwei getrennte Geschichten für das Back-End und das Front-End erstellen? Wenn ja, bricht das nicht die Idee von User Stories, die auf Features basieren? Unser System kennt "Unteraufgaben", die einige dieser Probleme lösen. Unteraufgaben erhöhen jedoch die Komplexität. Gibt es einen besseren Weg? Ist dies eine "schlechte" Art, Scrum zu benutzen?

Ich habe in den letzten Jahren an einigen Orten eine Form von Agile verwendet. Ich habe noch keine offizielle Ausbildung, bitte verzeihen Sie falsche Terminologie oder Ideologie. Ich versuche nur, praktische Möglichkeiten zu erlernen, um unseren Prozess zu verbessern.

User1
quelle
Sie haben es so ziemlich mit der Idee von Unteraufgaben abgedeckt. Was ist mit diesem Konzept schwer zu verstehen?
RibaldEddie
1
Die Unteraufgaben sind nicht schwer zu verstehen, sie sind nur komplexer. Ich schätze, der Entwickler-Manager besitzt die Story und jeder Entwickler hat seine Unteraufgabe. Es endet letztendlich in 3 Objekten pro Feature (eine Story und zwei Unteraufgaben). Ich denke, das ist ganz normal.
User1
1
Die meisten agilen Prozesse lehnen die Idee ab, dass jeder Entwickler einen bestimmten Teil des Projekts "besitzt". Die Mitarbeiter arbeiten einfach an Aufgaben, unabhängig davon, welchen Teil des Systems sie berühren müssen. In Ihrem Fall scheint es so, als würden Sie effektiv ein kleines Unterteam zusammenstellen, um eine einzelne Geschichte zu behandeln, was für mich in Ordnung erscheint. Lassen Sie sie miteinander in Verbindung treten, um zu entscheiden, wann die Geschichte fertig ist. Ich verstehe nicht, warum es komplexer sein muss.
Jules
"Am Ende stehen 3 Objekte pro Feature (eine Story und zwei Unteraufgaben). Ich denke, das ist ganz normal." - Es ist üblich, aber es sollte nicht normal sein. Eine agile Geschichte kann durchaus in 2 Geschichten unterteilt werden (1 für FE, 1 für BE). Der Zweck einer Story ist nicht unbedingt eine Funktion, sondern soll dem Produktbesitzer einen gewissen "Wert" bieten. BE dev bietet viel Wert und sollte separat sein.
PostCodeism

Antworten:

16

Eine "Geschichte" wird so genannt, weil sie aus Kundensicht eine vollständige Geschichte darstellt . Ohne Front-End oder Back-End kann der Kunde keinen Use-Case-Pfad ausführen.

In Ihrem Fall sollten Front-End und Back-End eine Geschichte sein. Teilen Sie es in Aufgaben. Die Entwickler haben ihre unterschiedlichen Aufgaben. Diese Aufgaben können individuell über ihre Phasen verfolgt werden - In Bearbeitung, Codierung abgeschlossen, Modultest abgeschlossen usw.

Stellen Sie sicher, dass Sie von der Qualitätssicherung zugewiesene Aufgaben in dieselbe Story aufnehmen - ohne Validierung ist eine Story nutzlos. Die Qualitätssicherung testet die durchgängige integrierte Story, die ein Kunde sieht. Erst dann sollte die gesamte Story als erledigt markiert werden. In einer idealen agilen Umgebung probiert ein echter Kunde oder ein Kundenvertreter die Story auch in einer laufenden Anwendung aus und markiert die Story als "Akzeptiert", wenn sie den vereinbarten Anforderungen entspricht.

Wenn Sie schnellere Feedback-Schleifen wünschen, unterteilen Sie den Anwendungsfall in kleinere End-to-End-Funktionen. Beispiel: Anstelle eines Anwendungsfalls wie "Ein Kunde kann mit einem Einkaufswagen etwas kaufen" teilen Sie ihn in "Ein Kunde kann einem Einkaufswagen ein Produkt hinzufügen" und so weiter ... Vervollständigen Sie dann jeden kleineren Anwendungsfall Ende zu Ende wie oben beschrieben.

EDIT: Ich wollte die obigen Punkte mit einigen Quellen belegen. Die Merkmale einer guten User Story werden kurz und bündig mit dem Akronym " INVEST " dargestellt. Es wurde von Bill Wake kreiert und von der Scrum-Bewegung populär gemacht. Beachten Sie insbesondere, dass die Elemente in Geschichten unabhängig und vertikal sind.

Weitere Informationen hier und hier .

metacubed
quelle
5

Wem gehört welche Geschichte?

Wen auch immer die Geschichte erfasst. Der Schlüssel aus organisatorischer Sicht ist, dass eine Person für die Arbeit verantwortlich ist. Sobald Sie zwei Leute haben, ist es zu einfach, das Geld zu übergeben.

Sollten wir zwei getrennte Geschichten für das Back-End und das Front-End erstellen? Wenn ja, bricht das nicht die Idee von User Stories, die auf Features basieren?

Es hängt davon ab, ob. Ich habe gesehen, wie beides funktioniert. Wenn die Story groß genug ist, damit zwei Entwickler Vollzeit daran arbeiten, sollte sie vielleicht aufgeteilt werden. Wenn die beiden Entwickler Teil von zwei verschiedenen Teams sind, sollte es vielleicht aufgeteilt werden. Wenn die beiden Entwickler während verschiedener Sprints daran arbeiten, sollte es vielleicht aufgeteilt werden.

Ist dies eine "schlechte" Art, Scrum zu benutzen?

Der Schlüssel zum Erinnern ist, dass der Prozess da ist, um Ihnen zu dienen, nicht umgekehrt. User Stories sind eine Möglichkeit für technische und nicht-technische Personen, die Kommunikation zu erleichtern. Sie formulieren, was sie möchten, jeder verhandelt, und dann geben Sie in der Geschichte Feedback über den Fortschritt.

Solange der Prozess für Sie funktioniert, kann es nicht so schlimm sein.

Telastyn
quelle
3

Wenn wir Scrum-Modelle implementiert haben, ist zu erwarten, dass mehrere Entwickler an einer einzelnen User Story beteiligt sind. Möglicherweise gibt es Arbeiten für die Datenebene, die Integration, das Front-End-CSS, die Infrastruktur usw. Das Team kann die verschiedenen Unteraufgaben für eine Story zusammenstellen, um diese zu erledigen.

Abgesehen davon besitzt eine Person die Geschichte und ist dafür verantwortlich, den Fortschritt zu aktualisieren und sicherzustellen, dass alle ihre Arbeit geleistet haben und dass sie zusammenarbeitet. Dies ist die Person für uns, die berichtet, dass eine Geschichte "fertig" ist.

Jay S
quelle
3

Wie andere vorgeschlagen haben, teilt mein Team auch unsere User Stories in Aufgaben. Dies ist im Allgemeinen einfach, wenn Sie Ihre User Storys über Software (wie JIRA oder Rally) verwalten. Dann ist es leicht zu sagen, welche Teile der Geschichte sich bewegen.

Eine Alternative für Aufgaben wäre jedoch die Neuzuweisung des Eigentums, wenn jede Person ihren Teil erledigt. Also wird die Geschichte herumgereicht - vielleicht beginnt Entwickler 1 sie mit der Backend-Arbeit und geht dann zu Entwickler 2, um die Benutzeroberfläche zu erstellen. Anschließend wird es zur Überprüfung an Ihren QS-Tester weitergeleitet. Diese Methode sollte in Umgebungen gut funktionieren, in denen Sie tatsächliche Karten an der Wand verwenden oder wenn Ihre Software keine Aufgaben verfolgt.

Aber auf jeden Fall empfehle ich, eine Geschichte niemals "fertig" zu nennen, bis das Team damit einverstanden ist, dass sie fertig ist, einschließlich des Testens. Auf diese Weise hat jeder die Möglichkeit, seinen Beitrag zu leisten. Und wenn Sie dies mit Ideen zu kollektivem Code-Besitz und Code-Überprüfungen kombinieren, ist jede Story sowieso "im Besitz" des Teams. Es kann verschiedenen Personen auf dem Weg "zugewiesen" werden, aber wenn jemand unterwegs ist (krank / Urlaub / zu viele Besprechungen? / Andere), kann die Arbeit trotzdem erledigt werden.

Mein Team akzeptiert häufig User Stories als Teil unseres morgendlichen Stand-up / SCRUM-Meetings. Auf diese Weise kann jeder leicht erkennen oder bestreiten, ob es wirklich "getan" ist. In anderen Fällen lassen wir nur unsere QS-Technikerin das tun - wenn sie zufrieden ist, dass es getestet wurde und funktioniert und alle Aufgaben erledigt sind, nennen wir es erledigt.

Allan
quelle
1

Wo ich heute bin, nennen wir dieses größere Projekt ein "Epos". Ein Epos besteht aus mehreren Geschichten und kann mehrere Sprints / Iterationen umfassen. Eine Story wird für uns immer einem einzelnen Entwickler gegeben und sollte in einen einzelnen Sprint passen. Eine einzelne Geschichte wird dann in Aufgaben unterteilt. Jede der Aufgaben wird von demselben Entwickler für diese Story ausgeführt. Die Aufgaben sollen einen Einblick in den Fortschritt der Geschichte während des Sprints / der Iteration geben. Wenn jede Geschichte von jedem Entwickler abgeschlossen ist, zeigt das Epos den Fortschritt.

Der Sinn des Epos ist es, ein größeres Ziel zu haben, das nicht unbedingt in einen einzelnen Sprint / eine einzelne Iteration passt. Im Laufe der Zeit sind alle Geschichten abgeschlossen und das Epos ist beendet. Epen werden in eine Veröffentlichung eingefügt.

Dann kommt das Chaos. Wem gehört welche Geschichte? Was bedeutet "in Bearbeitung" oder "erledigt"?

Wir führen alle zwei Wochen einen Demo-Code durch, in dem die Stories für diesen Sprint / diese Iteration den Stakeholdern gezeigt und genehmigt werden müssen. In diesem Zusammenhang bedeutet "erledigt" für eine Geschichte, dass ich Ihnen zeigen kann, was sie tut. Ein Entwickler besitzt seine Geschichte und ist dafür verantwortlich, sie zu zeigen (dieser Teil ist eine Art übermäßige Vereinfachung, aber gut genug für diese Antwort; wir koordinieren unsere Demos durch eine einzige Person). "Fertig" bedeutet, dass es erfolgreich demonstriert werden kann. "In Bearbeitung" bedeutet, dass noch Aufgaben offen sind und die Geschichte nicht vollständig ist. Ein Epos ist abgeschlossen, wenn alle Geschichten für dieses Epos erfolgreich demonstriert wurden.

Dies ist der perfekte Fallverlauf. Wir haben Geschichten und Demos, die scheitern, Benutzer, die etwas anderes wollen usw. Oben ist das Ziel und größtenteils funktioniert es.

jmq
quelle
1
"Fertig" bedeutet, dass es erfolgreich demonstriert werden kann - da bin ich mir nicht sicher. Erfolgreiche Demonstration bedeutet nicht, dass sie die Qualitätssicherung nicht unbedingt besteht, es sei denn, Ihre Demonstration deckt jeden einzelnen Eckfall ab, den ein guter Tester darauf werfen würde.
Mike Chamberlain
1
Wir veröffentlichen QA-Veröffentlichungen, keine Geschichten. In diesem Fall wird eine Geschichte geschrieben. Dies bedeutet nicht, dass ein Fehler nicht geöffnet oder die Story nicht erneut geöffnet werden kann, sondern nur, dass Sie die Story zu Projektmanagementzwecken in die Spalte "Fertig" verschieben. Wenn jeder Eckfall mit einer einzigen Geschichte getestet worden wäre, würden wir niemals etwas liefern ... das ist, wenn Sie realistisch an jeden Eckfall denken können.
23.