Was genau meinen Softwareteams, wenn sie von agilem Denken sprechen? Ist Agile dasselbe wie Scrum oder Kanban? Welche Rolle spielen verschiedene agile Softwaretools in diesem Zusammenhang? Agile Methodik ist das übergeordnete Konzept, unter dem alle Frameworks und Tools existieren. Im folgenden Artikel erläutern wir das Wesentliche von Agile, seine kurze Geschichte und die spezifischen Frameworks, die Sie bei der Einführung der Prinzipien in Ihrem Unternehmen beachten sollten.
Was sind agile Methoden?
Wenn es um Prozesse und Prinzipien in der Softwareentwicklung geht, können wir uns „agil“ als unseren wahren Norden vorstellen; das Gefäßsystem eines hocheffizienten, menschenzentrierten Teams. Es ist der Oberbegriff für alle anderen Prozesse. Darüber hinaus agile Ideale und Prinzipien sind die Umgebungen, in denen DevOps funktioniert und in denen die Scrum- und Kanban-Methoden vereint werden.
Die agile Methodik orientiert sich an Werten und Prinzipien, die zwar darauf abzielen, in kurzen Zeitabständen ein effizientes, funktionierendes Produkt zu erstellen, aber vor allem die Bedeutung menschlicher Fähigkeiten wie Anpassungsfähigkeit und Kommunikation innerhalb eines voneinander abhängigen Teams betonen.
Heute ist die Agile-Methodik so beliebt geworden, dass im Jahr 2020 95 % der Befragten in der 15. State of Agile-Bericht berichteten, dass ihre Organisationen agile Entwicklungsmethoden anwenden.
Kurze Geschichte von Agile
Die agile Methodik entstand aus den Misserfolgen der Wasserfallmethode in Kombination mit einem wachsenden und wettbewerbsintensiven Markt. Die Wasserfallmethode ist ein sehr linearer A-zu-B-Prozess, bei dem Business-Analysten die Geschäftsstrategie entwickeln und an Technologen weitergeben, die die Fachsprache in Datenstrukturen, Benutzeroberflächen und verschiedene nichtfunktionale Anforderungen übersetzen. Schließlich wurde diese Spezifikation an Entwickler (die letzte Station des Wasserfalls) übergeben, die mit der Programmierung und Integration begannen.
Der gut gemeinte Wasserfall-Prozess war zwar zunächst eine Revolution in der Branche, entwickelte sich jedoch zu einem isolierten, langwierigen Frustfaktor, insbesondere mit dem Aufkommen des Internets und der Telekommunikation, die neue Möglichkeiten eröffnete. Im Jahr 2001 trafen sich 17 Technologen in Utah, um den maschinenartigen Top-down-Ansatz in einem sich rasant verändernden Markt zu ermüden, der sie überforderte. Sie entwickelten das Agile Manifest, das wir heute kennen.
Was ist das Agile Manifest?
Das Agile Manifest, eine kleine Internet-Ecke, diente als Orientierungspunkt für Dutzende adaptierter Methoden, die wir im Folgenden vorstellen. Im Manifest unterteilen die Autoren Agile in vier Werte und zwölf Schlüsselprinzipien. Wir haben die einzelnen Komponenten unten zusammengefasst.
Vier Hauptwerte von Agile
- Individuen und Interaktionen über Prozesse und Werkzeuge
- Funktionierende Software statt umfassender Dokumentation
- Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen
- Auf Veränderungen reagieren statt einem Plan folgen
Zwölf Schlüsselprinzipien von Agile
- Die höchste Priorität liegt auf der Kundenzufriedenheit durch frühzeitige und kontinuierliche Produktlieferung
- Liefern Sie funktionierende Software regelmäßig, von ein paar Wochen bis zu Monaten, wobei wir den kürzeren Zeitrahmen bevorzugen.
- Begrüßen Sie geänderte Anforderungen, auch spät in der Entwicklung
- Tägliche teamübergreifende Zusammenarbeit
- Bieten Sie dem Team ein unterstützendes Umfeld und vertrauen Sie darauf, dass es die Arbeit selbstständig erledigt.
- Die besten Architekturen, Anforderungen und Designs entstehen in selbstorganisierenden Teams.
- Das persönliche Gespräch ist die effizienteste Art der Informationsübermittlung (*Mittlerweile werden auch Videoanrufe dazugezählt.)
- Funktionierende Software ist das wichtigste Maß für Fortschritt
- Agile Prozesse fördern eine nachhaltige Entwicklung in einem gleichmäßigen Tempo.
- Kontinuierliche Konzentration auf technische Exzellenz und gutes Design steigert die Agilität
- Halte es einfach
- Das Team berät über Anpassungen und Optimierungen für mehr Effizienz
Agile Frameworks
Gedränge
Gedränge ist ein agiles Framework, das Teams bei der Zusammenarbeit innerhalb zugewiesener Rollen, Regeln und Artefakte während einer Reihe von vier Ereignissen unterstützt: Sprint-Planung , Daily Standup, Iteration Review und Retrospektive. Scrum ist branchenübergreifend anpassbar und daher eine der beliebtesten Methoden für Teams. Der Prozess ist zwar in Rollen und Zeitpläne strukturiert, aber innerhalb jedes Events kann das Team – gecoacht von einem Scrum Master – den Kommunikationsstil oder -prozess wählen, der für seine Branche oder Dynamik am besten geeignet ist. Im Sinne von kontinuierliche Verbesserung Sobald sich Teams mit dem Scrum-Framework vertraut gemacht haben, beginnen sie in der Regel, die „Regeln“ zu brechen und Änderungen vorzunehmen, um ihren eigenen Stil anzupassen. Zum Beispiel ein Team bei PagerDuty greift auf Theorien der Psychotherapie als retrospektives Modell zurück, um sich gegenseitig und die Interaktion des Produkts mit der Welt besser zu verstehen.
Kanban
Teams können Kanban nutzen, wenn sie einen großen Zustrom von Arbeitsaufträgen unterschiedlicher Länge und Größe haben. Wie Scrum ist Kanban ein Framework, das die Zusammenarbeit von Teams unterstützt. Im Gegensatz zu Scrum gibt es bei diesem Prozess jedoch keine definierten Rollen, jederzeitige Änderungen sind möglich und ein kontinuierlicher Arbeitsrhythmus und Produktfreigaben werden gefördert. Kanban entstand durch die Kombination der Arbeiten von Jim Benson und David Anderson und ermöglicht es Teams, „mit dem Strom zu schwimmen“ – sozusagen der Hippie der Gruppe (wenn es einen gäbe).
Die Hauptziele von Kanban sind eine hohe Visualisierung, die Reduzierung der laufenden Arbeiten (WIP) und die Förderung kontinuierlicher Bewegung. Die zentrale Methode ist das Kanban-Board, das die Arbeit in fünf Komponenten unterteilt:
- Optische Signale
- Spalten
- Grenzen für laufende Arbeiten
- Ein Verpflichtungspunkt
- Ein Lieferpunkt.
Anschließend wird das Team die Qualität anhand verschiedener Metriken .
Extreme Programming (XP)
Extreme Programming (XP) ist ein agiles Software-Framework, das Entwicklern eine höhere Lebensqualität und ein qualitativ hochwertigeres Produkt ermöglichen soll. Wie Don Wells erklärt, ist XP nicht für große Teams gedacht; er empfiehlt Teams von 2 bis 12 Personen für optimalen Erfolg. Ähnlich wie die Werte des Agilen Manifests berücksichtigt XP die menschliche Natur von Teams mit Kernwerten wie Kommunikation, Einfachheit, Feedback, Mut und Respekt sowie einer Reihe von „Kernpraktiken“, die für die unterschiedlichsten Teamdynamiken anwendbar sind. Beispielsweise nehmen die Mitglieder am Planungsspiel teil, bei dem sie verschiedene Iterationen und Releases entwickeln, um den Prozess zu steuern (ähnlich der Sprintplanung in Scrum).
Dynamische Softwareentwicklungsmethode (DSDM)
DSDM wurde 1994 entwickelt, nachdem Projektmanager, die RAD (Rapid Application Development) nutzten, mehr Struktur und Disziplin suchten. Es ist ein agiles Framework mit Fokus auf den Produktlebenszyklus. Seine Philosophie besagt: „Jedes Projekt muss auf klar definierte strategische Ziele ausgerichtet sein und sich auf die frühzeitige Erzielung eines echten Geschäftsnutzens konzentrieren.“ Ähnlich wie Scrum ist DSDM ein interaktiver Prozess mit acht und vier Prinzipien: Machbarkeits- und Geschäftsstudie, Prototyp-Iteration, Design- und Build-Iteration sowie Implementierung. Dies ist möglicherweise das starrste der agilen Frameworks, da die Zeitfenster zwar fest vorgegeben, aber dennoch veränderbar sind.
Adaptives Projekt-Framework (APF)
Im Jahr 2010 veröffentlichte Robert K. Wysocki, ein bekannter strategischer Experte im Projektmanagement, das Buch „Adaptive Project Framework: Managing Complexity in the Face of Uncertainty“, in dem er den AFP-Ansatz definierte. APF, auch bekannt als Adaptives Projektmanagement (APM), ist ein agiles Framework, das es Teams ermöglicht, Herausforderungen und Störungen während des phasenweisen Prozesses zu antizipieren und zu vermeiden. Es verfolgt einen „Learning by Doing“-Ansatz, ähnlich wie kontinuierliche Lieferung Mit besonderem Schwerpunkt: Anpassungen werden in Echtzeit entsprechend der Kommunikation der Teams mit den Stakeholdern während des Prozesses vorgenommen, anstatt erst am Ende „Korrekturen“ vorzunehmen. APF erfordert tatsächlich die Einbindung des Kunden bzw. Auftraggebers in den Prozess von Anfang bis Ende.
Der Prozess beginnt mit verschiedenen Phasen, darunter der Versionsumfang – die Projektübersichtserklärung (POS), die das CdS zusammenfasst, darlegt, was wie erreicht werden soll, und außerdem potenzielle Herausforderungen auflistet – ein Zyklusplan, der Zyklus, der Client-Checkpoint und die Versionsüberprüfung.