Agile Methode Qualitätssicherung

Qualitssicherung

Agile Methode: Methoden zur Qualitätssicherung

 Eine der Prinzipien einer agilen Leistungserstellung besagt, dass eine Leistung nur dann von Wert ist, wenn sie fehlerfrei ist. Jedes Inkrement, das erstellt wird, sollte sofort getestet und somit fehlerfrei übergeben werden. Es gibt ein Reihe an Techniken, um eine optimale Produktqualität zu erreichen, die von einer agilen Umgebung verwendet werden.

Kontinuierliche Integration

Alle Ergebnisse, des Leistungserstellungsprozesses werden kontinuierlich in die Gesamtleistung integriert. 

Die integrierten Ergebnisse werden durch automatisierte Tests überprüft. Sollten Fehler auftreten, dann werden diese zuerst beseitigt, bevor die Arbeit fortgesetzt wird.

Gemeinsame Eigentümerschaft

Alle Ergebnisse gehören allen Teammitgliedern, bzw. allen Teams. Damit sind auch alle für das Ergebnis verantwortlich und dürfen Fehler an jedem Teilergebnis beseitigen.

Teamverantwortung für die Integration

Jedes Team und jedes Teammitglied ist selber dafür verantwortlich, dass seine Ergebnisse in das Gesamtergebnis integrierbar sind. 

Ermächtigung zur direkten Kommunikation

Jedes Teammitglied kann auf jedes andere jederzeit zugehen und Fragen klären oder Behinderungen beseitigen. Das gilt auch teamübergreifend, wenn mehrere Teams an einer Leistung arbeiten.

Test zuerst

Bevor mit der Erstellung der eigentlichen Leistung begonnen wird, werden die Tests entwickelt, die zur Überprüfung der Ergebnisse dienen. Das zwingt die Entwickler, den Prozess der Entwicklung vom Ergebnis aus durchzudenken. D.h. von Hinten nach vorne. Bei der Leistungserstellung unterstützt das Vorhandensein des Testes die Produktion von Qualität.

Restrukturierung und Überarbeitung (Refactoring)

Leistungen werden schnell und regelmäßig geliefert, überprüft und angepasst. Dabei wird die Arbeitsweise regelmäßig durchdacht und angepasst. Durch die regelmäßige Überprüfung wird das Gesamtsystem robust gegen Änderungen.

Gemeinsames Arbeiten (Pair Work, Pair Working)

Das Arbeitsergebnis wird von zwei Personen gemeinsam erstellt. Beim Pair Programming arbeiten beispielweise zwei Entwickler an einem Computer. Während der eine programmiert, kontrolliert der Anderen den Code. Dadurch wird in vielen Fällen die Arbeitsgeschwindigkeit erheblich erhöht und die Zahl der Fehler reduziert.

{article 245}[text] {/article}

 

Agile Methode Timebox, Sprint

Timebox

Agile Methode: Timebox (Sprint)

Eine Timebox ist eine festgelegte Dauer, in der etwas getan wird. Abgeleitet aus Scrum wird hierfür häufig der Begriff „Sprint“ verwendet. 

Eine Timebox darf in ihrer Länge nicht verändert werden. Verändert werden darf aber die Zahl der Tasks, Story Point, Inkremente, etc. die innerhalb der Timebox abgearbeitet werden sollen, soweit das Team nicht in der Lage ist, die Arbeit zu schaffen. Das ist dann ein Indikator dafür, dass das Team sich verschätzt hat und nicht in der Lage ist, die gesteckten Ziele zu erreichen.

Innerhalb eines Sprint muss mindestens ein Inkrement – also ein Stück Leistung, das selbständig einen Wert darstellt, geschaffen werden. 

Meistens wird die Zahl der Timeboxes zu Beginn der Leistungsentwicklung festgelegt. Es ist sinnvoll, dass Timeboxes immer die gleiche Länge haben. Innerhalb einer Timebox sollten:

  • keine das Ziel beeinflussenden Veränderungen vorgenommen werden.
  • die Mitarbeiter im Team nicht verändert werden.

Welche Vorteile hat das Arbeiten mit Timeboxing?

WIP-Limit festlegen

Für eine Timebox wird die Work in Process (WIP) festgelegt. Dabei ist die WIP die Menge an Arbeit, die innerhalb einer Timebox angefangen wurde, aber noch nicht fertig gestellt. Das Entwicklerteam wählt nur die Arbeiten für eine Timebox aus, die er glaubt innerhalb dieser Timebox fertigstellen zu können.

Priorisierung erzwingen

Da nur ein Teil der Arbeit in einer Timebox erarbeitet werden kann, wird für die Timebox nur die Arbeit ausgewählt, die einen Wert schafft. 

Fortschritt erkennbar machen.

