Softwareentwicklung: Was ist agile Produktentwicklung?

Agile Softwareentwicklung – bald unabdingbar? -Quelle: Pixabay

Der Hype um agile Produktentwicklung ist überall spürbar. Nicht nur in Startups, sondern längst auch in etablierten Unternehmen haben sich agile Softwareentwicklung und agile Methoden gegenüber der klassischen Produktentwicklung durchgesetzt. Ein Extrembeispiel ist die BMW Group, die als Vorreiter auftreten will und die BMW IT komplett auf eine agile Produktentwicklung umgestellt hat. Auch in klassischen Branchen wie dem Finanzsektor sind agile Methoden auf dem Vormarsch.

Um das zu verstehen, muss man sich zunächst die Frage stellen, was agile Softwareentwicklung überhaupt ist – gibt es überhaupt eine genaue Definition? – Jein. Im Prinzip handelt es sich um einen Oberbegriff für verschiedene Projektmanagement-Methoden. Sie stehen im Kontrast zu den klassischen IT-Projektmanagement-Methoden (der Wasserfallmethodik), sind aber nicht nur auf die IT begrenzt. Da sich agile Vorgehen grundsätzlich dadurch auszeichnen, dass die Prozesse iterativ und schlank gestaltet werden und durch Rückkopplung das unternehmerische Risiko reduzieren sollen, sind sie auf viele weitere Bereiche anwendbar. Insbesondere auch, da durch die Methoden schnellere und bessere Resultate erzielt werden sollten.

Um kein riesiges Fass aufzumachen, haben wir uns hier allerdings ausschließlich auf die agile Projektentwicklung in der IT, also die agile Softwareentwicklung konzentriert. Um herauszufinden, ob der Hype begründet ist, haben wir für Sie eine umfangreiche Übersicht zu agilen Methoden, der agilen Softwareentwicklung im Allgemeinen und dem Vergleich zur Wasserfall-Methode erstellt.

 

Wie Agilität grundsätzlich funktioniert und wie sie nicht funktioniert

Agile Entwicklung als Zyklus. Quelle: Pixabay

Um agile Produktentwicklung realisieren zu können, muss man verstehen, was sich hinter dem Begriff der Agilität verbirgt. Viele Unternehmen wollen im Rahmen der Organisations-Transformation agiler werden und glauben, dies einfach über agile Methoden erreichen zu können. Das ist allerdings ein Trugschluss, denn das alleine reicht keinesfalls aus. Agilität ist vielmehr ein Mindset, eine Frage der Unternehmenskultur, eine Geisteshaltung.

Agilität ist mittlerweile in aller Munde. Es ist also nicht weiter verwunderlich, wenn viele Unternehmen versuchen agil zu werden. Häufig ist dieses Unterfangen allerdings nicht von Erfolg gekrönt. Warum? Viele Unternehmen denken, sie würden agil – also schnell und flexibel – indem sie agile Methoden einsetzen. Das funktioniert so leider nicht, denn das alleine reicht nicht.

Agilität ist ein Mindset, eine Geisteshaltung. Und wenn wir an unserer Haltung nichts ändern, dann werden wir auch nicht agil. Nicht umsonst sprießen derzeit Plattformen wie Masterplan aus dem Boden, deren Ziel es ist, Unternehmen bei der Schaffung des korrekten Mindsets zu unterstützen. Im Rahmen der Digitalisierung hat die Umsetzung agiler Methoden enorm an Fahrt aufgenommen – angetrieben durch junge Startups und Digital-Unternehmen. Ohne ein agiles Mindset lassen sich keine agilen Methoden einführen. Wenn ein Unternehmen Design Thinking oder Scrum als Methode einführt, die alten hierarchischen Strukturen in der Unternehmenskultur aber erhalten bleiben, kann das Konzept nicht funktionieren.

Um eine agile Produktentwicklung realisieren zu  können, muss sich die Art der Unternehmenskultur, der Unternehmensführung und der Prozesse, Strukturen und Entscheidungswege in traditionellen, klassisch strukturierten Unternehmen, radikal verändern.

 

Wasserfallentwicklung vs. agile Produktentwicklung

Viele Experten prophezeien das Aussterben der Wasserfall-Methodik durch Implementierung agiler Vorgehensweisen. Damit hat sich bereits im Jahr 2013 ein Artikel der Computerwoche befasst. Bis heute ist dies aber in vielen Unternehmen noch nicht bis in die oberen Etagen vorgedrungen.

Bei einem Wasserfallprojekt in der IT werden Meilensteine entlang der Konzeptionsphase und dem Design gesetzt. Auch Test- und Abnahmephase sind solche Meilensteine. Sie können sehr weit auseinanderliegen, sodass es sehr lange dauert, bis der erste Code überhaupt geschrieben wird und das Produkt fertig entwickelt ist. Anpassungen während der Entwicklungsphase sind kaum möglich.

