Agile Methoden

Wenn es um Agilität geht, so spricht man oft von Schnelligkeit, Flexibilität und Anpassungsfähigkeit. Das ist das Gegenteil, was man von Schwergewichtigen und starren Vorgehensweisen kennt. In der projektbezogenen Arbeit will man mit Agilität der schnelllebigen, im stetigen Wandel befindlichen Welt und somit unvorhergesehenen Ereignissen schnell und effektiv entgegentreten.


Agile Methoden

Sprechen wir von projektbezogener Arbeit, wurde bis in die frühen 2000er Jahr sehr oft das Wasserfallmodell angewendet. Dabei werden aufeinanderfolgende Projektphasen sequenziell und (zumeist) ohne Rückschritte abgearbeitet. Es geht davon aus, dass Anforderungen von Anfang an vollständig und korrekt erfasst sind. Gerade in schnelllebigen Bereichen wie beispielsweise der Softwareentwicklung ist das jedoch eine Illusion. Schon morgen können ganz andere Bedingungen herrschen - neue soziale oder technische Trends auftreten, sich ökologische Faktoren verändern, neue Regularien herrschen oder sich ökologische oder andere Umweltfaktoren ändern. Dieser schnelllebigen Welt wollte man mit unterschiedlichen Methoden effizient und flexibel entgegentreten. Einige der bekanntesten Methoden sind wohl:

  • Scrum:
    Ein iteratives Vorgehen, in dem in kurzen Intervallen funktionale Ergebnisse geliefert werden und diese stetig überprüft werden.
  • Kanban:
    Ein visuelles System zur Steuerung von Arbeitsabläufen, das den Fokus auf eine kontinuierliche Verbesserung legt.
  • Extreme Programming (XP):
    Fokussiert sich auf technische Aspekte der Umsetzung und weniger auf ein formalisiertes Vorgehen setzt.


Scrum

Scrum ist eine agiles Vorgehensmodell, dass die Zusammenarbeit von Teams basierend auf definierten Rollen, Meetings und Artefakten regelt. Es basiert auf Empirie und Lean Thinking, setzt also auf Messbarkeit und Sparsamkeit. Zur Reduzierung des Risikos wird ein iterativer und inkrementellen Ansatz gewählt. Innerhalb des umspannenden Events, dem Sprint, werden vier weitere Events zum Überprüfen und Anpassen genutzt. Durch diese sollen die drei Säulen der Empirie umgesetzt werden.

Die drei Säulen der Empirie

  • Transparenz:
    Ohne Transparenz kann keine sinnvolle Überprüfung und somit Anpassung bei unerwünschten Abweichungen geschehen. Daher müssen Ziele, Aufgaben, Fortschritt und Ergebnisse bekannt sein und Entscheidungen dem wahrnehmbaren Zustand entsprechen.
  • Überprüfung:
    Um potenziell unerwünschte Abweichungen und Potenziale aufzudecken, muss gemessen werden. Transparenz allein hat noch nie zu Änderungen geführt.
  • Anpassung:
    Werden unerwünschte Abweichungen festgestellt, so müssen diese behoben werden.

Scrum Werte

Eine erfolgreiche Umsetzung hängt dabei von den fünf in Scrum definierten Werten ab.

  • Commitment:
    Innerhalb von Scrum haben alle Beteiligten eine definierte Verantwortung. Dieser Verantwortung müssen sich alle stellen, damit das gemeinsame Ziel erreicht werden kann. Hierfür müssen aber auch die äußeren Gegebenheiten stimmen.
  • Fokus:
    Es ist wichtig, dass sich alle Beteiligten auf die wesentlichen Tätigkeiten fokussieren, damit die Ziele erreicht werden können.
  • Offenheit:
    Es ist wichtig, dass die Beteiligten offen für die zu erledigende Arbeit und die Herausforderungen sind. Es ist aber auch wichtig, dass offen über Fortschritt und jegliche Probleme gesprochen wird, um Transparenz zu schaffen.
  • Respekt:
    Wichtig sind aber auch ein respektvoller Umgang, die Akzeptanz und Wertschätzung der anderen und ihrer Fähigkeiten.
  • Mut:
    Hier geht es nicht nur darum, den Mut zu haben, das Richtige zu tun, schwierige Aufgaben anzugehen und die Verantwortung zu übernehmen. Es geht auch um den Mut, Probleme offen zu legen und anzusprechen, um Transparenz zu schaffen und positive Änderungen anzustoßen.

