Agile Softwareentwicklung gestern, heute und morgen

Astrid Spier

Wer es negativ sieht, könnte behaupten, Programmieren sei ein alter Schuh und es habe sich seit den Anfängen der Computertechnik – ja seitdem Menschen anfingen, komplexere Systeme zu entwickeln – wenig an den Abläufen geändert. Wir sehen die Sache natürlich etwas anders und sprechen lieber vom angesagten Retro-Schick, denn tatsächlich sind die Ideen der agilen Softwareentwicklung älter als viele denken.

So komplex Programme auch sein mögen, basieren alle Befehle doch auf einfachen Codes. Jedes Programm wird aus vielen einfachen Schritten zusammengesetzt, denn im Prinzip hangelt sich ein Entwickler von einem kleinen Problem zum nächsten, bis eine große Aufgabe erledigt wird. Dabei werden nach Möglichkeit im Rahmen eines Frameworks häufige Tests durchgeführt, um die Fehler zu minimieren oder um mit den Auftraggebern abzuklären, ob das Projekt in ihrem Sinne Formen annimmt. Auf diese Weise ist es zudem möglich, auf neu auftretende Herausforderungen zu reagieren oder die Programme neuen Anforderungen anzupassen. Bereits 1971 beschrieb Harlan Mills dieses Vorgehen als Top-Down-Programming und schon zuvor war das agile Entwickeln von Software Bestandteil der täglichen Arbeit von Computer-Experten.

Ein Schritt zurück in unserer eigenen Geschichte veranschaulicht die Sache weiter. Wir alle haben früher mit den bunten Bauklötzen einer dänischen Firma gespielt und später sind viele von uns sicherlich auf die etwas anspruchsvollere Technik-Variante umgestiegen. Wer so schon ein eigenes Modell entworfen hat, wird kaum Stein auf Stein gesetzt haben, um ganz am Ende festzustellen, dass irgendwo ein Zahnrad falsch gesetzt wurde. Stattdessen wurde überlegt, gebaut und ausprobiert – verworfen, überlegt und wieder probiert – überlegt, verworfen, gebaut und so weiter. Im Grunde ist dies nichts anderes als agiles Entwickeln, nur haben wir es damals Spielen genannt. Kaum einer wird an das Wasserfallmodell von W.W. Royce gedacht haben und doch haben wir es angewandt.

Doch was bedeutet das agile Entwickeln für moderne Entwickler, besonders in Hinblick auf die heutige Wirtschaftswelt? Hierzu hat sich Charlie Martin vom Smartbear-Blog einmal Gedanken gemacht und grundlegende Konflikte zwischen den Interessen der Entwickler und der Auftraggeber festgestellt.   

Das Wasserfallmodell in der Wirtschaft

Auf der einen Seite versuchen Auftraggeber, Verwaltungen und Managements zu viel und so genau wie möglich zu planen und Entwicklungen vorauszusagen; Entwickler auf der anderen Seite können nur selten zu Beginn eines Projekts abschätzen, welche Probleme sich genau gegen Ende der Arbeit ergeben. In diesem Spannungsfeld scheint die arbeitsaufwändige, aber verlässliche Methode der agilen Softwareentwicklung im Gegensatz zu Schlagworten wie Effizienz, Schnelligkeit, Kosteneinsparung und Planungssicherheit zu stehen, obwohl so Probleme vermieden werden können, die im Endeffekt wesentlich höhere Kosten verursachen. Tatsächlich wollen Auftraggeber häufig genaue und möglichst enge Zeitpläne aufstellen, innerhalb derer ein Projekt beendet sein muss. Dabei besteht die Gefahr, dass aufgrund des Zeitdrucks unausgereifte Programme entstehen, die fehlerhaft und störungsanfällig sind.
 
Martin rät daher, offen mit den Auftraggebern umzugehen. Wird zum Beispiel nach detaillierten Inhalten gefragt, sollte man darauf hinweisen, dass sich mit Fortschreiten des Projekts unter Umständen neue Anforderungen ergeben, die nicht immer im Voraus ersichtlich sind. Drängt der Auftraggeber hingegen auf einen festen Zeitplan, solle man den Kunden erklären, dass dies dazu führen kann, dass die Entwickler eher zu viel als zu wenig Zeit veranschlagen werden, um Funktionen überprüfen oder überarbeiten zu können. Besteht der Kunde dann weiterhin auf einen Zeitplan, könne man ruhigen Gewissens einen großzügigen Plan vorschlagen, da man ja darauf hingewiesen habe.
 
Da dies nicht immer möglich sein wird und es mit Sicherheit vorkommt, dass man unter Zeitdruck in einem engen Zeitplan arbeiten muss, sollte man darauf hinweisen, dass der Plan zu eng gefasst sei und man unter Umständen nicht alle Features einbauen könne oder auf notwendige Überprüfungsmaßnahmen und Testläufe verzichten müsse. Nichtsdestotrotz bieten diese Bedenken natürlich keine Entschuldigung für Trödeleien und auf gar keinen Fall sollte man sich in einem Endlos-Wasserfall verzetteln. Wenn Testläufe notwendig und sinnvoll sind, empfiehlt es sich, die Kunden darüber aufzuklären und an den Ergebnissen teilhaben zu lassen, da sie so die Vorgänge besser verstehen können und zudem beruhigt feststellen werden, dass ihre Aufträge gewissenhaft und professionell erledigt werden. Zufriedene Kunden werden eine leichte Verzögerung in Kauf nehmen, wenn es dem Ergebnis zuträglich ist.

Keep Calm and Code on

Am wichtigsten ist es jedoch, auch bei hohem Druck nicht zu verzweifeln. Die routinemäßige Anwendung der Agile-Prinzipen hilft, Probleme frühzeitig zu erkennen und zu beseitigen und auf alle Anforderungen rechtzeitig zu reagieren. Durch ein wenig Mehraufwand erspart man sich in den meisten Fällen zeit- und arbeitsintensive Korrekturen und wird ein besserer, effektiverer und zufriedener Entwickler, was auch die Auftraggeber zu schätzen wissen.

 

Geschrieben von
Astrid Spier
Astrid Spier
Astrid Spier arbeitet seit Juli 2012 als Redaktionsassistentin bei S&S Media. Im Mai 2011 hat sie ihren Master in Germanistik in den Vereinigten Staaten erhalten. Durch die enge Verbindung von Journalismus und Germanistik hat sie in den USA journalistische Erfahrungen sammeln können und Artikel zur interkulturellen Verständigung für den Blog der Universität geschrieben. Im März 2013 hat sie ihr Staatsexamen mit den Fächern Englisch und Deutsch in Mainz abgeschlossen.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.