Donnerstag, 17. September 2015

Agilität ist nicht gleich Agilität

Wie agil ist agile Softwareentwicklung?
Ein typischer Fallstrick bei der Einführung von Scrum

Was genau ist Agilität? Dem eigentlichen Wortsinn nach ist es gleichbedeutend mit 'flink', 'schnell' oder 'beweglich'. In der heutigen Zeit existiert ein nicht nachlassender Hype um die agile Softwareentwicklung, die beispielsweise mit Scrum umgesetzt wird. An diesem Beispiel festhaltend existiert dieses Prinzip schon seit mehr als zwanzig Jahren. Doch was genau bedeutet Agilität in Verbindung mit Softwareentwicklung?

Die Vorstellungen sind je nach Sichtweise sehr unterschiedlich. Allgemein werden agile Prozesse, allen voran Scrum, als Allheilmittel für jegliche Probleme angepriesen und angesehen. Das dies ein Trugschluss ist, wird den Beteiligten meist erst klar, wenn es schon zu spät ist. Doch erst dann wächst das Verständnis über die Agilität und es wird verstanden, dass mehr dazu gehört, als eine bestimmte Methodik zu erzwingen.

Aus Unternehmersicht klingt zunächst alles rosig. „Das Wasserfallprinzip weicht einem dynamischen, flexiblen Vorgehensmodell und verspricht eine schnellere Fertigstellung des Produktes.“ Bereits in dieser Denkweise ist ein großer Fehler enthalten, da beispielsweise Scrum kein Vorgehensmodell ist, sondern lediglich ein Vorgehensrahmen, da nur wenige Regeln vorgegeben sind.

Ein weiteres Problem ist, dass Scrum eingeführt wird, ohne zunächst den Nutzen für das Unternehmen festzustellen, was genau die Erwartungshaltung von Scrum ist. Es wird reflexartig zur 'agilen Projekt-Welt' gewechselt, die Erwartungshaltung an die Teams ist in der Folge sehr hoch.

Die Teams, um den Blick von unten nach oben abzubilden, verstecken sich in der Anfangsphase von Scrum gerne unter dem Deckmantel des Begriffes 'agil'. Feste Regeln, die für Scrum eingehalten werden müssen, werden nur lose befolgt, „da man ja agil sei“. Die Einhaltung des vorgegebenen Rahmens wird nicht immer berücksichtigt – oftmals nicht bewusst. Die Vorstellung von Agilität geht ohne eine gemeinsame Abstimmung sehr weit auseinander. 

Das Agile Manifest beschreibt die Absicht, dass die Reaktion auf Veränderungen höher eingestuft werden sollte, als das Befolgen eines Planes. Darunter ist zu verstehen, dass Kundenwünsche und geänderte Anforderungen in kurzen Abständen angepasst und realisiert werden können. Doch dazu muss stets der abgesteckte Rahmen eingehalten werden, ein Freifahrtschein für ein beliebiges Vorgehen oder beliebige Änderungen an grundsätzlichen Strukturen ist es nicht.

Immer unter Berücksichtigung der Einhaltung des Sprints und den vorgegebenen Scrum-Regeln, dürfen in definierten Zeitintervallen Anpassungen vorgenommen werden. Diese Zeitfenster sind die unterschiedlichen Scrum-Ereignisse, hauptsächlich aber die Retrospektive. Bei dieser Veranstaltung wird der vergangene Sprint analysiert und es werden im Team Verbesserungen ausgearbeitet, die möglichst zeitnah angewendet werden sollten.

In der agilen Softwareentwicklung und in Scrum kann auf Veränderungen, die sich aus neuen oder geänderten Kundenanforderungen ergeben, sehr schnell reagiert werden. Dadurch wird verhindert, dass monatelang in die falsche Richtung entwickelt wird. Es können frühzeitig Wünsche und Vorgaben der Kunden aufgenommen und umgesetzt werden. Das ist die Agilität, von der die Rede ist.

Natürlich unterliegt Scrum durch stetige Kontrolle der Abläufe einem kontinuierlichen Prozess der Veränderung und Anpassung. Doch von der Vorstellung, dass damit jedes Problem gelöst werden kann, muss sich verabschiedet werden. Meist können Unternehmen nur durch große Veränderungen an Scrum angepasst werden. Ebenso müssen die Entwickler gewisse Vorgaben einhalten.

Es ist auf allen Seiten das Verständnis notwendig, was es heißt, Scrum anzuwenden und agil zu entwickeln. Eindeutige Abstimmungen und viel Kommunikation sind wichtig, da trotz Agilität gewisse Regeln befolgt werden müssen. Nur so kann die Scrum-Methodik helfen, das Produkt schneller an den Kunden auszuliefern.

Was bedeutet Agilität denn nun in Verbindung mit Softwareentwicklung? Es bedeutet, schnell auf Veränderungen zu reagieren. Es bedeutet, Beweglichkeit bei neuen Erkenntnissen immer wiederkehrender Prozesse zu beweisen. Es bedeutet aber genauso, Regeln und festgelegte Rahmen einzuhalten. Wenn diese Bedingungen gegeben sind, ist bereits ein großer Schritt Richtung agiler Softwareentwicklung getan.

Über den Autor:
Stephan Klimmeck, geboren in Hamburg, ist studierter Informatiker und seit 2009 in der Softwareentwicklung tätig. Sein vierjähriges Studium brachte ihn zunächst in ein mittelständisches Unternehmen für Sicherheitstechnik, später wurde er von einer weltweit agierenden Firma für Personalabrechnung aufgenommen, bei der er als Scrum Master geholfen hat, Scrum erfolgreich im Unternehmen einzuführen.

Keine Kommentare:

Kommentar veröffentlichen