umgang mit fehlern in einer agile-umgebung - · pdf file4 4 2 33 4 inoproareness.de...

8
Umgang mit Fehlern in einer Agile-Umgebung Autor Ron Eringa

Upload: trinhnhi

Post on 06-Mar-2018

214 views

Category:

Documents


2 download

TRANSCRIPT

Umgang mit Fehlern in einer Agile-Umgebung

Autor Ron Eringa

2 +49 211 3003 401 [email protected] www.prowareness.de

EinführungTeams quälen sich häufig mit der Beantwortung der folgenden Frage: „Wie handhaben wir unsere Fehler in einer agilen Umgebung?” Sie beginnen Scrum als ein Framework zu benutzen, um ihre Software zu entwickeln. Bei der Implementierung stoßen sie jedoch auf Probleme beim Umgang mit Fehlern, die sie im Verlauf des Prozesses finden/verursachen.

Scrum ist ein Framework, welches nicht direkt vorgibt, wie mit Fehlern umgegangen werden soll. Die direkte Antwort wäre, Fehler als Product Backlog Items zu behandeln, die in den Product Backlog aufgenommen werden sollten. Wenn der Product Owner ihre Priorität als sehr hoch einstuft, dann werden sie vom Entwicklungsteam beim nächsten Sprint mit berücksichtigt.

Die Umsetzung ist jedoch etwas komplizierter und sollte deshalb etwas ausführlicher erklärt werden.

1. Was ist ein Fehler?Wikipedia (English version): „Software bugs (oder -fehler) sind Abweichungen, Schwachstellen, Fehlfunktionen oder Störungen in einem Computerprogramm oder -system, die ein falsches oder unerwartetes Ergebnis oder ein unbeabsichtigtes Verhalten zeigen. Die meisten Bugs entstehen aus Fehlern und Abweichungen im Quellcode oder in der Architektur der Software oder in von solchen Programmen genutzten Frameworks und Betriebssystemen; einige von ihnen werden von Compilern verursacht, die fehlerhaften Code produzieren.”

Für den Begriff „Fehler” gibt es viele Synonyme und Erklärungen. Begriffe wie „Bugs”, „Vorfälle”, „Störungen” werden alle oftmals sogar im selben Kontext verwendet. Die Bedeutung dieser Begriffe

RON ERINGAAGILE COACHNach meinem Studium an der Fontys-Universität in Eindhoven arbeitete ich zehn Jahre lang als Software-Entwickler und –Designer. Obwohl ich immer das Technische der Arbeit genossen habe, ist meine besondere Leidenschaft Menschen und Unternehmen dabei zu helfen, gemeinsam hohe Qualität zu erbringen. Für mich liegt der Reiz von Agile in der Zusammenarbeit und der Energie, die freigesetzt wird, wenn die Mitarbeiter sich auf ein gemeinsames Ziel konzentrieren.

Ich selbst habe sieben Jahre Erfahrung mit Agile-Practices wie Scrum, Lean, Kanban, TDD und Continuous Integration. In dieser Zeit habe ich als Coach, Trainer, Scrum Master, Product Owner und Agile Project Manager gearbeitet. Darüber hinaus halte ich regelmäßig Vorträge bei Agile-Konferenzen oder Seminaren.

Injecting passion, Agility and quality into your organisation.

Umgang mit Fehlern in einer Agile-Umgebung

3 +49 211 3003 401 [email protected] www.prowareness.de

Agile Methoden zielen darauf ab, Fehler so schnell wie möglich nach ihrem Auftreten zu beseitigen. Techniken wie Test Driven Development (TDD), Behavior Driven Development (BDD), Continuous Integration und Pair Programming sind alle auf das Auffinden von Fehlern in einem frühen Stadium des Entwicklungszyklus ausgerichtet. Wenn man die Abschnitte nachverfolgt, in denen ein Fehler gefunden und gelöst wurde, kann man Übersichten erstellen (siehe Grafik unten), die die Auswirkungen der Anwendung agiler Techniken aufzeigen.