Innerhalb einer Timebox muss mindestens ein wichtiger Teil der zu erstellenden Leistung fertig sein. Dadurch, dass innerhalb einer recht kurzen Timebox ein Teil der Arbeit an der Gesamtleistung fertig sein muss, wird ein Arbeistfortschritt erkennbar. Auch wenn große Funktionalitäten nicht innerhalb einer Timebox fertig gestellt werden können, werden diese Funktionalitäten so aufgeteilt, dass Teilfunktionalitäten fertig sind. So wird der Gesamtfortschritt der Funktionalitäten sichtbar.

Unnötigen Perfektionismus verhindern

Es gibt immer wieder Ergebnisse, die wir versuchen möglichst perfekt zu machen und die wir darum nicht fertig bekommen. Das Timebxing zwingt dazu „zu einem Ende zu kommen“, da ein fester Zeitpunkt bestimmt ist, zu dem wir das Ergebnis, dass „gut genug“ ist, als Lösung abgeben müssen.

Zur Fertigstellung motivieren

Wenn Menschen den Endzeitpunkt kennen und diese in einer nicht so großen Ferne liegt, dann sind sie motiviert an der Fertigstellung zu arbeiten. Ein bekannter Endtermin macht auch nicht so beliebte Arbeiten dringend.

Verbesserung der Prognose

Durch das WIP-Limit der einzelnen Timeboxen und die Erfahrung mit diesem WIP-Limit über mehrere Timeboxen lässt sich leichter vorhersagen, was innerhalb von z.B. einem Jahr noch fertig werden wird.

Schnelles Feedback

Wenn die Ergebnisse eines Sprints am Ende des Sprints begutachtet und die Arbeitsweise innerhalb des Sprints überprüft wird, erhält das Team schnell ein Feedback und kann sein Verhalten entsprechend ändern, bzw. in einem späteren Sprint nachbessern.

Begrenzte Fehler / Begrenztes Risiko

Wenn die Ergebnisse jedes Sprints überprüft und bewertet werden, kann im schlimmsten Fall die Arbeit eines Sprints verloren sein. Das begrenzt das Risiko für den Auftraggeber auf die Leistungen eines Sprints.

Konstante Begeisterung

Kurze Sprints helfen die Begeisterung der Leistungsersteller aufrecht zu erhalten. Die meisten Gruppen verlieren die Begeisterung für eine Aufgabe, wenn die „Belohnung“, bzw. Anerkennung für die erbrachte Leistung in weiter Ferne liegt. Durch die Anerkennung, die das regelmäßige Review der innerhalb eines Sprints geleisteten Arbeit, bleibt die Begeisterung für die Aufgabe bestehen.

 

Arten von Timeboxes

Umsetzungs Timebox (Umsetzungs Sprint)

In einer Umsetzungs Timebox werden die Tasks zur Leistungserstellung abgearbeitet. Diese Art der Timeboxes sind der „Normalfall“. In Scrum gibt es nur diese Form der Timebox.

Innovations-Timebox und Planungs-Timebox (IP-Sprints)

werden auch als Innovations- und Planungs-Sprints bezeichnet. Insbesondere in dem Scaled Agile Framework (SAFe) wir die Nutzung dieser Timeboxes empfohlen. IP-Sprints sollen dem Umsetzungsteam Gelegenheit geben Aufgaben abzuarbeiten, die sich nur schwer in die „normalen Sprints“ integrieren lassen. 

Außer zur Planung können sie auch für folgende Aufgaben genutzt werden:

  • Etappen Ergebnisse: Um die Länge der Sprints gleich zu halten, können Etappenergebnisse, die aus den Ergebnissen mehrerer parallel arbeitender Team bestehen, die nach einer Etappe zusammen gefügt werden, in einem IP-Sprint bearbeitet werden. Hier könnten dann folgende Aufgaben durchgeführt werden: Etappen-Review, Etappen Retrospektive und Etappen Planung.
  • Fortbildungsmaßnahmen: In einer normalen Timebox kann das Team nur schwer auf einzelne Mitglieder verzichten. Aus- und Weiterbildung ist aber eine Notwendigkeit, wenn sich das Team weiter entwickeln soll. Ein IP-Timebox bietet hier eine gute Möglichkeit, diese Weiterbildungsmaßnahmen zu ermöglichen, ohne den Teamflow in einem normalen Sprint negativ zu beeinflussen.
  • Innovation: Ein IP-Sprint bietet den Raum für Innovationstage, in denen die Teammitglieder andere Projekte einbringen können, die das ganze Projekt weiterbringen.
  • Infrastruktur: Es können neue Basistechnologien implementiert werden oder Restrukturierungsaufgaben durchgeführt werden.

Härtungssprints gegen technische Schulden

