Programmierer besser führen

Die 7 Geheimnisse agiler Software-Entwicklung

24.04.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.
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.

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.

5 Gründe für den agilen Ansatz -
Fünf Gründe für den agilen Ansatz
Neue Methoden der Softwareentwicklung begeistern die Mitarbeiter und die Kunden. Da stellt sich die Frage, woher es kommt, dass "Agilität" derartig beliebt ist? Alexander Ockl nennt Fünf Gründe:
Weniger Prozess - dafür mehr Mensch
Offenbar haben wir gelegentlich das Prozessrad zu weit gedreht. Mit Know-how in den Prozessen wollten wir gute Software wie am Fließband im "billigen Ausland" herstellen lassen. Probleme lassen sich mit noch ausgefeilteren Prozessen und Rollen beseitigen, so dachten wir. Aber inzwischen wissen wir, dass wir am so genannten Fließband meist individuell arbeiten. Und talentierte Mitarbeiter haben auch im Ausland inzwischen ihren Preis.
Persönliche Motivation statt Existenzangst
In der agilen Welt zählt der Mensch wieder etwas. Statt verteilt zu sitzen, schauen sich agile Teams wieder in die Augen. Effektive, direkte Kommunikation ersetzt endlose, anonyme Telefonkonferenzen und überlaufende E-Mail-Postkörbe. Größerer Gestaltungsspielraum und überschaubare Rollen geben Mitarbeitern das Gefühl, endlich wieder etwas bewegen zu können. Das setzt Kräfte frei. Und motiviert, anstatt zu frustrieren.
Entfaltete Stärken statt Fesseln
Endlich wieder kreativ sein und nicht starre Prozesse befolgen müssen! Kein Wunder also, dass gerade Entwickler und Analysten diesen Ansatz lieben. Im agilen Umfeld sind sich alle bewusst, wie wichtig ein gut zusammengestelltes Team ist. Das übersehen wir in der "alten IT-Welt" häufig - zwischen den vielen Prozessdetails und virtuellen Teams. Unsere Kunden freuen sich auch, denn schließlich steht wieder die Lösung ihrer Probleme im Vordergrund.
Gemeinsam entwickelte Arbeitsweise
Neue Prozesse bedeuten in unserem herkömmlichen Alltag häufig neue Rollen. So entstehen Teamveränderungen und Umstrukturierungen. Die vorgegebene Arbeitsweise passt aber vielfach nicht zum Team. Agile Methoden wie Scrum zeigen, dass es auch anders geht. Den "Toyota-Weg" als Vorbild, organisieren sich schlanke Teams innerhalb eines groben Rahmens am besten selbst.Es lohnt es sich, ein funktionierendes Team - wie im Fußball - nicht zu stark zu verändern. Gemeinsam entwickelt, richtet sich die Arbeitsweise nach den Möglichkeiten der Mitarbeiter.
Eine nachvollziehbare Teamleistung
Schreit unser Umfeld nach Agilität, so sollten wir nicht dagegen reden, sondern genau hinschauen. Agilität und gute Prozesse wollen das Gleiche. Müssen wir dennoch verteilt arbeiten, so sollten wir unbedingt auf die menschliche Komponente achten. Frei nach Felix Magath bei der Vorstellung des Spielers Raul sollte es "unsere Verpflichtung sein", die Mitarbeiter "so in Szene zu setzen", dass Sie "ihre Fähigkeiten voll ausspielen können". Andernfalls schließt auch Raul keine Tore, sondern wird zu einem mittelmäßigen und schließlich frustrierten Mitspieler.