Kombiniert mit der Grafik der relativen Kosten wird sofort klar, dass ein agiles Vorgehen im Projekt viele Vorteile bringt. Diese Grafiken zeigen, dass ein agiles Vorgehen dabei hilft, Kosten für spät gefundene Fehler zu reduzieren und die Qualität von dem Zeitpunkt an zu steigern, in dem ein neues Stück Software geschrieben wird.

und ihre Behandlung hinsichtlich ihrer Priorisierung und ihrer Stelle im Product Backlog ist nicht immer klar. Kurz zusammengefasst kann ein Fehler als „unerwünschtes Verhalten einer Software” beschrieben werden.

2. Warum und wie können agile Methoden zur Verbesserung meines Umgangs mit Fehlern beitragen?Es ist unvermeidbar, dass jede Softwareanwendung irgendwann Fehler aufweist. Unrealistische Teams ignorieren diese Situation und werden dann eines Besseren belehrt. Realistische Teams akzeptieren diese Tatsache und konzentrieren sich auf die Frage, wann der Fehler entstand, wie lange es dauerte, bis sie ihn entdeckten und, noch wichtiger, wann sie ihn gelöst haben.

Viele Studien belegen, dass die Behebung eines Mangels im Produktionsstatus viel teurer ist (bezogen auf Kosten und Mühen) als wenn sie in einem frühen Stadium des Projekts gefunden werden (NIST study). Die gleichen Studien stellen fest, dass „Softwarebugs oder Fehler die amerikanische Wirtschaft schätzungsweise 59 Millionen US-Dollar pro Jahr oder ungefähr 0,6 Prozent des Bruttoinlandsprodukts kosten”.Eine andere Studie des IBM Systems Sciences Institure legt dar, dass die Kosten für das Auffinden und die Behebung von Fehlern im Wartungsstatus 100mal höher ist als im Entwicklungsstatus.

Source: IBM Systems Sciences Institute

4 +49 211 3003 401 [email protected] www.prowareness.de

4. Fehler, User Story oder Task?Im Allgemeinen sehen wir vier verschiedene Wege, die zu neuen Aufgaben für das Team führen:

1. Neues Feature Dies ist der üblichste Weg, dem Product Backlog neue Aufgaben hinzuzufügen. Einer der Stakeholder hat den Wunsch nach einer neuen Funktionalität und der Product Owner hat dem Product Backlog ein neues Product Backlog Item hinzugefügt. Oftmals beginnt dies mit einem Epic, das, sofern erforderlich, in kleinere User Stories aufgeteilt wird. Scrum Teams nutzen dafür die Backlog Refinement Meetings.

2. Veränderungen der Funktionalität Die User Story wurde in einem zurückliegenden Sprint von den Stakeholdern und/oder vom Product Owner akzeptiert, aber aus dem einen oder anderen Grund haben sie ihre Meinung geändert. Da es der Stakeholder ist, der seine Meinung ändert (das könnte während des Sprint Reviews erfolgen, wenn der Stakeholder neue Einsichten gewinnt), kann eine solche Veränderung in einer User Story formuliert werden, die dann wiederum im Product Backlog landet.

3. Problem bei der Entwicklung Ein Entwickler arbeitet an einer User Story, aber während der Implementierung der Story verursacht er ein Problem. Im Idealfall wird er das Problem sofort beheben, bevor er die User Story an den Rest des Teams liefert. Mitglieder eines Teams, das Continuous Integration nutzt, liefern ihre Änderungen typischerweise mehrmals am Tag aus. Daher kann es vorkommen, dass nicht der Entwickler, sondern ein anderes Teammitglied den Fehler nach der Lieferung bemerkt. In diesem Fall ist es sinnvoll, das Problem klar zu veranschaulichen, um sicherzustellen, dass es gelöst wird (es wird normalerweise als Task auf dem Scrum Board eingetragen und fällt unter die „Done”-Kriterien für diese Story). Anders ausgedrückt kann die User Story in diesem Sprint nur dann als „Done” gekennzeichnet werden (und daher am Ende des Sprints an den Kunden ausgeliefert werden), sobald alle gefundenen Probleme gelöst wurden. Ein Team sollte niemals gezwungen werden, User Stories mit noch offenen Entwicklungsproblemen zu beenden.

