Programmierer besser führen

Die 7 Geheimnisse agiler Software-Entwicklung

24. April 2014
Von Nicolas Zeitler und Esther Schindler
Unter dem Stichwort "Agile Software-Entwicklung" versuchen Programmierer, die Entwicklung neuer Anwendungen flexibler zu gestalten und besser auf die Bedürfnisse von Anwendern einzugehen. Doch viele CIOs verstehen die Vorteile dieses Ansatzes noch nicht. Sieben Dinge sollte ein IT-Manager über agile Entwicklung wissen.
CIOs sollten unsere sieben Punkte über agile Software-Entwicklung gelesen haben.
CIOs sollten unsere sieben Punkte über agile Software-Entwicklung gelesen haben.
Foto: Rene Schmöl

Erstklassige, fehlerfreie Applikationen, die die Erwartungen der Nutzer erfüllen oder sogar übersteigen - das wünschen sich Anwender und Entwickler gleichermaßen. Die Wege, die zu diesem Ziel führen, können indes höchst unterschiedlich sein. Der klassische Pfad führt über ein Dokument, in dem die einzelnen Anforderungen festgelegt werden. Programmierer erhalten den Auftrag, genau die darin formulierten Aufgaben zu lösen und dann die fertige Anwendung vorzulegen. Das Problem dabei: Oft entstehen auf diesem Weg großartige Programme mit ausgefeilten Funktionen, die die Probleme der Anwender dennoch nicht lösen.

Seit etwas mehr als einem Jahrzehnt arbeiten Entwickler daran, eine neue Vorgehensweise zu finden. Ihr Ziel: Hervorragende Software zu entwickeln, die die Anwender gerne nutzen. Zu den Methoden der agilen Programmierung zählt zum Beispiel die testgetriebene Entwicklung. Dabei entwickeln Programmierer einen Software-Test nicht nach oder parallel zu dem zu testenden System, sondern vorher. Sie erhoffen sich davon, dass weniger Fehler übersehen werden. Typisch für die agile Entwicklung ist außerdem die Extremprogrammierung. Grundlage dafür ist die Kommunikation zwischen Entwicklern und Anwendern. Eine Software entsteht dabei in wiederholten kleinen Schritten bei ständiger Rückkopplung zwischen Anbieter und Kunde.

Agile Entwicklung ist längst kein exotisches Phänomen mehr. Laut einer Untersuchung von Evans Data arbeitet mehr als die Hälfte der Software-Entwickler in Nordamerika mit agilen Methoden. Doch fragt man die Entwickler, ist dieser Ansatz bei den IT-Entscheidern häufig noch nicht angekommen. Die Programmierer wünschen sich gleich in mehreren Punkten mehr Verständnis.

Punkt 1: Zunächst gilt es zu verstehen, dass agile Methoden in der Software-Entwicklung zu besseren Ergebnissen führen. Die Programmierer verfolgen diesen Ansatz nicht etwa aus Spaß, sondern weil sie sich davon Vorteile versprechen, die auch im Sinne des CIOs sein dürften. So ermöglicht agile Software-Entwicklung laut Kelly Anderson, Entwickler bei Sonic Innovations, höhere Qualität - was letztlich Kosten sparen helfe. Weil die IT-Abteilung während der Entwicklung auf veränderte Anforderungen eingehen kann, lassen sich spätere, kostspielige Änderungen vermeiden.

Punkt 2: Wer Software nach den Grundsätzen agiler Entwicklung herstellen lassen will, muss sich die dafür nötige Denkweise aneignen. Eingefahrene Denkmuster müssen in Frage gestellt werden, wie der Berater Mike Sutton von der Beratungsfirma Wizewerx sagt. Oft sei das schmerzhaft. Das ganze Unternehmen und der einzelne sind gezwungen, sich mit ihren Schwächen auseinanderzusetzen und Verhaltensweisen zu ändern. "Plötzlich müssen die Entwickler miteinander und mit dem Rest der Welt reden - Himmel, hilf!" kommentiert Sutton scherzhaft die nötigen Veränderungen in der Kommunikationskultur.

Einen Lernprozess müssen Manager durchmachen, die das althergebrachte Modell der Entwicklung gewohnt sind. Wie bei einem Wasserfall, der sich über mehrere Stufen einen Berghang abwärts ergießt, laufen dabei die einzelnen Schritte hintereinander ab: Zuerst werden die Anforderungen analysiert, dann wird programmiert. Darauf folgen die Implementierung, Tests, die Integration der neuen Software und schließlich deren Betrieb. Agile Entwicklung nimmt hingegen nicht diesen immer gleichen Weg von oben nach unten - eine Philosophie, an die sich mancher CIO noch gewöhnen muss.

Ständiger Austausch

Punkt 3: Agile Prozesse verändern die Abläufe in der Software-Entwicklung erheblich. Entwickler und Anwender arbeiten zusammen und stehen in ständigem Austausch miteinander. Das kann nur zum Erfolg führen, wenn die Beteiligten offen und ehrlich miteinander umgehen. Die notwendige enge Abstimmung miteinander kann auch bestehende Probleme in der Kommunikationskultur innerhalb eines Unternehmens offenlegen. Wichtig ist es dabei, zu verstehen, dass die agile Entwicklung nicht Ursache dieser Schwierigkeiten ist, sondern diese nur besonders deutlich offenlegt. Aufgabe des CIOs ist es in diesem Fall, das Problem anzugehen. Ansonsten geht ein wichtiger Vorteil verloren, den agile Entwicklung eigentlich bringen soll, wie Steven Gordon, Trainer für agile Software-Entwicklung, sagt.

Zur Startseite