Das Scrum Team

Im idealen Scrum ist das Scrum Team ein autark agierendes Team, in dem jedes Team-Mitglied eine bestimmte Rolle ausfüllt und bestimmte Verantwortungen übernimmt. Es besteht aus dem Entwicklungsteam, dem Product Owner und dem Scrum Master. Die primäre Aufgabe des Scrum Teams und dessen Verantwortung ist es, das Produktziel zu erreichen. Es besteht idealerweise aus nicht mehr als 10 Personen, sollte jedoch für die Projektziele die notwendige Expertise abdecken und große genug sein, damit in jedem Inkremente signifikanter Vortschritt geschieht.

  • Das Entwicklungsteam (die Macher):
    Die Aufgabe des Entwicklungsteams und dessen Verantwortung ist es, in jedem Sprint ein nutzbares Inkrement zu erzeugen und dessen Qualität sicherzustellen. Alle Fähigkeiten, die dazu nötig sind, sollten vom Team abgedeckt sein, denn ein Scrum-Team sollte autark agieren.
  • Product Owner (der Wertmaximierer):
    Der Produkt Owner ist für die Maximierung des Produktwertes verantwortlich, der sich aus der Arbeit des Entwicklungsteams ergibt. Er entwickelt das Produktziel und die Produktvision, erfasst alle Anforderungen der relevanten Stakeholder (Kunden/Nutzer des Produkts) und legt die Reihenfolge der Abarbeitung der Anforderungen im Product-Backlog fest, die zur Mehrwertgenerierung führen sollen. Wie der Mehrwert gemessen wird, ist sehr individuell. Bei Kundenprojekten ist sehr wahrscheinlich der Nutzen für den Kunden und der Revenue für die Bewertung der Reihenfolge eine Möglichkeit.
  • Scrum Master (der Enabler):
    Ein Scrum Master agiert als Coach, Mediator, Enabler und Hindernisbeseitiger. Er coacht das Team, damit dieses Scrum versteht und korrekt umsetzt und sich auf seine Aufgaben fokussieren kann. Er vermittelt zwischen den Mitgliedern und der Organisation, er sorgt dafür, dass alle Mittel, Werkzeuge und Informationen zur richtigen Zeit verfügbar sind und hält schädliche Einflüsse fern.
Scrum

Scrum Artefakte

Eines der Prinzipien von Scrum ist Lean. Daher wird in Scrum auch nicht seitenweise Dokumentation erzeugt, die keiner mehr liest. Bei Scrum geht es darum, dass alle notwendige Information vorhanden ist, um das Produktziel zu erreichen und jeder weiß, was zu tun ist.

  • Product-Backlog:
    Das Product-Backlog ist ein nach Wertmaximierung priorisierte Liste von Aufgaben (User-Stories), die zur Erreichung des Produktziels notwendig sind. Aufgabe des Product Owners ist es, die Einträge aufzunehmen, zu priorisieren und zu konkretisieren. Als langfristiges Planungsziel gilt immer das Produktziel.
  • Sprint-Backlog:
    Das Sprint-Backlog ist die kleine aber konkrete Schwester des Product-Backlogs. Es definiert das Sprintziel und die Product-Backlog-Einträge, die zur Auslieferung des Inkrements und der Erfüllung des Sprintziels notwendig sind. Diese werden ausschließlich vom Entwicklerteam anhand der priorisierten Product-Backlog-Einträge ausgewählt, da nur sie wissen, was sie leisten können und für die Erfüllung verantwortlich sind.
  • Increment:
    Das Increment ist ein funktionales Ergebnis auf dem Weg zum Produktziels. Jedes Inkrement maximiert den Wert, ist hingebend geprüft und funktional. Die Definition-of-Done (DoD) definiert dabei die Kriterien zur Messung des Erfüllungsgrads.