3. Was ist ein Product Backlog Item?Scrum Guide: Im Product Backlog werden alle Features, Funktionen, Anforderungen, Erweiterungen und Fehlerkorrekturen erfasst, um die erforderlichen Veränderungen in zukünftigen Versionen festzustellen. Product Backlog Items bestehen aus den Attributen Beschreibung, Auftrag, Auftragsschätzung und Wert.

Themes, Epics, User Stories und Fehler In einem Product Backlog Item werden alle erforderlichen Arbeiten für die Erstellung eines inkrementellen Updates Ihres Produkts definiert. Der Arbeitsaufwand für ein Product Backlog Item kann einige Stunden, aber auch Monate betragen. Ein Product Backlog enthält typischerweise an der Spitze kleine Items mit hoher Priorität und große Aufgaben mit niedriger Priorität ganz unten.

Scrum schreibt nicht vor, wie ein Product Backlog Item aussehen sollte, da wir keine Arbeitsweise vorgeben wollen. Aber es gibt einige gute Beispiele im eXtreme Programming (XP), die die Definition eines Product Backlog Items verdeutlichen. Während Scrum nur über Product Backlog Items spricht, hat die Agile Community (www.mountaingoatsoftware.com/blog/stories-epics-and-themes) eher praktische Anwendungen für ein Product Backlog Item:

• User Story: User Stories beschreiben eine neue Funktionalität aus der Sicht der Person, die die neue Funktionalität haben möchte. Eine neue User Story sollte vom Umfang her klein genug sein, damit sie in einen Sprint passt.

• Epic: Ein Epic ist eine große User Story. Diese Bezeichnung macht deutlich, dass die User Story zu groß/komplex ist, um im nächsten Sprint umgesetzt zu werden. Sie muss in kleinere User Stories aufgeteilt werden.

• Theme: Ein Theme ist eine Gruppe von User Stories. Manchmal ist es hilfreich, über Gruppen von User Stories zu sprechen, zum Beispiel, wenn wir mit Kunden über den Inhalt eines Version reden.

Ein Team kann nicht nur Themes, Epics und User Stories (typische Begriffe aus dem XP), sondern auch Fehler in ihren Product Backlog aufnehmen. Das heißt, dass Fehler nur eine andere Anwendung eines Product Backlog Items sein können und bezogen auf Planung, Aufwandsabschätzung und Priorität genauso behandelt werden wie ein Product Backlog Item.

5 +49 211 3003 401 [email protected] www.prowareness.de

5. Was ist der Unterschied zwischen einem Fehler und einer User Story?Der größte Unterschied zwischen einem Fehler und einer User Story ist, dass es sich bei Fehlern nicht um neue Funktionalitäten handelt. In User Stories geht es üblicherweise um neue, vom Kunden gewünschte Bestandteile (oder gleiche Bestandteile auf eine andere Art). Ein Fehler ist das Ergebnis eines Versehens, das in der Vergangenheit verursacht, aber aus irgendeinem Grund nicht entdeckt wurde.

Fehler sind Ausdruck von technischem Versagen und können direkt vom Kunden festgestellt werden. Das heißt, sie haben großen Einfluss auf die Priorität (oftmals bedeutet dies, dass sie umgehend behoben werden müssen). Teams fällt die Aufwandseinschätzung für User Stories im Allgemeinen leichter als die für die Fehlerbehebung. Das hat verschiedene Gründe:

