Hier bin ich dabei, ein relativ kleines neues Softwareentwicklungsprojekt zu planen und zu schätzen. Ich habe die vom Kunden vorgeschlagenen User Stories durchgesehen und Aufgaben mit einer Schätzung und einigen kurzen Hinweisen zur Ausführung der Aufgabe gegen jede gestellt. Es gibt Akzeptanzkriterien. Alles sollte gut mit der Welt sein.
Als ich mir die geplante Arbeit ansah, stellte ich fest, dass etwas fehlte. Es wird einen anfänglichen Aufwand geben, einfach Dinge einzurichten, in die wir die Funktionalität einbinden können. Dinge, die zu allen User Stories gehören, nicht zu einer bestimmten User Story.
Ein Teil dieser Anwendung ist beispielsweise ein Dienst, der XML analysiert. Aus Sicht des Benutzers gibt es bestimmte Geschichten, in denen je nach Inhalt des XML verschiedene Dinge getan werden müssen. Das Schreiben eines XML-Parsers - die Bits, die nach einer Datei suchen, diese lesen und die relevanten Daten abrufen, bevor entschieden wird, was mit dem Inhalt geschehen soll - ist Teil all dieser Geschichten. Wie es in einem Windows-Dienst mit einem Installationsprogramm usw. verpackt wird. Es ist eine entwicklerorientierte Aufgabe ohne direkte Relevanz für einen Benutzer.
Ein weiteres relevantes Beispiel aus dieser speziellen Anwendung ist das Aufnehmen und Umschreiben eines Blocks mit schlechtem Legacy-Code, der für die Funktionen dieser App nützlich ist. Auch dies hat keine unmittelbaren Ergebnisse für den Benutzer, aber es ist notwendige Arbeit. Wo "lebt" die Planung und Ausführung dieser Arbeit in einem Projektplan, der sich auf User Stories konzentriert?
Ich habe Leute gesehen, die dieses Problem gelöst haben, indem sie User Stories geschrieben haben "Als Entwickler möchte ich ...", aber wie an anderer Stelle diskutiert wurde, ist dies keine User Story. Es ist ein Entwickler.
Ich suche eine konkrete Antwort darauf, um mir (und anderen) bei der Planung von Projekten mit strengen Management-Frameworks wie TFS online zu helfen. Diese haben in der Regel nicht die Funktion, "Stakeholder Stories" oder andere vage Metalösungen zu erstellen, die in den Antworten auf Wie berücksichtigt ein Scrum-Team Infrastrukturaufgaben in der Planungsbesprechung?
quelle
Antworten:
Ich mag die anderen Antworten, die besagen, dass so viel "Tooling" -Code wie möglich in Iteration 0 eingefügt werden soll. Manchmal werden diese Tools jedoch angezeigt, nachdem das Projekt bereits gestartet wurde. Vielleicht stellen Sie in Iteration 3 fest, dass Sie ein verallgemeinertes XML-Parser-Widget benötigen, um in Zukunft für verschiedene Storys verwendet zu werden.
In diesem Fall ist die erste User Story, die sich auf diese internen Architekturstücke stützt, diejenige, zu der sie gehören . Wenn Sie im Begriff sind, an Story # 345 zu arbeiten, und dies von Ihrem XML-Parser abhängt, bevor er als "erledigt" gezählt werden kann, wird Ihr wiederverwendbarer Parser als Arbeit für die Fertigstellung dieser Story angehängt.
Mein Team hat den oben genannten Ansatz verwendet und es schien gut für uns zu funktionieren.
quelle
Wenn es sich um eine Infrastruktur handelt, wird sie normalerweise in Iteration Zero eingefügt. Was ist Iteration Zero? Es ist normalerweise die Zeit zwischen Start und Planung, bevor die eigentlichen Iterationen beginnen.
Angenommen, wir benötigen einen neuen Webdienst. Ich muss also das Projekt erstellen, eine kontinuierliche Integration einrichten, ein Quellcodeverwaltungs-Repository einrichten, ein Build-Skript und eine automatisierte Bereitstellung einrichten usw. Die Benutzer interessieren sich nicht wirklich dafür, aber wir brauchen diese unabhängig davon.
Diese Arbeit würde also in Iteration 0 ausgeführt. Zum Zeitpunkt des Starts von Iteration 1 würde es bereits eine neue Projekt-Shell geben, die kompiliert, über ein automatisiertes Build-Skript verfügt und bereitgestellt wird. Jetzt wäre keine der Benutzerfunktionen vorhanden, aber es kann losgehen.
Ich würde diese Arbeit immer noch als Teil der Iterations-0-Arbeit verfolgen und planen.
Das Refactoring klingt wie eine technische Geschichte, die in jede Iteration gehen kann.
quelle
Kommt auf die Infrastruktur an.
Wenn die Infrastruktur von großer Bedeutung ist oder komplizierte Compliance-Bestimmungen einhalten muss, haben Sie möglicherweise ein separates Infrastruktur-Team, das möglicherweise einen eigenen Zeitplan hat. Es könnte agil sein, es könnte ein Wasserfall sein. In diesem Fall wird der Aufbau der Infrastruktur in Ihrem Projekt als externe Abhängigkeit verwaltet .
Wenn die Infrastruktur von Ihrem Team verwaltet und nur einmal eingerichtet werden soll, können Sie die von Jon beschriebene Iteration 0-Technik verwenden.
Wenn die Einrichtung der Infrastruktur mehrere Iterationen erfordert (z. B. wenn Sie Ihren Build-Server jetzt einrichten, QA- und Preprod-Server jedoch etwas später erstellt werden), kann deren Aufbau als nicht funktionierende PBIs verwaltet werden. Funktionale PBIs können bestimmte Abhängigkeiten von diesen haben, die Sie in TFS über den Link "Vorgänger" codieren können.
Und natürlich können Sie all das oben Genannte kombinieren. Beispielsweise können Sie ohne einen Continuous Build-Server nicht viel tun, sodass Sie dies in Iteration 0 einfügen können. In der Zwischenzeit werden Ihre Preprod-Server möglicherweise als Aufgaben für die Iterationen 2 und 3 definiert und haben möglicherweise externe Abhängigkeiten von Ihrem DBA-Team ( die nicht agil sind) die Ihnen DB-Instanzen in Ihrem Rechenzentrum zuweisen. Oder Sie müssen warten, bis SSL-Zertifikate für bestimmte Funktionen ausgestellt wurden. Sie können in Iteration 4 ausgeführt werden, und alle Funktionselemente, die auf diesen Zertifikaten basieren, sollten mit einer Vorgänger / Nachfolger-Beziehung mit ihnen verknüpft werden.
Denken Sie in jedem Fall daran:
quelle