Scrum Events

Scrum Events dienen der Planung, der Überprüfung und Anpassung. Der Sprint spielt hier eine übergeordnete Rolle.

  • Sprint:
    Ein Sprint ist ein zeitlich begrenztes (4 Wochen oder weniger) Event, in dem der Mehrwert, das Inkrement, geschaffen wird. Alle Arbeiten, die zur Erreichung des Produktziels nötig sind, einschließlich aller Events, finden innerhalb des Sprints statt. Das beinhaltet auch die Überprüfung des Fortschritts und die Erreichung der Ziele. Ein erfolgreicher Sprint schließt mit einem Inkrement ab, der dem Produktziel einen Schritt näher kommt. Direkt an den Sprint schließt der nächste Sprint an. Die Länge der weiteren Sprint-Events sollte gemessen an der Länge des Sprints angepasst werden. Die folgenden Angaben gehen von einem 4-wöchigen Sprint aus.
  • Sprint Planning:
    Das Sprint Planing (maximal 8h) ist das erste Ereignis im Sprint. Hier wird das Sprintziel definiert und die Aufgaben aus dem Product-Backlog ausgewählt, die zur Erreichung des Ziels notwendig sind. Beteiligt sind mindestens Product Owner und Entwicklerteam. Der Scrum Master kann auch unterstützend teilnehmen. Oft wird die erste Hälfte des Meetings genutzt, um die Aufgaben auszuwählen, die den Mehrwert schaffen sollen. Im zweiten Teil kann dann ausschließlich das Entwicklerteam die Aufgaben verteilen und weiter konkretisieren.
  • Daily-Scrum:
    Der Daily Scrum dient der zeitnahen Überprüfung des Fortschritts. Er sollte vom Entwicklungsteam täglich und maximal in 15 Minuten durchgeführt werden. Ziel ist es, schnell Probleme aufzudecken und auf unvorhergesehene Ereignisse reagieren zu können.
  • Sprint-Review:
    Hauptzweck des Sprint-Review ist es, das Sprintergebnis (Increment) gegenüber der Definition-of-Done (den Kriterien) zu überprüfen. Dazu sind alle relevanten Stakeholder zur Bewertung eingeladen. Das kann, muss aber nicht den Kunden beinhalten. Durch die Überprüfung können bereits zukünftige Anpassungen festgelegt werden. Es sollte maximal 4 h dauern.
  • Retrospektive:
    Ziel der Retrospektive ist es, gute und schlechte Aspekte des letzten Sprints herauszustellen. Gute Aspekte können beibehalten werden, schlechte sollten geändert werden. Daher sollte die Zeit genutzt werden, hier an den Verbesserungen zu arbeiten. Eine Auswahl an Verbesserungsvorschlägen kann auch als Aufgaben in kommenden Sprints definiert und eingeplant werden. Sie sollte maximal 4 h dauern.

Kanban

