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