← Zurück

Was sind Agile Frameworks?

Grafik eines agilen Entwicklungszyklus mit den Schritten Projektanfrage, Planung & Konzept, Sprints, Testing und Release

In der schnelllebigen und dynamischen Welt der Softwareentwicklung braucht es flexible und anpassungsfähige Ansätze, um effektive Ergebnisse zu erzielen. Agile Frameworks bieten genau das - sie sind das Werkzeug, das es Teams ermöglicht, mit Schnelligkeit und Effizienz auf Herausforderungen zu reagieren. Vielen, die sich mit Softwareentwicklung auseinandersetzen, sind Begriffe wie Scrum oder Kanban bereits über den Weg gelaufen. Doch was bedeutet eine agile Arbeitsweise überhaupt und wie hat sie unsere Entwicklungsweise revolutioniert?

Der Begriff „agil” stammt ursprünglich aus dem Lateinischen (agilis) und bedeutet „beweglich”, „flink” oder „wendig”. Das “Gegenteil” der agilen Entwicklung wird oft als traditionelle - oder Wasserfall-Entwicklung bezeichnet. Vor der Einführung agiler Frameworks war der Wasserfallansatz die vorherrschende Methode zur Softwareentwicklung.

In der Softwareentwicklung und im Projektmanagement hat sich der Begriff “Agilität” zu einer bestimmten Denk- und Herangehensweise entwickelt.

Der Ursprung der Agilität in der Softwareentwicklung liegt im sogenannten “Agilen Manifesto”, das im Jahr 2001 von einer Gruppe von Softwareentwickler:innen und Expert:innen formuliert wurde. Das Agile Manifest definiert eine Reihe von Werten und Prinzipien, die darauf abzielen, die Art und Weise zu ändern, wie Software entwickelt wird.

Die 4 Werte des Agilen Manifests

1. Individuen und Interaktionen mehr als Prozesse und Werkzeuge

2. Funktionierende Software mehr als umfassende Dokumentation

3. Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung

4. Reagieren auf Veränderung mehr als das Befolgen eines Plans

Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden,
schätzen wir die Werte auf der linken Seite höher ein.

Diese Werte spiegeln die Bedeutung von Flexibilität, Zusammenarbeit und Kundenorientierung wider. Agilität legt den Fokus auf schnelles Feedback, kontinuierliche Verbesserung, Anpassungsfähigkeit und den Wert funktionsfähiger Software.

Es gibt verschiedene agile Prozesse, die in der Softwareentwicklung und anderen Bereichen eingesetzt werden. Nachfolgend sind daher einige bekannte Vertreter aufgeführt.

Scrum: Scrum ist einer der am weitesten verbreiteten agilen Prozesse. Es basiert auf iterativer und inkrementeller Entwicklung und beinhaltet kurze Entwicklungszyklen, sogenannte Sprints. Scrum definiert Rollen wie den Scrum-Master und den Product Owner sowie Meetings wie das Daily Scrum und das Sprint Review.

Kanban: Kanban ist ein visuelles System zur Verwaltung von Arbeitsabläufen. Es basiert auf einem Kanban-Board, auf dem Aufgaben in Spalten organisiert sind. Kanban fördert die kontinuierliche Lieferung von Arbeit und begrenzt gleichzeitig die Menge an parallelen Aufgaben.

Extreme Programming (XP): Extreme Programming ist ein agiler Ansatz, der die Entwicklung in kurzen Iterationen betont. XP beinhaltet Praktiken wie Paarprogrammierung, kontinuierliche Integration und Testautomatisierung, um die Qualität und Flexibilität des Codes zu verbessern.

Feature Driven Development (FDD): Feature Driven Development ist ein inkrementeller und iterativer Prozess, der auf der Entwicklung einzelner Features basiert. FDD betont die Zusammenarbeit und bietet einen klaren Rahmen für die Planung, das Design und die Entwicklung von Funktionen.

Crystal: Crystal ist eine Familie agiler Methoden, die je nach Projektgröße und -komplexität angepasst werden können. Crystal-Methoden betonen die Kommunikation und Teamarbeit und passen sich flexibel den Bedürfnissen des Projekts an.

Lean: Lean-Praktiken zielen darauf ab, den Wert zu maximieren, Verschwendung zu reduzieren und kontinuierliche Verbesserungen voranzutreiben. Zwar wird es oft im Zusammenhang mit den agilen Methoden genannt, doch verfolgt diese Methode eine ganz andere Richtung. Während bei agilen Methoden die Konzentration auf dem Produkt liegt, so liegt sie beim Lean-Ansatz auf dem Prozess.

Auch wenn diese verschiedenen Frameworks einzeln entwickelt und definiert sind, laufen sie häufig zusammen und werden gemeinsam zur Entwicklung von Projekten herangezogen. In sogenannten SAFe- oder auch LeSS-Frameworks werden große Projekte skaliert und unter Zuhilfenahme verschiedener Methoden umgesetzt. Die zuvor genannten Frameworks und viele weitere wurden entwickelt, um flexiblere und kundenorientiertere Softwareentwicklung zu ermöglichen. Sie fördern Teamarbeit, schnelles Feedback, kontinuierliche Anpassung und eine iterative Vorgehensweise, um Kund:innen ein sehr gutes und schnelles Ergebnis zu liefern. Agilität hat sich seitdem nicht nur in der Softwareentwicklung, sondern auch in anderen Bereichen des Projektmanagements und der Unternehmensführung verbreitet.

Quelle:

agilemanifesto, Manifest für Agile Softwareentwicklung, https://agilemanifesto.org/iso/de/manifesto.html (aufgerufen am 25.07.2023).