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.
Punkt 4: Schwierig kann es für einen IT-Manager sein, ein nach den Prinzipien der agilen Entwicklung laufendes Projekt zu überwachen oder den aktuellen Stand zu erfahren. Denn es liegt in der Natur dieses Ansatzes, dass Entwickler und die späteren Anwender sich ständig miteinander abstimmen und ein Programm dabei gemeinsam entstehen lassen. Anforderungen und Zeitpläne können sich deshalb laufend ändern. Das muss allerdings nicht heißen, dassagile Entwicklung Chaos verursacht. Wichtig ist eine lückenlose Dokumentation der Arbeitsschritte und der Kommunikation mit dem Anwenderkunden. Damit die Führungsebene den Überblick bewahrt, hilft es außerdem, wenn ein fester Ansprechpartner im Team immer über den Fortgang eines Projekts im Bilde ist und auch noch so detaillierte Fragen des CIOs dazu beantworten kann.
Unterstützung statt Druck
Punkt 5: Einen Fehler machen CIOs, wenn sie sich nach dem Umstieg auf agile Entwicklung zu schnell Erfolge erwarten. Denn die zeigen sich nicht sofort. "Vertrauen Sie dem Team, lehnen Sie sich zurück und lassen Sie die Programmierer ihr Ding machen", rät James Kricfalusi von TEK-Systems. Ein IT-Entscheider tut gut daran, seine Mannschaft nicht unter Druck zu setzen sondern ihr vor allem in der Anfangsphase immer wieder Unterstützung zu signalisieren.
Punkt 6:Als Wunder- oder Allheilmittel darf agile Entwicklung aber nicht verstanden werden. Schlechte Programmierer werden dadurch nicht plötzlich zu guten, mahnt etwa Entwickler Kelly Anderson. Dem Schlagwort hinterher zu rennen, weil es gerade im Trend liegt, lohnt sich jedenfalls nicht. Um agile Entwicklung erfolgreich einzuführen, braucht ein Team zum einen Zeit zum Lernen. Außerdem braucht eine Entwickler-Mannschaft dafür viel Selbstdisziplin und darf Details nicht aus dem Auge verlieren, wie der Berater James Shore anmerkt.
Punkt 7:Als letzten Punkt gilt es zu beachten, dass der Erfolg agiler Software-Entwicklung von den Menschen abhängt, die sich damit beschäftigen. Nicht für jedes Entwicklungs-Team ist der Ansatz geeignet, wie die Erfahrung zeigt. Nach Ansicht von John Miano vom Software-Unternehmen Colosseum Builders braucht es für die enge Zusammenarbeit Charaktere, die auch einmal über die persönlichen Macken ihrer Kollegen hinwegsehen können. Andere Programmierer sind dagegen der Ansicht, dass agile Software-Entwicklung den Team-Geist fördert. Schnell auf neue Anforderungen reagieren zu können und so regelmäßig kleine Erfolge zu erleben, hebt demnach die Laune der einzelnen Team-Mitglieder.
Festzuhalten bleibt, dass eine Menge Arbeit notwendig ist, um sich dem Konzept agile Software-Entwicklung zu nähern. Ohne größere Veränderungen in der Art und Weise, wie Programme entwickelt werden und wie die IT-Mannschaft Applikationen konzipiert, geht das nicht. Allerdings lohnt sich die Mühe.