Diese Timeboxes dienen dazu Qualitätsmängel, die sich in den vorherigen Sprints eingeschlichen haben, zu beseitigen. Im Idealfall sind solche Härtungssprints bei einer agilen Leistungserstellung nicht notwendig, da die Qualitätssicherung innerhalb des Leistungserstellungsprozess stattfinden soll. Wenn die Definition of Done jedoch nicht ideal ist oder nicht vollständig erfüllt wurde, können solche Härtungstimeboxes notwendig sein, bevor sich zu viele technische Schulden aufhäufen.

Inhalte einer Timebox

Eine Timebox ist zunächst einmal ein Zeitraum, in dem etwas passiert, dessen Anfangs- und Endzeitpunkte festgelegt werden. Sie ist also von einer festen Dauer.

Bei Scrum wird innerhalb einer Timebox:

  • Der Sprint geplant (Sprint Planing),
  • Inkremente erstellt,
  • Inkremente von den Stakeholdern überprüft (Sprint Review),
  • Die Leistung des Teams und die Arbeitsprozesse verbessert (Sprint Retrospektive).

Bei anderen Agilen Methoden findet die Planung für die Timebox zeitlich vor der Timebox statt. Auch Review und Retrospective können außerhalb der Timebox, zeitlich später stattfinden.

 {article 245}[text] {/article}

 

 

Agile Methode Burndown Chart

BurndownChart

Agile Methode: Burndown Chart (Burndownchart, Burndown Graphic)

Burndown Chart ist eine Methode, mit der die Fortschritte der Leistungserstellung innerhalb einer Timebox abgebildet werden kann. 

Hilfsmittel / Voraussetzungen

Ein Flip-Chart oder Pin Board, das über den Verlauf der Timebox nicht benötigt wird und für alle Beteiligten sichtbar ist.

Voraussetzung:

  • Die Tasks (Arbeitspakete) oder Inkremente, die in der Timebox abgearbeitet, oder erstellt werden sollen, sind benannt und der Timebox zugewiesen.
  • Die Arbeitspakete sind so skaliert, dass sie nicht länger als einen Tag dauern.

Wie geht es?

BurndownChart

Vertikale (y-Achse): Die Gesamtzahl der Arbeiten, die innerhalb der Timebox zu erledigen sind.

Horizontale (X-Achse): Die Tage, die die Timebox dauern soll.

 

Das Umsetzungsteam aktualisiert jeden Tag beim Daily Standup Meeting den Burndown Chart. Für den jeweiligen Tag wird die Zahl der noch offenen Arbeitspakete eingetragen. 

Liegt die Zahl der verbleibenden Arbeitspakete unter der Ideallinie, wird mehr Arbeit geleistet als geplant. Liegt die Zahl der Arbeitspakte über der Ideallinie, dann ist das Team langsamer als geplant.

Burndown Charts werden in vielfältigem Zusammenhang genutzt. Es gibt:

  • Sprint Burndown Chart
  • Etappen Burndown Chart
  • Product Backlog Burndown Chart
  • usw.

 {article 245}[text] {/article}

Agile Methode Schätzen Feature Points

FeaturePoints

Agile Methode: Feature Points 

Die Schätzung erfolgt analog zur Schätzung mit Story Points. Im Unterschied zur Stories werden hier die „Features“ geschätzt. D.h. es wird die Komplexität von einzelnen Inkrementen relativ geschätzt. Mit den Feature Points kann das Team bestimmen, wie viele und welche Features in eine Timebox passen. Die Team Velocity kann ebenso aus Feature Points ermittelt werden. 

Hilfsmittel / Voraussetzungen

Die Features (Funktionalitäten) müssen vorher aus dem Product Backlog entwickelt werden.

Wie geht es?

  1. Aus dem Product Backlog, einer Etappe oder eines Sprints, wird ein Feature ausgewählt, das von dem Team für relativ klein gehalten wird. 
  2. Dieses Feature bekommt den Wert 1 zugewiesen.
  3. Alle weiteren Features werden relativ zu diesem Feature geschätzt.

 {article 245}[text] {/article}

 

Agile Methode Schätzen Normalisierte Schätzung

NormalisierteSchatzung

Agile Methode: Normalisierte Schätzung (Normalized Estimation)

Mit der normalisierten Schätzung wird versucht, eine gemeinsame Schätzbasis zwischen verschiedenen Teams zu erarbeiten.

Bei der Schätzung auf Basis von Story Points wählt jedes Schätzteam eine individuelle User Story als Referenzwert für den Schätzwert 1. Da jedes Team seinen eigenen Referenzwert auswählt, sind die Story Points der einzelnen Teams nicht vergleichbar.

Damit ist auch die Team Velocity nicht vergleichbar. Die Story Points verschiedener Teams dürfen nicht addiert werden. Dieses Problem versucht das Scaled Agile Framework (SAFe) zu lösen.

