03.01.2020

Umsetzungsplanung und Reporting mit Microsoft Azure DevOps

Nachdem wir Ihnen in unseren ersten zwei Blogartikeln zu Microsoft Azure DevOps zunächst die Grundlagen und verschiedenen Module beschrieben sowie auf das Anforderungsmanagement eingegangen sind, möchten wir in diesem Beitrag auf die Möglichkeiten der konkreten Umsetzungsplanung sowie des Reportings eingehen.

Im letzten Teil unserer Azure DevOps Serie haben wir das Beispielprojekt "Seamless Mobility" aufgesetzt und die Anforderungen in Form von Epics und Features beschrieben. In diesem Artikel steht nun die Verfeinerung der Anforderungen in Form von Stories und Tasks im Vordergrund. Das Ziel ist es, einen Sprint zu planen und durch Azure DevOps unterstützt durchzuführen. Dabei werden wir insbesondere auch auf die Kommunikation und Kollaboration innerhalb des Teams eingehen.
 
Nachdem das Backlog bereits Epics und Features umfasst, können die Details in Form von User Stories beschrieben werden. User Stories haben sich als Standard zur Beschreibung von Anforderungen aus der Perspektive eines Benutzers durchgesetzt. Sie folgen dabei dem Muster "Als <Rolle> möchte ich <Ziel>, so dass <Nutzen>.  
 
In der Backlog-Ansicht lassen sich anhand der Reihenfolge der Epics und Features sowie anhand des Status die aktuell priorisierten Items identifizieren. Für die am höchsten priorisierten Features werden nun User Stories abgeleitet.

Schauen wir uns hier beispielsweise das Feature "Basic app development" an, welches zwei User Stories enthält. Eine weitere Story im Zusammenhang mit dem Feature wäre beispielsweise der User Login:

Es hat sich bewährt Qualitätskriterien für die Formulierung von Stories im Team festzulegen, die Definition of Ready (DoR). Eine Story ist zum Beispiel Ready for Sprint, wenn 

  • sie eine Beschreibung hat Akzeptanzkriterien beschrieben wurden
  • die Priorität festgelegt wurde
  • eine Schätzung in Story Points vorliegt
  • alle Tasks definiert wurden. 

Ergänzend bieten sich die INVEST-Kriterien (Independent, Negotiable, Valuable, Estimatable, Small, Testable) zur Definition der DoR an.
 
Tasks dienen der Zerlegung von User Stories in umsetzbare Schritte, um sie später einzelnen Personen des Teams für die Umsetzung zuweisen zu können. Für Stories, die über die gesamte Dauer der Iteration bearbeitet werden, bieten Tasks ein hilfreiches Mittel, um kontinuierlich Fortschritte beschreiben zu können. Nichts ist tückischer als eine "fast" fertige User Story, die über einen gesamten Sprint nur den Status "In Progress" besitzt ohne weitere messbare Zwischenschritte. Eine Zerlegung in Tasks haben wir nachfolgend beispielhaft dargestellt - Azure DevOps kann hier die Hierarchie übersichtlich abbilden:

Nachdem die User Story und Tasks beschrieben und geschätzt wurden, gilt es den nächsten Sprintumfang festzulegen. Azure DevOps bietet dazu Drag n‘ Drop Funktionen an und fasst jeweils die Summe der Story Points (Planned Effort), die Anzahl der User Stories (hier 2) sowie der Tasks (hier 3) pro Sprint zusammen. Die Kapazität eines Teams ergibt sich aus der Summe der umgesetzten Story Points aus den vergangenen Iterationen. Diese sogenannte Velocity, also der Durchsatz an Story Points pro Sprint, erfasst Azure DevOps im Hintergrund mit und passt diesen Wert nach jedem weiteren Sprint neu an.

Daraus ergibt sich eine Empfehlung an umsetzbaren Story Points für den nächsten Sprint - dies kann man sich in Azure DevOps anzeigen lassen. Auf Basis des Forecasts lässt sich die Planung anpassen und eine Story in die nächste Iteration verschieben oder bei noch verfügbarer Kapazität eine Story in den aktuell geplanten Sprint hinzunehmen.

Nachdem der Umfang der Iteration festgelegt wurde, kann der Sprint gestartet werden. In der Sprintansicht lassen sich nun die eingeplanten User Stories betrachten und falls vorhanden die Tasks einzeln bearbeiten. Während des Sprints bildet das Sprintboard die zentrale Übersicht über Fortschritte und aktuelle Tätigkeiten des Teams. Das Sprintboard bildet eine hilfreiche Unterstützung für die täglichen Stand-Up Meetings, in denen jedes Teammitglied kurz über den Fortschritt seit dem letzten Stand-Up, den Plänen bis zum nächsten Stand-Up sowie möglichen Hemmnissen berichtet und mit dem Team abstimmt.

Der aktuelle Sprintfortschritt lässt sich einfach anhand der integrierten Burndown-Berichte visualisieren. Hierbei können verschiedene Granularitäten herangezogen werden – bspw. lässt sich die verbleibende Arbeit auf Ebene von Stories oder Tasks anzeigen:

Neben dem Burndown Chart, welches direkt innerhalb der Sprint-Übersicht aufrufbar ist, bietet Azure DevOps auch eine sehr flexible Möglichkeit, weitere Dashboards und Reports zu integrieren. Über ein Grid lassen sich verschiedene Widgets per Drag n‘ Drop hinzufügen und konfigurieren, um so verschiedenen Reporting-Anforderungen gerecht zu werden.

Kollaboration

Im Kern der agilen Zusammenarbeit steht die Kollaboration des Teams. Durch die Kommentarfunktionen je Work Item lassen sich wichtige Diskussionen direkt im Work Item in Azure DevOps hinterlegen. Das bietet den Vorteil, dass auch abwesende Teammitglieder jederzeit über abgesprochene Punkte auf dem Laufenden bleiben sowie eine Dokumentation / Erläuterung von Änderungen an Aufgaben oder User Stories erfolgt.

Viele Teams nutzen inzwischen Microsoft Teams als Plattform zur Unterstützung von virtuellen Meetings, Telefonkonferenzen, als Dateiablage und Chattool. MS Teams stellt damit eine ideale Ergänzung von Azure DeOps als zentrale Kommunikations- und Kollaborationslösung dar. Durch die Integration von Azure DevOps lassen sich direkt in MS Teams Work Items in Azure DevOps anlegen oder im Verlauf der Diskussionen referenzieren. 

Auch das Seamless Mobility Projekt nutzt MS Teams für den alltäglichen Austausch. Durch die Integration von MS Teams und Azure Boards lassen sich Taskinformationen einfach in die Konversation integrieren. 

Fazit

Nach der Grobplanung des Scopes und der Erstellung einer Epic- beziehungsweise Feature-Roadmap erfolgt die Detailplanung der User Stories und ihrer Umsetzung in Iterationen. Azure DevOps bietet eine umfassende Basis zur Planung und Durchführung der Sprints unterstützt durch Standardberichte wie den Burndown-Bericht. Die Integration von Azure DevOps und MS Teams erlaubt es Teams ihre gewohnten und etablierten Kommunikationskanäle zu verwenden und nahtlos mit Azure DevOps zu kombinieren.

In unserem nächsten Beitrag werden wir uns die Themenblöcke Deployments und Testing genauer ansehen, bevor wir danach auf praktische Features für die Durchführung von Sprint Reviews und Retrospektiven eingehen.