Ich habe eine User Story, die eine Reihe von Aufgaben enthält, ähnlich wie diese:
User Story: Beheben Sie jedes defekte JavaScript im CMS
Ich habe also eine Reihe von Aufgaben, um Code und Dateien durchzugehen und JavaScript zu reparieren. Nehmen wir an, dass alle oben genannten Aufgaben nicht von mir in einem 2-Wochen-Sprint erledigt werden können.
Wie teile ich das in mehrere Geschichten auf? Die Aufgaben können in beliebiger Reihenfolge erledigt werden und sind in keiner Weise voneinander abhängig. Es gibt also keinen logischen Weg, sie in Untergruppen zu unterteilen. Würde ich einfach machen:
User Story: Defektes JavaScript im CMS reparieren (Teil 1)
und
User Story: Defektes JavaScript im CMS reparieren (Teil 2)
Das scheint ein schlechter Weg zu sein, dies zu verwalten. Was ist ein besserer Ansatz für diese Art von Problem, bei dem Aufgaben nicht besser gruppiert werden können, Sie aber die Geschichte trotzdem aufteilen müssen?
Sie haben Probleme mit der Zerlegung Ihrer Arbeit, weil Ihre Geschichten nicht der INVEST-Mnemonik folgen . Insbesondere die von Ihnen aufgelisteten Aufgaben sind nicht testbar. Wie können Sie möglicherweise feststellen, ob Sie "Fehlerhaftes JavaScript in Katalogdateien finden und beheben" erfolgreich abgeschlossen haben, oder den damit verbundenen Arbeitsaufwand abschätzen?
Wie bei der testgetriebenen Entwicklung im Allgemeinen sollten die besten User Stories das Verhalten beschreiben . Zum Beispiel:
Als Benutzer erwarte ich, dass mich
das JavaScript auf der Katalogseite überrollt
, sodass ich genervt und weniger produktiv sein kann.
Jetzt ist klar, woran der Entwickler arbeiten muss und (was noch wichtiger ist) wie er diese Arbeit validieren kann. Sie haben testbares Verhalten beschrieben, anstatt den Umfang, das erwartete Verhalten und die testbaren Erfolgskriterien von Hand zu schwenken.
Geschichten sollten granular sein, aber nicht lächerlich. Wenn Sie viele verwandte Korrekturen haben, können Sie sie in einen Topf werfen . Zum Beispiel:
Als Webentwickler
möchte ich die rickroll.js- Logik auf allen 27 Aufrufen fixieren
, damit ich alle Kunden unabhängig von der Einstiegsseite irritieren kann.
Auch dies definiert testbares Verhalten, hat einen klaren und messbaren Umfang und bietet genügend Kontext, damit das Team die damit verbundene Arbeit einschätzen kann. Ob Sie einzelne Geschichten haben oder sie zusammenfassen sollten, hängt von der Teamkapazität und der Größe der Geschichte ab, aber zumindest haben Sie jetzt Optionen!
Anstelle von „beliebig“ würde ich eine genaue Zahl verwenden, oder das Beste wäre, eine Untersuchung in Sprint 1 durchzuführen, Probleme für jedes gefundene Problem zu erstellen und die spezifischen Probleme in den kommenden Sprints zu erledigen.
Mein Problem mit dem aktuellen Setup ist, dass es überhaupt nicht spezifisch ist. Wahrscheinlich bedeuten sie für zwei verschiedene Personen in Ihrer Organisation unterschiedliche Dinge.
Mein persönlicher Ansatz wäre, die technischen Schulden basierend auf der Funktionalität der Anwendung anzugehen.
Reparieren Sie beispielsweise defektes JavaScript (alle Kategorien) auf den Registrierungsseiten. Testen Sie es dann (einschließlich Regressionstests) und fahren Sie dann mit dem nächsten Funktionsbereich fort.
Sie werden wahrscheinlich feststellen, dass die ersten paar Funktionsbereiche die meiste Arbeit erfordern und dass dann, während Sie mit der Entwicklung von JavaScript fortfahren, viele der zugrunde liegenden JavaScripts durch frühere Geschichten behoben wurden.
Todd A. Jacobs
GH
Benutzer253751
Jake Wilson