Über den wirtschaftlichen Nutzen von Agilität

… so der Titel des Vortrags, den Christian Setzwein gestern Abend beim Treffen der Gesellschaft für Informatik, Regionalgruppe Bremen Oldenburg hielt. Da ich ziemlich viele Dinge mitgeschrieben hab, wollte ich euch einige der Ausführungen nicht vorenthalten.

Der Einstieg in den Vortrag begann mit einem Umfrageergebnis, demzufolge 40% aller Befragten das Scheitern von Softwareprojekten auf unklare Ziele und Anforderungen zurückführten. Dies spricht zunächst gegen einen agilen Ansatz in der Entwicklung, da man iterativ entwickelt und die Anforderungen erst im Projektverlauf klar herausarbeitet. Demgegenüber steht allerdings das Bestreben von Unternehmen, Projekte innovativ und effizient durchzuführen. Des Weiteren erfordern die schnellen Änderungen der Marktsituation und die dadurch entstehende Unsicherheit in der Planung eine ebenso schnelle Anpassung an die Gegebenheiten. Diese Unsicherheiten sind nicht nur in Bereichen wie dem Internet gegeben, wo die Entwicklung augenscheinlich sehr schnell voranschreiten, sondern auch dort, wo es auf den ersten Blick eher konservativ zugeht: Gesetzesänderungen können beispielsweise Teile von Bürosoftware oder ähnlichem plötzlich veralten lassen.

Durch das Bestreben innovativ sein (im Sinne von „Tun wir die richtigen Dinge?“) und andererseits effizient („Tun wir die Dinge richtig?“) arbeiten zu wollen entsteht ein Spannungsfeld, da Innovation freies, uneingeschränktes Nachdenken fordert, welches der strikten Planung und dem plangemäßen Handeln (Effizienz) gegenübersteht. Unternehmen kommen oft an den Punkt, wo sie auf Grundlage unklarer und unsicherer Situationen handeln und Entscheidungen treffen müssen. Solche Entscheidungen werden möglichst vermieden oder durch das Absichern durch externe Dienstleister gestützt, da es schwer fällt, den einmal eingeschlagenen Weg zu verlassen. Da dies manchmal jedoch notwendig ist, sollte die Durchführung von Projekten als kollektiver Lernprozess verstanden werden, was sich durch den Einsatz agiler Methoden (bspw. Review, Retrospektive) unterstützen lässt.

Wahl der Methode

Um die Unterschiede klassischer und agiler Ansätze herauszuarbeiten, wurden die Prinzipien des Wasserfallmodells denen von Agilität gegenübergestellt.

Dem Wasserfallmodell liegt die Annahme zu Grunde, dass alle Informationen vorhanden sind und sich das Projekt daher im Voraus planen lässt. Den Input vom Kunden erhält man vor dem Entwicklungsbeginn und Änderungen im Projektverlauf werden als Ausnahme angesehen. Der innovative Part des Produkts wird also vorher festgelegt und nach einem darauf ausgelegten Plan effizient erarbeitet. Das führt dazu, dass am Ende ein vollständiges Produkt auf den Markt gebracht werden kann/soll.

Der agile Ansatz hingegen wird als Methode zur Umsetzung von Innovation und Effizienz in gewünschter und definierter Qualität ins Feld geführt: Es geht um die möglichst schnelle Entwicklung eines Produkts, mit dem die Markttauglichkeit geprüft werden kann. Kontinuirliches Feedback von Kunden- und evtl. auch Nutzerseite sorgt für die Innovation und Markttauglichkeit des zu entwicklenden Produkts. Als hervorragendes Beispiel aus dem Webbereich wurde hier flickr angebracht: Bei der Entwicklung einer eigentlich ganz anderen Anwendung stellte sich schon in einer frühen Phase des Projekts heraus, dass es eigentlich die Fotos sind, die die Nutzer interessieren - man nahm eine Anpassung des Business Case vor und die anschließende Erfolgsgeschichte kennt wahrscheinlich jeder.

Die zyklenhafte Umsetzung der wichtigsten Features führt also nicht nur zu einer Kontrolle der Markttauglichkeit, sondern verbindet auch Innovation und Effizienz in der Entwicklung. Wird die iterative Zielfindung dem antizipierten Ziel gegenüber vorgezogen, so entstehen automatisch auch weitere Vorteile: Ein marktfähiges Teilprodukt ermöglicht nicht nur die frühzeitige Testbarkeit, sondern auch schon dessen Verkauf - oder wirtschaftliche Vorteile durch ein schnelles Positionieren am entstehenden Markt.

Als Abschluß des Abschnitts folgte die wichtige Bemerkung, dass Agilität nicht heisst, dass man nicht vorher weiss wo man hin will, sondern dass man Veränderungen auf dem Weg dorthin zulässt.

Agile Bausteine

Abschließend wurden die einzelnen agilen Muster näher in Bezug auf ihren Beitrag zu Innovation und Effizienz und dem daraus entstehenden wirtschaftlichen Nutzen erläutert.

Beiträge zu Innovation leisten selbstorganisierte Teams, wie sie beispielsweise in Scrum eingesetzt werden: Die gemeinsame Verantwortung für ein Projekt fördert das Vertrauen der Teammitglieder untereinander - tägliche Statusmeetings vernetzen ihre Kompetenzen und lassen gleichzeitig neue Ideen entstehen. Der dort stattfindende, direkte Informationsaustausch trägt des Weiteren auch zur Effizienzsteigerung bei. Die iterative Veränderung von Plänen schafft einen hohen Qualitätsstandard und ermöglicht die leichte Anpassung des Produkts, so dass eine Steuerung der Entwicklung durch Nähe zum Kunden/Markt möglich wird. Durch die Implementierung von Lernzyklen wird kontinuirliches Feedback (z.B. auch durch automatisierte Tests) gewonnen, was nicht nur der Innovation, sondern auch der Effizienz des Prozesses beiträgt: Iterationen und Meetings fordern ergebnisorientiertes Arbeiten und verhindern das nicht-entscheiden. Durch die Messung (z.B. durch Continuous Integration) und sofortige Korrektur von Fehlentwicklungen ist man näher am lauffähigen Produkt und kann dieses schneller ausliefern.

Abschließende Bemerkungen

Was auch in der anschließenden Fragerunde herausgestellt wurde waren die Punkte, dass der agile Ansatz nur die Muster liefert, das alleine aber (natürlich) noch keinen Erfolg schafft. Es ist immer notwendig, diese Muster an die eigenen Projektbedürfnisse anzugleichen und zu sehen, wie sie einem vielleicht auch nur teilweise weiterhelfen können. So ist Agilität in Reinkultur nur sehr bedingt universell anwendbar, da sie auch ein ganzheitlich agiles Unternehmen fordert.

Agilität lässt sich auch im Großen einsetzen (in Großprojekten beispielsweise Scrum of Scrums), erlaubt dort jedoch weniger Freiheitsgrade. Einzelne agile Muster helfen jedoch in allen Projektsituationen weiter, um das Projekt besser in den Griff zu bekommen.

Bleibt abschließend eigentlich nur noch zu sagen, dass es ein sehr informativer und gut gestalteter Vortrag war, für den es sich gelohnt hat, dabei gewesen zu sein :)

iOS app for GitHub

iOctocat

ist GitHub für die Hosentasche - deine Projekte und das was dort passiert immer dabei mit deinem iPhone und iPod Touch.
Die App ist