Agile Software-Entwicklung

Foto: Fotolia/kantver
Foto: Fotolia/kantver

Unsere Gesellschaft ist geprägt von einer stetig zunehmenden Veränderungsgeschwindigkeit und immer neuen Trends. Organisationen müssen sich diesem Umstand stellen, und zahlreiche Firmen tun dies, indem sie agil arbeiten. Ein Erfahrungsbericht von Matthias Bulligk, Agile Coach bei der DATEV eG

Auch die Software-Branche sieht sich mit der Notwendigkeit konfrontiert, auf steten und vor allem schnellen Wandel kurzfristig die richtigen Antworten zu finden. Mit der sogenannten agilen Software-Entwicklung greift eine Arbeitsweise mit sehr viel Interaktion und Kommunikation um sich, bei der jeder kontinuierlich Feedback zur eigenen Arbeit erhält und auch schnell zu Ergebnissen kommt.

Der Ansatz geht zurück auf das Agile Manifest, dass bereits im Februar 2001 verfasst wurde. Die 17 Unterzeichner formulierten damals einen Wertekodex für eine Kultur der kontinuierlichen Verbesserung. Dem Manifest lag die Erkenntnis zugrunde, dass sich Anforderungen und Umweltbedingungen für Entwicklungsprojekte immer schneller verändern. Das klassische, kaskadierende Vorgehen war dem schon damals kaum mehr gewachsen, heute ist es das noch viel weniger. Mit dem agilen Vorgehen wird es durch einen Ansatz abgelöst, der bereits im Entwicklungsprozess auf Veränderungen zu reagieren vermag.

Die agile Software-Entwicklung wird dem Umstand gerecht, dass es zwar ein klar definiertes Ziel gibt, sich aber dennoch mit der Zeit die Parameter verändern. Daher wird der Entwicklungsprozess in möglichst kleine Iterationen gegliedert, in denen jeweils ein potenziell auslieferbares Produkt entsteht. Zu jeder fertiggestellten Einheit wird sofort vom künftigen Nutzer ein Feedback eingeholt, damit gegebenenfalls Änderungen noch kurzfristig vorgenommen werden können. Der Austausch mit dem Kunden und die Kommunikation im Team sind dabei notwendige Bestandteile des Vorgehens, um die Kultur der kontinuierlichen Verbesserung zu leben. Dies führt zu einem iterativen Prozess, der sehr anpassungsfähig ist, gleichzeitig aber nie die Zielvorstellungen aus den Augen verliert. Als Leitplanken dienen drei übergeordnete Ziele:

  1. Die richtigen Dinge tun, also Mehrwert für den Kunden schaffen.
  2. Die Dinge richtig tun, also technisch sauber und qualitativ hochwertig arbeiten.
  3. Schnell und effizient sein, also die Anforderungen zügig abschließen.

Diese Zielsetzungen müssen stets in eine Balance gebracht werden, um Schieflagen im Projekt zu vermeiden. Wer beispielsweise nur die ersten beiden Punkte verfolgt, läuft Gefahr, sich in ewigem Feinschliff zu verkünsteln. Hier ist das dritte Ziel ein wichtiges Korrektiv. Eine andere Schieflage entsteht, wenn in einem Projekt vor allem Ziele und Schnelligkeit verfolgt werden. Das Ergebnis mag den direkten Anforderungen entsprechen, wenn aber kein Wert auf technische Exzellenz gelegt wird, bleibt die Qualität auf der Strecke.

Eigenverantwortlich und reflektiert Agil zu arbeiten ist also eine Einstellung, eine Philosophie – und eine Arbeitsweise mit klar definierten Rollen und einfachen Regeln. Agile Teams arbeiten eigenverantwortlich und reflektieren kontinuierlich ihr Handeln und ihre Ergebnisse. Es gibt klare Verantwortlichkeiten einerseits für das Produkt, andererseits für den Prozess. Dafür gibt es eine Reihe von Methoden, die dies unterstützen: zum Beispiel Scrum.

Ein agiler Prozess verhindert jedoch keine Fehler. Er sorgt aber dafür, dass sie frühzeitig korrigiert werden können. Doch dafür bedarf es der Bereitschaft und des Willens zur kontinuierlichen Verbesserung. Was bringt nun agile Software-Entwicklung für den Einzelnen? Sie bringt vor allem ein hohes Maß an Zufriedenheit. Das liegt zum einen daran, dass man intensiv im Team zusammenarbeitet. Zum anderen ist es aber auch so, dass das direkte, schnelle Feedback es jedem ermöglicht, seine Leistung einzuordnen und sich stetig weiterzuentwickeln.