Projektmanagement: Die 5 bedeutendsten Agile-Methoden
Die agile Methodik ist eine "Schritt-für-Schritt"-Dynamik, die sich auf kurzfristige Ergebnisse spezialisiert, aber nie das langfristige Produktziel aus den Augen verliert. Erfahrene Agenturen für professionelle Softwareentwicklung sind sich den Vorteilen von agilen Methoden bewusst.
Es gibt 5 wichtige agile Methodiken: Scrum, Kanban, Extreme Programming (XP), Lean Development und Crystal. Diese wollen wir in diesem Artikel erläutern.
Was sind agile Methoden?
Das erste Mal hörten wir von agiler Entwicklung (oder dem Begriff Agile) im Jahr 2001, als eine Gruppe von Entwicklern, die der als "schwerfällig" geltenden Entwicklungsmethoden - nämlich des Wasserfallmodells - überdrüssig geworden war, beschloss, ein Manifest zu verfassen: Das Agile Manifest. Dieses sehr wichtige Dokument hatte so viel Einfluss, dass es bis heute als Bibel für die agile Entwicklung gilt und alle Prinzipien und bewährten Praktiken festlegt.
Agile Methoden besagen, dass wir vor allem die Zufriedenheit des Kunden anstreben sollten, indem wir kontinuierlich wertsteigernde Software liefern, in ständiger Kommunikation mit dem Kunden bleiben und uns auch auf die Kommunikation zwischen den Teammitgliedern konzentrieren.
Im Gegensatz zu früheren Praktiken zeichnet sich die agile Methodik nicht durch die vollständige Definition eines Produkts aus, sondern "Schritt für Schritt" - eine vollständige Analyse oder die Definition aller Kategorien/Anforderungen, durch dynamische Interaktion, die eine kontinuierliche Lieferung ermöglicht - mit dem Schwerpunkt auf "near-shore" Sichtbarkeit, ohne jedoch das langfristige Produktziel zu verlieren.
Die wichtigsten agilen Methoden
1. Scrum
Scrum ist zweifellos das am häufigsten verwendete der vielen Frameworks, die der agilen Methodik zugrunde liegen. Scrum zeichnet sich durch Entwicklungszyklen oder -phasen aus, die als Sprints bezeichnet werden, und durch die Maximierung der Entwicklungszeit für ein Softwareprodukt in Richtung eines Ziels, dem Product Goal. Dieses Product Goal ist ein größeres Wertziel, dem die Sprints das Produkt des Scrum-Teams einen Schritt näher bringen.
Es wird in der Regel bei der Verwaltung der Entwicklung von Softwareprodukten verwendet, kann aber auch in einem geschäftsbezogenen Kontext erfolgreich eingesetzt werden.
Jeder Tag beginnt mit einem kleinen 15-minütigen Treffen, dem Daily Scrum, bei dem es darum geht, die Aktivitäten zu synchronisieren und den besten Weg für die Planung des Arbeitstages zu finden, um die "Gesundheit" des Sprints und den Produktfortschritt zu überprüfen.
Vorteile von Scrum sind:
- Die Motivation des Teams ist gut, denn die Programmierer wollen die Frist für jeden Sprint einhalten;
- Die Transparenz ermöglicht es, dass das Projekt von allen Mitgliedern eines Teams oder sogar der gesamten Organisation verfolgt werden kann;
- Eine einfache "Definition of done" wird für die Validierung von Anforderungen verwendet
- Der Fokus auf Qualität ist bei der Scrum-Methode eine Konstante, was zu weniger Fehlern führt;
- Die Dynamik dieser Methode ermöglicht es den Entwicklern, die Prioritäten neu zu ordnen und dafür zu sorgen, dass Sprints, die noch nicht abgeschlossen sind, mehr Aufmerksamkeit erhalten;
- Eine gute Sprintplanung setzt Prioritäten, so dass das gesamte Scrum-Team das "Warum, Was und Wie" der zugeteilten Aufgaben versteht.
2. Lean Development
Lean Development ist eine Methode, die direkt aus dem von Toyota geschaffenen Lean Manufacturing stammt und auf die Softwareentwicklung angewendet wird. Diese Methode bietet einen konzeptionellen Rahmen und folgt Werten, Prinzipien und guten Entwicklungspraktiken, die auf einen agilen Entwicklungsansatz angewendet werden können.
Die schlanke Entwicklung zwingt das Team dazu, rücksichtslos alle Aktivitäten zu entfernen, die dem Produkt keinen endgültigen Wert verleihen.
Es gibt sieben wesentliche Prinzipien:
- Streichen von unwichtigen Dingen (alles, was dem Kundenprojekt keinen effektiven Wert bringt);
- Qualitätsentwicklung (die Schaffung von Qualität in der Entwicklung erfordert Disziplin und die Kontrolle der Anzahl der entstehenden Rückstände);
- Schaffung von Wissen (das Team wird motiviert, die gesamte Infrastruktur zu dokumentieren, um diesen Wert später zu erhalten);
- unterschiedliche Verpflichtungen (dieser Punkt ermutigt das Team, sich nicht zu sehr auf die Planung und die Vorwegnahme von Ideen zu konzentrieren, ohne vorher die Anforderungen des Unternehmens vollständig verstanden zu haben);
- schnelle Lieferung (dem Kunden so schnell wie möglich einen Mehrwert bieten);
- Respekt vor dem Team (Kommunikation und Konfliktmanagement sind zwei wesentliche Punkte);
- Optimierung des Ganzen (der Entwicklungsablauf muss so weit perfektioniert werden, dass Fehler im Code gelöscht werden können, um einen echten Wertfluss zu schaffen).
Das Team arbeitet daran, einfache Lösungen zu entwickeln und sie den Kunden zu präsentieren, die ihr Feedback zum "Produkt" nutzen, um es schrittweise zu verbessern. Das Konzept des "Minimum Viable Product" wird auch oft mit "Lean" in Verbindung gebracht.
3. Kanban
Das Wort Kanban ist japanischen Ursprungs und seine Bedeutung ist mit dem Konzept von "just in time" verbunden. In der Praxis wird die Kanban-Methode auf einer in Spalten unterteilten Tafel oder Tabelle (Kanban-Tafel) organisiert, auf der jeder Fluss innerhalb des Software-Produktionsprojekts dargestellt wird. Im Laufe der Entwicklung ändern sich die in der Tabelle enthaltenen Informationen, und jedes Mal, wenn eine neue Aufgabe ins Spiel kommt, wird eine neue "Karte" erstellt.
Diese Methode ist auch in einzelnen Unternehmensabteilungen wie der Personalabteilung, dem Marketing usw. nützlich und bringt die gewünschte Transparenz über alle Aufgaben des Teams.
Die Kanban-Methode setzt Kommunikation und Transparenz voraus, so dass alle Mitglieder eines Teams genau wissen, in welchem Stadium der Entwicklung sie sich befinden und jederzeit den Status eines Projekts einsehen können. Sie konzentriert sich in erster Linie auf die Teamkapazität und eignet sich am besten für Prozesse, die kleinen Änderungen unterliegen.
4. Extreme Programming (XP)
Dabei handelt es sich um ein typisches agiles Entwicklungsframework, das von Kent Beck entwickelt wurde und an Entwicklungsunternehmen verschiedener Größenordnungen angepasst werden kann. Die Methodik des Extreme Programming ("XP") basiert auf der Idee, "das Einfachste zu finden, was funktioniert", ohne der langfristigen Produktsicht zu viel Bedeutung beizumessen.
Es ist eine Methodik, die Werte wie Kommunikation, Einfachheit, Feedback, Mut und Respekt betont und die Kundenzufriedenheit über alles andere stellt. Diese Methodik fördert das Vertrauen, indem sie die Entwickler dazu motiviert, Änderungen der Kundenanforderungen zu akzeptieren, auch wenn diese erst in den späteren Phasen des Entwicklungszyklus eintreffen.
Teamarbeit ist bei XP extrem wichtig, denn wenn es ein Problem gibt, wird es vom gesamten Team, d.h. von Managern, Entwicklern oder Kunden gelöst, indem sie zusammengebracht werden, um Gespräche und Engagement zu fördern und Kommunikationsbarrieren abzubauen. Sie alle werden zu wichtigen Teilen desselben Puzzles und schaffen so ein fruchtbares Umfeld für hohe Produktivität und Effizienz im Team.
Bei Extreme Programming wird die Software vom ersten Tag an getestet und Feedback gesammelt, um die Entwicklung zu verbessern. XP fördert Aktivitäten wie die Paarprogrammierung und ist mit einer starken Testkomponente eine hervorragende Entwicklungsmethode.
5. Crystal
Es handelt sich um eine Familie von agilen Methoden. Crystal ist eines der flexibelsten Frameworks, das dem Team enorme Freiheiten bei der Entwicklung seiner eigenen Prozesse lässt. Es konzentriert sich viel mehr auf die einzelnen Personen und deren Interaktion als auf den Prozess oder die Tools - daher ist die Kommunikation ein wesentlicher Schlüsselaspekt.
Crystal gibt es in Varianten wie
- Crystal Clear (bis zu einem Team von 8 Personen),
- Crystal Yellow (bis zu einem Team von 10 bis 20 Personen),
- Crystal Orange (bis zu einem Team von 20 bis 50 Personen) und
- Crystal Red (für große Teams mit 50 bis 1000 Personen).
Crystal konzentriert sich auf Prinzipien wie Menschen, Interaktionen, Gemeinschaft, Fähigkeiten, Talent und Kommunikation und zielt darauf ab, den bestmöglichen Softwareentwicklungsprozess zu liefern. Der Kern dieses Entwicklungsprozesses ist die Interaktion und Symbiose, die zwischen den Menschen, die den Projekten und Prozessen zugewiesen sind, bestehen muss, um Effizienz in das Projekt zu bringen.
Jedes Projekt ist einzigartig und unterliegt häufigen Änderungen, so dass das Team seine eigenen Wege finden muss, um es mit den besten Entscheidungen zum Abschluss zu bringen.
Laut seinem Gründer, Alistair Cockburn, ist Crystal eine Familie von Softwareentwicklungsmethoden, die mit der von Menschen investierten Kraft arbeitet und extrem leicht und dehnbar ist. Im Grunde glaubt Cockburn, dass Talent und die Art und Weise, wie die Teammitglieder interagieren, dem gesamten Projekt zugute kommen.
Es handelt sich um eine leichte Methodik in Bezug auf die Dokumentation, bei der die Teams ihre eigenen Wege über die bevorzugten Arbeitsmodalitäten finden können, wodurch der Verwaltungsaufwand entfällt und ein "freier" Prozess entsteht.
- Kommentieren
- 2267 Aufrufe