• Bevor ein Fehler behoben werden kann, müssen wir zunächst die Fehlerquelle finden. Die Fehlerquelle eines Problems zu finden, kann eine sehr zeitraubende Angelegenheit sein. Daher ist es für Teams häufig schwieriger, den Aufwand eines Fehlers verglichen mit dem einer User Story abzuschätzen.

• Fehler können von einem anderen Team/einer anderen Person verursacht werden als der, die das Problem analysiert (die typische Legacy-Problematik). Das bedeutet, dass ein Fehler häufig von einer Person/einem Team an eine andere Person oder ein anderes Team

4. Fehler Viele Scrum Teams nutzen den Begriff „Fehler” für ein Entwicklungsproblem, das nach der Auslieferung eines Arbeitspakets (Product Increment) am Ende des Sprints gefunden wird. Das Team hat am Ende des Sprints augenscheinlich ein Arbeitspaket ausgeliefert, ohne die Abweichung aus welchem Grund auch immer zu bemerken. Diese Arten von Fehlern sind Ausdruck von technischem Versagen und weisen darauf hin, dass das Entwicklungsteam seine Fähigkeiten zur Auslieferung von Arbeitspaketen in höherer Qualität verbessern muss. Dies ist typischerweise ein Hinweis darauf, dass die vom Team verwendete „Definition of Done” verbessert werden muss. Da nicht immer klar ist, welche User Story die Abweichung genau verursacht hat, ist es sinnvoll, dem Product Backlog ein neues Product Backlog Item hinzuzufügen. Das könnte eine neue User Story sein, aber viele Agile ALM Tools verfügen über die Option, Fehler im Product Backlog zu verwalten. Nachdem der Fehler dem Product Backlog hinzugefügt wurde, muss er mit dem Product Owner und dem Entwicklungsteam diskutiert werden. Entwicklungsteam und Product Owner sollten gemeinsam die Priorität des Fehlers festlegen:

• „Fehler mit niedriger Priorität” können auf einfache Art und Weise gehandhabt werden. Sie können während der Backlog Refinement Meetings diskutiert und wie jede andere User Story im Backlog behandelt werden.

• „Fehler mit hoher Priorität” sollten so schnell wie möglich behoben werden. Das sind typischerweise die Fehler, die das Entwicklungsteam oder (im schlimmsten Fall) die Stakeholder bei ihren laufenden Aktivitäten behindern. Im Idealfall ist es ein Leichtes, das Problem zu beheben, ohne dass dies den Inhalt des Sprints beeinflusst. In vielen Fällen muss viel Zeit in die Problemlösung investiert werden. Sobald sich herausstellt, dass der Fehler Einfluss auf den Inhalt des Sprints hat, sollte das Entwicklungsteam den Inhalt des Sprints erneut mit dem Product Owner besprechen.

6 +49 211 3003 401 [email protected] www.prowareness.de

6. Was passiert, wenn Fehler mit hoher Priorität unserer Sprintziel stören?„Unser Team muss während eines Sprints viele Fehler mit hoher Priorität bearbeiten, das erschwert unsere Vorhersagbarkeit. Was können wir dagegen tun?” Ich habe diese Frage schon mehrfach gehört, daher möchte ich etwas näher darauf eingehen. In solch einer Situation sollte sich das Team einige Fragen stellen.

Fehler priorisieren „Aus welchem Grund tritt bei uns die Menge an Fehlern auf?” In der Vergangenheit ist scheinbar etwas vorgefallen, was heute diese Fehlermenge verursacht. Viele Teams entwickeln stets neue Funktionalitäten, ohne dieses Problem zu lösen.

Wenn während Ihres Sprints zu viele Fehler hochkommen, müssen Sie vermutlich Korrekturen zur Verbesserung der Qualität Ihrer Software vornehmen.