Wie geht es?

  1. Jedes Team wählt eine Referenzstory, die ungefähr einen halben Tag Aufwand zur Umsetzung benötigt. Oder die Teams einigen sich auf eine Story als Referenz. Eine weitere Möglichkeit besteht darin, mehr als eine Story als Referenz zu nutzen.
  2. Alle anderen Storypoints werden anschließend auf Basis dieser Referenzschätzung geschätzt.

 

Hier wird eine Übertragung gemacht. 1 Storypoint = 1 Personentag. Die Schätzung findet faktisch nicht auf Basis von Storypoints, sondern auf Basis von Personentagen statt, die jetzt als Storypoints bezeichnet werden. 

{article 245}[text] {/article}

 

Agile Methode Team Velocity

TeamVelocety

Agile Methode: Team Velocity (Team Performance)

Über die Team Velocity kann die Arbeitsgeschwindigkeit eines Teams und die Weiterentwicklung eines Teams gemessen werden. Außerdem kann eine Prognose gemacht werden, wie viele Story Points von einem Team innerhalb einer Timebox geleistet werden. Außerdem kann der Product Owner damit den Fortschritt der Leistungsentwicklung innerhalb einer Timebox verfolgen.

Hilfsmittel / Voraussetzungen

Der erwartet Aufwand für die Leistungserstellung der einzelnen User Stories oder Inkremente muss in Storypoints geschätzt sein.

Die verwendeten Timeboxes müssen gleich groß sein.

Wie geht es?

  1. Die Zahl der Storypoints, die ein bestimmtes Team innerhalb einer Timebox abgearbeitet hat, wird ermittelt.
  2. Die Erwartung, wenn sich das Team weiterentwickelt: Es arbeitet in der nächsten Timebox mindestens so viele Story Point ab, wie in der vorherigen. Unter dieser Annahme ist die Zahl der Storypoints für die nächste Timebox als Basis für die auszuwählenden User Stories, die in die Timebox passen, recht einfach.
  3. Mit zunehmender Zahl der durchlaufenen Timeboxes kann die durchschnittliche Zahl an Storypoints berechnet werden.

 {article 245}[text] {/article}

Agile Methode Schätzen Magic Estimation

PlaningPoker

Agile Methode: Magic Estimation – die magische Schätzung 

Ziel / Nutzen

Die Magic Estmation ist eine relative Schätzung, d.h. alle zu schätzenden User Stories, Tätigkeiten, etc. werden in eine Rangfolge des Aufwandes gebracht.

Hilfsmittel

Planning Poker Karten oder andere Schätzwerte

Wie geht es?

  1. Die Schätzwerte werden auf dem Tisch ausgelegt.
  2. Das Schätzteam sortiert die User Stories oder was sonst geschätzt werden soll, zu den jeweiligen Schätzwerten.
  3. Sind sich die Teammitglieder nicht einig, dann erläutern sie ihre Entscheidung mit allen anderen.

 

 {article 245}[text] {/article}

Agile Methode Schätzen Planning Poker

PlaningPoker2

Agile Methode: Schätzen mit Planning Poker

Ziel / Nutzen

Mit dem Planning Poker kann alles geschätzt werden. Die Ergebnisse von einem Planning Poker werden realistischer, wenn die Schätzenden gleichzeitig die Leistungserbringer sind, die mit den Schätzergebnissen leben müssen. 

PlanningPokerHilfsmittel

pro Schätzer einen Satz Planning Poker Karten

Wie geht es?

  1. Jeder Schätzende hat einen Satz an Planinng Poker Karten. Auf den Karten stehen die Werte: 0, 0.5, 1, 2, 3, 5, 8, 13, 20, 40, 100. Diese Zahlen können je nach Planning Pokersatz auch abweichen. Typisch ist, dass die Differenz der Zahlen größer wird, wenn die Zahlen größer werden.
  2. Für jedes zu schätzende Element, schätzt jeder Schätzer verdeckt wieviel Aufwand er erwartet. 
  3. Die Vertreter des niedrigsten Werte und des höchsten Wertes erläutern die Gründe für ihre Schätzung.
  4. Danach erfolgt eine neue Schätzung.
  5. Dieser Prozess wird fortgesetzt, bis sich die Schätzungen auf einen Schätzwert angenähert haben. 

Auch hier besteht natürlich die Möglichkeit, die Schätzergebnisse wieder in Personentage umzurechnen, wenn die Personentage für die kleinste Einheit zusätzlich geschätzt werden. Problematisch kann es werden, wenn die Ergebnisse von mehreren Planning Poker Runden mit unterschiedlichen Teilnehmern zusammen genommen werden. 

 {article 245}[text] {/article}