Agile Softwareentwicklung
Die agile Methode ist unter den Projektentwicklern seit mehreren Jahren sehr beliebt und dies aus gutem Grund. In den meisten Fällen ist eine abschließende Planung eines Projekts bereits von Anfang an so gut wie unmöglich. Also sind meist im Laufe der Projektentwicklung zahlreiche Änderungen und Anpassungen erforderlich.
Die klassischen „Wasserfall-Methoden“ lassen solche Änderung und Anpassungen nicht zu. Im Gegensatz zu dieser klassischen Methode werden bei der agilen Softwareentwicklung die einzelnen Entwicklungsstufen und Leistungspflichten erst im Laufe der Softwareherstellung festgelegt. Die Entwicklung erfolgt in Abschnitten und basiert auf einer intensiven Kommunikation zwischen den Softwareentwicklern und den Auftraggebern. Dadurch lässt die agile Methode, die im Laufe der Projektentwicklung erforderlich gewordene Änderungen und Anpassungen zu.
Den wichtigsten Wendepunkt für die agile Softwareentwicklung bildet das im Jahr 2001 von 17 Methoden-Entwicklern erarbeitete Manifesto for Agile Software Development (Agile Manifest). Unter den Autoren des Manifestes befanden sich die Schöpfer von Scrum und von Dynamic Systems Development Method (DSDM) sowie weitere Pioniere der Softwareentwicklung.
Das Agile Manifest beinhaltet die Kernwerte und Grundprinzipien der agilen Softwareentwicklung.
Insgesamt wurden im Manifest vier Kernwerte und 12 Grundprinzipien aufgenommen:
Kernwerte:
- Individuen und Interaktionen haben Vorrang vor Prozessen und Werkzeugen
- Funktionsfähige Produkte haben Vorrang vor ausgedehnter Dokumentation
- Zusammenarbeit mit dem Kunden hat Vorrang vor Vertragsverhandlung
- Das Eingehen auf Änderungen hat Vorrang vor strikter Planverfolgung.
Grundprinzipien:
- Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
- Heiße Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
- Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.
- Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
- Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die Unterstützung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.
- Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteam zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.
- Funktionierende Software ist das wichtigste Fortschrittsmaß.
- Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.
- Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
- Einfachheit – die Kunst, die Menge nicht getaner Arbeit zu maximieren – ist essenziell.
- Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.
- In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.
Um diese im Manifest enthaltenen Grundprinzipien umzusetzen werden verschiedene Methoden eingesetzt.
Eine der beliebtesten agilen Methoden stellt Scrum dar. Entwickelt wurde Scrum 1993 von Jeff Sutherland und Ken Schwaber, die auch Mitautoren des Manifests sind.
Scrum verzichtete auf einen Projektleiter, so dass das selbstorganisierte Entwicklerteam, dem bei Scrum die wichtigste Rolle zukommt, direkt mit dem Produkt-Owner zusammenarbeitet.
Gearbeitet wird in Entwicklungsabschnitten (sogenannten Sprints) von einer bis maximal vier Wochen. Während dieses Entwicklungsabschnitts ist eine Änderung der Anforderungen an das Projekt nicht möglich. Seine Vorstellungen für die Weiterentwicklung nimmt der Product-Owner in das Product Backlog (eine Todo-Liste für das Projekt) auf und sorgt somit für die nächsten Sprints.
Die Agile Methode setzt eine starke (s.o.) Kommunikation zwischen den Beteiligten voraus, was oft nicht so leicht zu bewerkstelligen ist. Durch eine missverständliche Kommunikation oder einen Mangel an Entscheidungen entsteht ein Mehraufwand.
Nichtdestotrotz bietet diese Methode viele Vorteile gegenüber den klassischen Methoden, was möglicherweise darauf zurückzuführen ist, dass sie als Gegenbewegung zur klassischen Methoden entwickelt wurde.
Oft musste bei der klassischen Methode ein Projekt aufgrund einer stark veränderter Zielsetzung vollständig abgebrochen werden, da eine Änderung im Rahmen des Entwicklungsprozesses nicht möglich war. Die agile Software kann sich an die sich während des Entwicklungsprozesses ergebenden Veränderungen leicht anpassen.
Außerdem verzichtet die agile Methode auf Bürokratie und eine umfangreiche formelle Dokumentation. Dokumentiert wird selbstverständlich nach wie vor, jedoch auf informeller, für den End-Nutzer wesentlich einfacher zu verstehenden Art und Weise.
Aufgrund der abschnittweisen Entwicklung sind die Ergebnisse für alle Beteiligten bereits nach einer kurze Zeit sichtbar, was mitunter zum Erfolg des Projektes beiträgt.
Selbstverständlich ist der Erfolg des Projekts mit der agilen Softwareentwicklung nicht garantiert, aber sie erleichtert definitiv den Weg zu einem erfolgreichen Abschluss.