„Haben alle diese störenden Fehler wirklich eine so hohe Priorität oder können sie bis zum nächsten Sprint warten?” Wenn Sie Ihre Fehler in den Product Backlog einfügen, sie im Product Backlog diskutieren und auf dieselbe Weise wie User Stories priorisieren, dann erhält das Problem die Aufmerksamkeit, die es benötigt. Häufig fordern die Teams den Product Owner nicht auf, den Product Backlog als Mechanismus zur Planung der Fehler zu verwenden. Anstatt sie in den Backlog einzufügen, behandeln sie sie während des Sprints und gefährden damit ihre Sprintziele.

„Aber was ist, wenn wir immer noch Fehler mit hoher Priorität haben, die sofort behoben werden müssen?” Das Team muss während eines Sprints immer für ein bestimmtes Gleichgewicht sorgen. Es treten immer wieder unerwartete Überraschungen auf, die das Sprintziel gefährden. Wenn Ihr Team weiß, dass es eine bestimmte Anzahl dieser Fehler mit hoher Priorität bearbeiten kann, ohne das Ziel des Sprints zu gefährden, dann besteht kein wirkliches Problem, solange Sie sicherstellen, dass das Team die Kontrolle über diese Störungen behält. Eine gute Möglichkeit der Sicherstellung ist die Darstellung aller Störungen in Spaltenform auf dem Scrum Board. Wenn Sie die Kanban-Prinzipien für die Begrenzung der Menge an Störungen einsetzen, dann können Sie sicherstellen, dass die Geschwindigkeit des Teams davon nicht beeinflusst wird. Und wenn die Menge an Fehlern mit einer hohen Priorität in einem Sprint steigt, könnte das ein erstes Anzeichen für ein potentielles Problem sein. Das bedeutet, dass Sie Ihre Fehler erneut über Ihren Product Backlog planen sollten. Das Team sollte außerdem eine Grenze für die Menge der akzeptablen Fehler mit hoher Priorität in einem Sprint definieren.

weiter gereicht wird, bis es von der richtigen Person/dem richtigen Team gelöst werden kann. Dieses Verhalten wird häufig dann beobachtet, wenn Scrum Teams nicht von Anfang bis Ende verantwortlich sind, auch wenn wir es von ihnen erwarten (zum Beispiel ist ein Scrum Team verantwortlich für den Prototypen, ein anderes für die Erstellung des Produktes und wieder ein anderes für die Fehlerbehebung). Das ist auch der Grund, aus dem wir den Teams immer die Verantwortung über den gesamten Lebenszyklus der Softwareanwendung übertragen sollten.

• Wenn der Zeitraum zwischen der Verursachung und der Lösung eines Problems sehr lang ist, ist das Risiko hoch, dass das Wissen über die Ursache fehlt. Das könnte verschiedene Ursachen haben, wie unvollständige Testfälle, Stories, die sich über mehrere Sprints hinziehen, nicht beendete User Stories (unvollständige „Definition of Done”) oder über mehrere Teams hin- und her gereichte Tätigkeiten.

Es liegt in der Natur eines Fehlers, dass wir andere Informationen benötigen als wir normalerweise für eine User Story erwarten. Aus diesem Grund haben Agile Backlog Management Tools oftmals verschiedene Templates für User Stories und Fehler. Informationen, die wir typischerweise für Fehler benötigen:

• Wer hat den Fehler gemeldet?• Wer hat den Fehler gefunden?• Wie sieht das beobachtete unerwünschte Verhalten aus?• Welches Szenario war für das Auftreten des Fehlers

verantwortlich?• Gibt es Logdateien, die Hintergrundinformationen liefern

können?• Ist das Szenario reproduzierbar?• Welche Auswirkungen hat der Fehler und wie

schwerwiegend ist er?• In welcher Softwareversion/in welchem Sprint wurde der

Fehler entdeckt?