Kanban ist eine agile Methode und Arbeitsweise, um Abläufe effektiver zu steuern. Sie dient zur Visualisierung anfallender Aufgaben und zur Verteilung der verfügbaren Arbeitskräfte, Ressourcen und Kapazitäten. Kanban kommt ursprünglich aus der Lean Production und solle Lagerbestände reduzieren, indem die Bestände der Vorproduktion für das finale Produkt reduziert werden. Lean-Production-Pionier Taiichi Ohno erfand das Kanban-Prinzip bereits 1947 auf Basis des Supermarkt-Prinzips, bei dem eine Begrenzte Fläche für Produkte vorhanden ist und die Lücke eines aus dem Regal entnommenen Produkts bedarfgerecht wieder aufgefüllt wird. Es folgt dem Prinzip der Just-in-time-Produktion bzw. dem Pull-Prinzip, bei der nur auf Nachfrage produziert wird. Dadurch soll die Produktion innerhalb der Integrationskette kostenoptimal gesteuert werden. Im klassischen Kanban wird eine Kanban-Karte auf Basis einer Nachfrage und einem unzureichenden Bestand an Produkten an die zuständige Stelle weitergeleitet. Bsp.: Bestellung eines Laptops, das nicht mehr im Bestand ist. Anhand der Informationen auf der Karte wird dann die festgelegte Art und Menge des Produkts produziert bzw. beschafft. Im Fall des Laptops müssen dazu zunächst die Einzelteile (Mainboard, Prozessor, Display, Tastatur …) angefordert bzw. produziert werden. Kanban folgt dabei mehrere Prinzipien:

  • Es wird nur so viel Material anfordern, wie benötigt wird.
  • Es darf nicht vorrätig Material anfordert werden.
  • Es darf nicht auf Vorrat produziert werden.
  • Die Qualität der Teile muss gewährleistet sein.
  • Der Kanban-Koordinator sorgt für eine gleichmäßige Auslastung der Produktionsstellen.
  • Der Kanban-Koordinator sorgt für eine möglichst geringe Anzahl an Kanban-Karten.

Die anfallenden Arbeiten werden dabei über das Kanban-Board visuell dargestellt und der Fortschritt sichtbar gemacht. Jede Aufgabe wird durch eine Karte repräsentiert. In der Grundversion wird das Board in drei Spalten aufgeteilt:

  • Aufgaben (To-Dos):
    Hier werden alle zu erledigenden Aufgaben erfasst. Im Normalfall sind das die Aufgaben, die in Zukunft anstehen. Hier werden nicht alle Aufgaben erfasst, sondern nur die, die in nächster Zukunft tatsächlich anfallen. Ein Produktverantwortlicher sollte hier die Aufgaben definieren und konkretisieren.
  • In Bearbeitung (Doing):
    Sobald die Umsetzung einer Aufgabe begonnen hat, wird die dazugehörige Karte in die Spalte Doing gezogen und der Verantwortliche notiert. Somit haben alle Beteiligten einen Überblick über den aktuellen Stand der laufenden Arbeiten.
  • Erledigt (Done):
    Alle abgeschlossenen Arbeiten werden in die Spalte Done gezogen. Hier sollten alle Tests bereits durchgeführt sein und ein nutzbares Produkt bzw. Teilprodukt entstanden sein, denn Done heißt hier für den Gebrauch fertig. Es ist Sinnvoll hier die durchgeführten Aktivitäten zu notieren, um die Arbeit nachvollziehbar zu machen.
Kanban-Board

Die Karten sollten dabei alle notwendigen Informationen enthalten, um möglichst große Transparenz zu gewährleisten. Dazu zählen beispielsweise: Verantwortlicher, Fristen, Priorität, Beschreibung, Kommentare. Bei komplexeren Aufgaben sollte auch dokumentiert werden, was gemacht wurde, damit nachvollziehbar ist, wie die Anforderungen umgesetzt wurden. Kanban ist eine visuelle Methode, um den Arbeitsstand sichtbar zu machen und Engpässe frühzeitig zu identifizieren. Es ist besonders für kleine Teams (bis zu 10 Mitglieder) geeignet. Es gibt einen geringen Overhead und die Methode kann in wenigen Tagen etabliert werden. Zudem benötigt es keinen weiteren personellen Aufwand.


Scrum vs. Kanban

