Ich habe gerade zwei User Stories aus einem neuen Projekt-Backlog, den ich gerade erstellt habe, erfüllt (ist das ein guter Begriff?). Dies sind die Benutzerregistrierung und das Zurücksetzen des Passworts, für die beide E-Mails erforderlich sind. Ich muss eine Ersatz-Mail-Komponente implementieren, da meine anfängliche und normalerweise zuverlässige Auswahl nicht funktioniert hat. Da ich mich darauf konzentriert habe, die User Stories zu liefern und nicht die Mail-Komponente zu debuggen, habe ich sie ausgetauscht, um am Ende des Sprints Arbeitscode zu liefern. Protokolliere ich jetzt ein neues Support-Problem für den Mailer oder füge ich diese Storys erneut in das Backlog ein? Wenn ich Letzteres mache, füge ich nicht zu viele technische Details in User Stories ein?
Technische Schulden sind nur eine andere Geschichte
Wenn eine Story fertig ist, bedeutet dies, dass sie die Qualitätssicherung bestanden hat und vom Product Owner akzeptiert wurde.
Alle Arbeiten, die möglicherweise durchgeführt werden müssen, um die Implementierung zu "bereinigen" oder "zu verbessern", gelten als technische Schulden und sollten einfach eine neue Geschichte sein.
Auf diese Weise wird es wie alles andere vom Product Owner verfolgt und priorisiert.
quelle
Die einfachste Sache, die vernünftigerweise funktionieren wird
In einem verwandten Kommentar sagt das OP:
Wenn dies der Fall ist, ist die ursprüngliche Frage umstritten. Das YAGNI-Prinzip erfordert, dass eine Lösung nicht im Hinblick auf zukünftige Anforderungen überarbeitet wird.
Wenn eine Lösung , die die aktuellen Sprint Ziele, Funktionen wie vorgesehen erfüllt und trifft das Team „Definition von getan“ , dann es ist getan. Es ist nicht halb fertig, irgendwie erledigt oder "bis zu einem geplanten Refactoring erledigt".
Markieren Sie es als erledigt und fahren Sie fort.
Kleinere Einschränkung
Wenn Sie wirklich glauben, dass es dort eine andere Geschichte gibt oder eine technische Verschuldung, die die ursprüngliche Geschichte nicht verhindert, sollten Sie eine andere Geschichte für das Product Backlog erstellen .
Neue Arbeiten müssen immer im Product Backlog platziert werden, um die Sichtbarkeit zu erhöhen - keine unsichtbare Arbeit, niemals! Letztendlich ist es Aufgabe des Product Owners, zu entscheiden, ob die vorgeschlagene Verbesserung mit den Produktzielen übereinstimmt, und Ihre neue User Story im Product Backlog zu priorisieren, wenn er die Story hinzufügen möchte.
quelle
Aufgrund Ihrer Frage und zusätzlicher Kommentare zu @ Klees Antwort denke ich, dass das Problem etwas anders ist.
Du hast eine Geschichte fertiggestellt. Es sollte bedeuten, dass Sie alle Definitionen von erledigt bestanden haben - andernfalls kann die User Story nicht als abgeschlossen betrachtet werden. Wenn Sie jedoch die Geschichte abgeschlossen und alle Definitionen von erledigt bestanden haben, sollte dies bedeuten, dass Ihre aktuelle Lösung zufriedenstellend ist. Andernfalls muss der Kunde / Produktbesitzer den Grund angeben, warum er nicht zufriedenstellend ist (nicht Sie), und entweder Ihre Fertigstellung ablehnen oder eine andere User Story definieren, die diese mit einer neuen Definition von done erweitert, die von Ihrer aktuellen Lösung nicht zufrieden gestellt wird.
Technische Schulden werden nur aufgenommen, wenn Ihre aktuelle Lösung bestimmte Anforderungen oder Einschränkungen nicht erfüllt. Gibt es eine Einschränkung, gegen die Sie durch die Verwendung einer Problemumgehung verstoßen haben? Wenn ja, sollten Sie Ihre User Story nicht als vollständig markieren.
Gibt es eine Codeduplizierung oder eine andere schlechte Vorgehensweise, die durch Ihre Problemumgehung eingeführt wurde? Dann haben Sie technische Schulden erstellt und sollten diese so schnell wie möglich lösen. Sie können entweder fair gegenüber dem Produktbesitzer sein und ihm einfach sagen, dass Sie beim nächsten Sprint dieselbe Zeit damit verbringen müssen, Ihre technischen Probleme zu beheben, was zu weniger geplanten User Stories führt. Oder wenn Ihre Beziehung zum Product Owner nicht sehr gut ist, planen Sie einfach weniger User Stories aufgrund "neu" entdeckter Komplexitäten in einem von ihnen und beheben Sie Ihre technischen Schulden.
Wenn es keine Codeduplizierung oder einen wirklichen Grund gibt, warum Ihr Code verbessert werden sollte, berühren Sie ihn einfach nicht. Mit dem wahren Grund meine ich, dass keine vom Kunden / Produktbesitzer definierte Einschränkung vorliegt (z. B. Unternehmensrichtlinien, Leistung, vordefinierte Zeit für die Erstellung einer neuen E-Mail-Vorlage, die mit Ihrer aktuellen Lösung nicht erreicht werden kann usw.). Ihr Code enthält keine technischen Schulden. Was Sie versuchen, wird als Golden Plating bezeichnet - Bereitstellung von Funktionen, die nicht erforderlich waren = Verschwendung von Kundenressourcen.
Wenn Ihre Lösung keine zukünftige User Story zufriedenstellt, verschieben Sie einfach Ihr Refactoring und die Codeverbesserung in diese User Story. Es muss jetzt nicht gelöst werden, da es die aktuelle Definition von erledigt erfüllt hat. Behandeln Sie Verbesserungen, wenn sie durchgeführt werden müssen, um die Definition von erledigt für neu implementierte Storys zu bestehen und schlechte Praktiken zu vermeiden.
quelle