Kurz zusammengefasst: Das Fehlermanagement wird oftmals als schwieriger als das Management von User Stories wahr-genommen, da Fehler dazu neigen, eine höhere Priorität zu haben und eine Aufwandsabschätzung schwieriger ist.

7 +49 211 3003 401 [email protected] www.prowareness.de

Nach diesen Veränderungen haben sie ein weiteres Jahr lang die Fehlermenge überwacht und so sah dieselbe Grafik dann aus:

Was Sie deutlich sehen können, ist:

• Sie haben nur einmal die Grenze überschritten und waren innerhalb eines Sprints (2 Wochen) in der Lage, die Probleme zu bearbeiten.

• Aufgrund von ständiger Überprüfung und Anpassung, hatten Sie nie wieder diese hohe Menge an Fehlern.

Schlussfolgerungen

• Achten Sie darauf, dass Ihr Team keine technisch Schuld ansammelt, veranschaulichen Sie diese und handeln Sie entsprechend. Haben Sie bereits technische Schuld angesammelt, dann erstellen Sie einen Plan, um dieses Problem zu beheben, denn Ihr Team wird dadurch langsamer.

• Geben Sie Ihre Fehler in den Product Backlog ein und behandeln Sie diese genauso wie Ihre User Stories.

• Achten Sie bei hochpriorisierten Fehlern darauf, dass sie Ihr Sprintziel nicht gefährden. Sollte das bereits der Fall sein, dann reagieren Sie darauf und diskutieren Sie dies mit ihrem Product Owner.

• Achten Sie darauf, dass das Managementtool für Ihren Product Backlog zwischen Fehlern und User Stories unterscheiden kann, um solche Grafiken erstellen zu können.

Fehler veranschaulichen Wenn Teams eine zu hohe technische Schuld entwickeln, könnten sie an einen Punkt gelangen, an dem sie mehr Zeit in einem Sprint darauf verwenden, aufgrund dieses technischen Verschuldens eintretende Fehler zu beheben, anstatt neue Funktionalitäten zu entwickeln. Das ist typischerweise der Zeitpunkt, an dem drastische Maßnahmen ergriffen werden müssen, um wieder zurück in die Spur zu kommen. Solch einem Team könnte es auch helfen, die sich entwickelnde technische Schwäche zu visualisieren, um die Größe des zu lösenden Problems zu erkennen.

Beispiel Im nachfolgenden Beispiel finden Sie eine Grafik mit einer Darstellung der Fehlermenge, die wir in einem Team über einen Zeitraum von einem Jahr hatten.

Was Sie deutlich erkennen können ist:

• Dass das Team mit 50 Fehlern begonnen hat, die kontinuierlich gestiegen sind (Entwicklung von technischer Schuld). Nach fast einem halben Jahr wurden die technische Schuld zu groß und dem Team wurde klar, dass es die Situation klären musste

• Wir brauchten fast 2 Monate, um die Situation unter Kontrolle zu bekommen.

• Wir benötigten den Rest des Jahres, um die Schwächen wieder auf ein Minimum zu reduzieren.

Sobald das Team seine Qualität und die technisch Schuld wieder unter Kontrolle hatte, haben die Teammitglieder sich hinterfragt und ihre Arbeitsweise angepasst. Das Team unternahm Folgendes:

• Eine Hürde von 40 Fehlern wurde eingeführt, die nicht überschritten werden durfte. Sobald sie mehr als 40 Fe-hler registrierten, sprachen sie mit ihrem Product Owner und planten im nächsten Sprint mit mehr Fehlern und weniger User Stories.

• Sie hatten mehr und bessere automatisierte Tests ge-schrieben und somit ihre „Definition of Done” verbessert.

• Sie hatten eine weitere Person mit Testfachwissen und Ressourcen in ihr Team aufgenommen, sodass sich das Team selbst vermehrt auf Qualität konzentrieren konnte.

8 +49 211 3003 401 [email protected] www.prowareness.de