Scrum Kanban
Ursprung Softwareentwicklung Lean Manufacturing
Prinzipien Lernen aus Erfahrungen, Selbstorganisation, Priorisierung und Messen der Erfolge und Misserfolge zur ständigen Verbesserung Visuelle Methode: Kanban verwendet das Kanban Board, um die Arbeitsstand zu transparent zu machen. Just-in-time: Kanban liefert auf Nachfrage.
Zeitrahmen Scrum ist in Sprints unterteilt, die einen feste Zeitrahmen von 1-4 Wochen haben. Am Ende jedes Sprints wird ein funktionsfähiges Produktinkrement geliefert. Kanban hat keinen festen Zeitrahmen. Teams arbeiten kontinuierlich daran, Aufgaben vom Kanban-Board in den erledigten Zustand zu bringen.
Planung In Scrum wird die Arbeit vorab geplant. Der Product Owner erstellt einen Product Backlog, der alle Aufgaben priorisiert. Im Sprint-Planning wird das Sprint-Backlog und somit die nächsten Aufgaben geplant. In Kanban werden Aufgaben kontinuierlich hinzugefügt und priorisiert.
Best Practices Scrum nutzt Events zur Messung, Überprüdung und Anpassung: Sprint-Planung, Sprint, Daily Scrum, Sprint-Review, Sprint-Retrospektive Kanban nutzt die Visualisierung von Arbeitsabläufen, den Work-in-Progress.
Rollen Scrum hat drei definierte Rollen: Product Owner, Scrum Master und Entwicklungsteam. Kanban hat keine definierten Rollen. Teams können die Rollen und Verantwortlichkeiten flexibel gestalten.
Fokus Scrum fokussiert sich auf die Lieferung von funktionsfähigen Produktinkrementen in kurzen Zeitrahmen. Kanban fokussiert sich auf die kontinuierliche Verbesserung des Arbeitsflusses und die schnelle Auslieferung.

Die Zusammenfassung ist u. a. auf Basis der Erkenntnisse von Atlassian entstanden


Scrum vs. V-Modell

Die folgende Tabelle sollte vorsichtig betrachtet werden, es ist sehr vereinfacht und vergleicht Äpfel mit Birnen. Trotzdem gibt sie einen guten Anhalt zu Unterschieden zwischen klassischem V-Modell und agilen Scrum.

Scrum V-Modell
Planung Flexible Planung in kurzen Sprints Starre Planung mit wenig Raum für Anpassungen
Fokus Fokus auf funktionierende Produkte und Kundenzufriedenheit Fokus auf umfassender Planung und vollständige Dokumentation
Rollen Selbstorganisiertes Team mit flacher Hierarchie; Hohe Eigenverantwortung Klare Rollenverteilung (z.B. Projektleiter, Analyst, Entwickler, Tester); Geringere Eigenverantwortung der Teammitglieder
Risikomanagement / Fehler Kontinuierliches Testen und Feedback in jedem Sprint; Frühes Erkennen und Beheben von Fehlern Fehler werden in späten Phasen entdeckt und behoben, was zu hohen Kosten führen kann
Dokumentation Nur die notwendige Dokumentation (3 Artefakte: Product-Backlog, Sprint-Backlog, Increment) Fokus auf vollständige Dokumentation (Lastenhefte, Pflichtenhefte, Projektstrukturplan, Netzpläne, Gantt-Diagramme)
Werkzeuge und Artefakte Product-Backlog- und Sprint-Backlog Management, Planning Poker, Burndown-Charts, Akzeptanzkriterien, Definition of Done (DoD) Lastenhefte, Pflichtenhefte, UML-Modellierung, Architekturdesign, Datenbankdesign, Projektstrukturplan, Netzpläne, Gantt, Meilensteintrendalanyse

Stark vereinfacht kann die Anforderungs- und Umsetzungsphase von Scrum und V-Modell folgendermaßen dargestellt werden.

Scrum vs. V-Modell