Da es aber viel eher der Natur des Menschen entspricht, sich auf kurzfristige Ziele zu konzentrieren, sodass man sich bei großen Projekten im Detail verliert und das große Ganze aus den Augen verliert, setzen agile Produktentwicklungsmethoden genau hier an. Jeder Meilenstein liegt bei einem Scrum-Projekt beispielsweise maximal einen Sprint entfernt, wobei der Fokus auf die schnelle Umsetzung und vor allen Dingen Validierung der Funktion liegt. Zwischenziele werden zu Anreizen und machen die Entwicklung intuitiver und flexibler.

 

Von Scrum, Kanban und xTreme Programming

Bei der Frage ‚Was ist agile Produktentwicklung?‘ muss man sich auch mit den verschiedenen Methoden befassen, denn derer gibt es eine ganze Menge. Die drei wichtigsten sind sicherlich Scrum, Kanban und xTreme Programming, die wir im Folgenden kurz zusammenfassen möchten.

 

Agile Methoden Übersicht

Scrum

Der Scrum-Prozess. Quelle: Wikipedia (Lakeworksderivative work: Sebastian Wallroth)

Scrum bedeutet wörtlich „Gemenge“. Der Begriff kommt aus dem Rugby und meint bei der Softwareentwicklung eine Vorgehensweise, die bereits 1995 von Ken Schwaber, Jeff Sutherland und Mike Beedle entwickelt wurde. Hierbei gibt es in der Entwicklung sogenannte Scrum Teams, denen drei Rollen zugewiesen werden: Die Product Owner, den Scrum Master und die Entwicklergruppe, die aus sieben Entwicklern bestehen sollte.

Der Ansatz ist empirisch, inkrementell und iterativ. Es wird das Ziel verfolgt, schnell und kostengünstig hochwertige Produkte entwickeln zu können. Daher besteht ein Team immer aus maximal drei bis neun Entwicklern. Statt Meetings spricht man hier von Ereignissen oder Events, für die es immer feste Zeitfenster gibt. Alles ist zyklisch angeordnet und geht vom Produkt-Backlog (die umzusetzenden Aufgaben und Anforderungen für das Produkt) über den Sprint-Backlog (die für den nächsten Sprint relevanten Aufgaben) bis hin zu den einzelnen Sprints, die maximal 30 Tage andauern. Ziel eines jeden Sprints ist ein lauffähiges Produkt, das dann validiert und verbessert werden kann.

Dabei ist der Scrum Master für das Einhalten der Prozesse zuständig und der Product Owner ist der Fachexperte. Häufig gibt es tägliche kurze Events in Form von Meetings und über Retrospective und Reviews wird stets ein Rückblick auf den Prozess und die Rückmeldungen beibehalten.

 

Kanban

Typisches Kanban Board. Quelle: Wikipedia (CC BY-SA 4.0)

Die Kanban Methode ist eine Methode, die ursprünglich vom Automobilhersteller Toyota entwickelt wurde. Ziel war und ist es, Verbesserungsansätze schnell erkennen zu können und für einen kontinuierlichen Workflow zu sorgen. Das Herzstück ist dabei das Kanban Board. Einzelne AUfgaben werden auf Kärtchen notiert und je nach Status in die Spalten ‘To Do’, ‘In Progress’ oder ‘Done’ verschoben. Je Karte gibt es nur einen Bearbeiter und es wird meist ein Aufgabenlimit je Mitarbeiter definiert. Das Kanban Board selbst kann sowohl in physischer als auch digitaler Form geführt werden.

 

xTreme Programming

Im Vergleich zu Scrum oder Kanban gibt es beim xTreme Programming keine festen Regeln. Der Ansatz geht davon aus, dass der Kunde noch keine genauen Kenntnisse der Anforderungen haben kann, weshalb Änderungen im Verlauf des Projekts zwingend notwendig sind. Um eine Kostenexplosion zu verhindern, müssen schnelle agile Produktentwicklungsmethoden umgesetzt werden. Während des gesamten Projekts stehen daher Kunden, Entwickler und Manager im stetigen Austausch auf Augenhöhe.

Dazu gibt es beispielsweise gemeinsame Meetings, in denen Rahmenbedingungen gesetzt werden. Das Hauptziel hierbei ist die effiziente Zeitnutzung, denn in jedem Meeting werden Umfang, Art und Dauer genau festgesetzt. Diese Zeiteinheiten bilden die Struktur bei dieser Art der agilen Softwareentwicklung.

 

Weitere agile Entwicklungsmethoden

Darüber hinaus gibt es weitere Methoden für die agile Produktentwicklung, wie beispielsweise, DSDM, Agile Enterprise, Adaptive Software Development, Crystal, FDD (Feature-Driven Development) Pragmatic Programming, Unified Process oder RAD.

 

Was alle agilen Methoden gemeinsam haben

Zusammenarbeit im Team. Quelle: Pixabay