8. Wir haben bereits ein Trackingsystem für Fehler und möchten ein Product Backlog aufsetzen. Was jetzt?Viele Unternehmen nutzen bereits ein Fehlertrackingsystem, wenn Sie anfangen, mit Scrum zu arbeiten. Häufig wird für den Product Backlog ein anderes Tool verwendet, da das Fehlertrackingsystem nur für Fehler ausgelegt ist. Trotzdem, wenn man sich die Art der Tätigkeiten bei Fehlern und für User Stories ansieht, so sollten beide zum Product Backlog hinzugefügt werden und beide sollten Thema in den Backlog Refinement Meetings sein.

Die Nutzung verschiedener Systeme ist aus naheliegenden Gründen sinnvoll, aber der größte Fehler den viele Teams machen ist, dass sie ein anderes Vorgehen bei der Fehlerpriorisierung und -planung haben.

Sie nutzen also Scrum für „Neue Features” und „Änderungen in der Funktionalität”, haben daneben allerdings noch viele andere Meetings, um die Fehler abzuschätzen, zu planen und zu priorisieren.

Der Trick hierbei ist, eine einzige Herangehensweise für Fehler und für User Stories zu verwenden (die Herangehensweise bei Scrum ist die Durchführung von Backlog Refinements), sodass das Team sich konzentrieren kann und sich nicht mit zwei verschiedenen Prozessen befassen muss, trotzdem verschiedene Tools verwenden kann, wenn dies erforderlich ist. Die Nutzung von zwei Tools für das Management eines Backlogs mit User Stories und Fehlern hat den Nachteil, dass diese schwieriger zu warten sind und diese Vorgehensweise fehleranfälliger ist.

Eine andere Lösung könnte sein, das alte Fehlertrackingsystem für das Management des kompletten Backlogs zu nutzen. Das könnte eine Option sein, wenn das alte Fehlertrackingsystem das Team bei seinen täglichen Scrum-Aktivitäten unterstützt.

War der Artikel für Sie interessant und möchten Sie gern mehr über das Thema erfahren? Senden Sie eine E-Mail an: [email protected].

7. Welche Auswirkungen haben Fehler auf die Geschwindigkeit des Teams?Ihre Geschwindigkeit sollte von der Fehlermenge, die Ihr Team produziert, nicht betroffen werden, sofern die Fehler in den Product Backlog eingegeben werden. Teams, die neben dem Product Backlog noch gesonderte Fehlerlisten führen, denken oftmals, dass ihre Geschwindigkeit darunter leidet. Was hier tatsächlich passiert, ist dass die Geschwindigkeit des Teams gleich bleibt, aber die Fähigkeit zur Entwicklung neuer Features von der zu lösenden Menge an Fehlern berührt wird. Eine stabile Geschwindigkeit ist in einer solchen Situation ein hilfreiches Maß, da man für jeden Sprint das Gleichgewicht zwischen Ihren Fehlern und anderen Product Backlog Items vorhersagen kann.

Eine andere Metrik, das Ihrem Entwicklungsteam und Product Owner in einer solchen Situation helfen könnte, ist die Visualisierung der aufgewendeten Zeit für „neue Features”, „Funktionsänderungen”, „Entwicklungsprobleme” und „Fehler.

Die Grafik zeigt die Geschwindigkeit eines neuen Teams über einige Sprints:

• Die Geschwindigkeit stabilisierte sich nach fünf oder sechs Sprints.

• Die Fähigkeit des Teams, in jedem Sprint an neuen Funktionalitäten zu arbeiten, ist sehr stabil.

• Trotzdem arbeitet das Team in jedem Sprint mehr und mehr an Fehlern.

Obwohl die Geschwindigkeit sich stabilisierte, könnte dies ein Anzeichen für den Aufbau von technischSchuld sein, da sich das Gleichgewicht zwischen Fehlern und den anderen Tätigkeiten verschiebt.