Da sich die Anforderungen an Software verändern, haben die verschiedenen Methoden viele Gemeinsamkeiten, auch wenn sie an unterschiedlichen Punkten im Entwicklungsprozess ansetzen. Jede agile Softwareentwicklung geht stets vom Kunden aus und zielt auf Geschwindigkeit, Effizienz, Feedback vom Kunden und Prototypen während der Entwicklung ab. Dazu wird stets iterativ – also in Annäherungen – gearbeitet, die Reaktion des Kunden / des Markts wird stets mit einbezogen und es gibt selten ein klares Ziel.

 

Die vier wichtigsten Werte agiler Ansätze

Daraus lassen sich vier grundlegende Ansätze der agilen Methoden als Übersicht zusammenfassen:

  1. Mensch und Interaktion sind wichtiger als ein Werkzeug
  2. Die Zusammenarbeit mit dem Kunden ist wichtiger als Rahmenbedingungen
  3. Eine lauffähige Software ist wichtiger als eine tiefgreifende Dokumentation
  4. Flexibles Reagieren auf Veränderungen und stetige Optimierung sind wichtiger als ein fester Plan

 

Vor- und Nachteile agiler Methoden

Trotz aller Vorteile gibt es auch Risiken, die mit agilen Methoden einhergehen.

Vorteile
  • Schnellere Resultate durch inkrementelle Entwicklung
  • Bessere Qualität durch einzelne Etappenziele
  • Kommunikationsvorteile durch Kontakt zu Kunden
  • Risikominimierung durch schnelles Erkennen von Fehlern
  • Höhere Rentabilität da Teilergebnisse bereits Umsatz generieren
Nachteile
  • Unsicherheit, da das Endergebnis häufig unklar ist.
  • Viel Zeit für Kommunikation, Meetings und Feedback-Runden
  • Soft Skills sind deutlich wichtiger, da viel kommuniziert wird.
  • Der Scope ändert sich ständig, sodass Projekte ausufern können

 

Agile Methoden und agilen Techniken

Die verschiedenen Techniken haben sich im Laufe der Zeit entwickelt, da vielfältige und abstrakte Werte und Prinzipien in die Praxis umzusetzen sind. Als Techniken können die einzelnen konkreten Bestandteile der einzelnen Methoden wie Task Boards, Daily-Standup-Meetings oder User-Stories verstanden werden. Aus den Techniken haben sich also die verschiedenen Methoden wie Extreme Programming oder Scrum. Durch die universelle Einsetzbarkeit und Anpassungsfähigkeit agiler Techniken kommen agile Produktentwicklungsmethoden nicht nur in der Softwareentwicklung zum Einsatz, sondern lassen sich auch – je nach Anforderung – mehr oder weniger gut auf andere Bereiche übertragen.

 

Unterschiede zwischen klassischen und agilen Methoden

Wichtig zu verstehen ist, dass die verschiedenen agilen Methoden, Techniken und Prinzipien der agilen Produktentwicklung jeweils den Anforderungen entsprechend zu schlüssigen Prozessen kombiniert werden müssen, denn jedes Projektumfeld gestaltet sich anders.

Durch eine Gegenüberstellung der Unterschiede zwischen der klassischen Produktentwicklung und Softwareentwicklung im Gegensatz zur agilen Softwareentwicklung lassen sich diese Anforderungen etwas besser erkennen.

Klassische Produktentwicklung Agile Produktentwicklung
Anforderungen von Beginn an klar Anforderungen zunächst oft unklar
Laufende Änderungen schwierig Änderungen während des Projektablaufs
Hohe Kosten für späte Änderungen Geringere Kosten für späte Änderungen
Technische Anforderungsbeschreibung Anforderungsbeschreibung aus Kundensicht
Sequenzielle Entwicklung Iterativer Entwicklung
Starrer Prozess Fortlaufender Prozess durch Verbesserungen
Kunde nicht eingebunden Kunde in Zwischenergebnisse eingebunden
Große Teams sind möglich Zwangsläufig kleinere Teams notwendig
Hierarchische Strukturen Selbstorganisierte Teams
Viele Spezialisten-Teams Cross-funktionale Teams
Aufgaben von oben zuteilen Aufgaben selbstständig übernehmen
Viele Dokumentationen Viel informelle Kommunikation
Aufwandsschätzung durch Experten Aufwandsschätzung im Team

 

Fazit

In Zeiten, in denen sich Anforderungen durch die Digitalisierung immer schneller verändern und die Geschwindigkeit zunimmt, werden agile Methoden immer wichtiger. Dies gilt für den IT-Bereich, schwappt aber auf andere Bereiche automatisch über, da für eine erfolgreiche Umsetzung agiler Produktentwicklung und agiler Programmierung zwangsläufig auch eine Anpassung der Unternehmenskultur und des Mindset erforderlich werden. Entsprechend werden agile Methoden und Konzepte in Zukunft im Rahmen des digitalen Wandels noch weiter an Bedeutung gewinnen.

Wer hier Schritt halten will, sollte sich besser früher als später ernsthaft mit dem Thema befassen, denn die Vorteile überwiegen die Nachteile insbesondere im Bereich der digitalen Produkte ganz deutlich.

Write a comment