Was ist Adaptive Software Development (ASD)? Alles Wissenswerte über das agile Framework

ASD IST EIN FLEXIBLER ANSATZ FÜR DIE AGILE ENTWICKLUNG KOMPLEXER SOFTWARESYSTEME, DER EMERGENCE, KONTINUIERLICHE TESTS, TIEF INTEGRIERTES BENUTZERFEEDBACK UND DIE ZUSAMMENARBEIT FÖRDERT.

Adaptive Software Development (ASD) – zu Deutsch: adaptive Softwareentwicklung – ist ein agiles Softwareentwicklungs-Framework, das Anfang der 90er Jahre von den Projektmanagern John Highsmith und Sam Bayer entwickelt wurde. Hierbei handelt es sich um eine Weiterentwicklung des agilen Rapid Application Development (RAD) Frameworks, das auf etwa einmonatige Projekte ausgelegt ist, die in einwöchige Perioden unterteilt sind (vergleichbar mit Scrum-Sprints).

Highsmiths Buch Adaptive Software Development, das erstmals im Jahr 2000 veröffentlicht wurde, beschreibt die Theorie und Anwendung des Agile-Frameworks. Der Autor behauptet, dass durch ASD „dem RAD-Ansatz Strenge und Disziplin hinzugefügt werden, um diesen an die Unsicherheit und Komplexität realer Unternehmungen anzupassen“.

Das Framework besteht aus drei Phasen:

  1. Spekulation
  2. Zusammenarbeit
  3. Lernen

Was ist das Besondere an Adaptive Software Development (ASD)?

Als agiles Softwareentwicklungs-Framework legt ASD einen besonderen Wert auf Benutzerfeedback und Zusammenarbeit, um die zukünftigen Iterationen des Softwareentwicklungsprozesses zu definieren.

ASD basiert auf dem Ansatz, dass komplexe Systeme wie die Softwareentwicklung keine, wie allgemein angenommen, komplexen Regeln benötigen. Highsmith argumentiert, dass wenige einfache Regeln ausreichen, um komplexe Systeme zu erstellen und dass ein minimalistischer Ansatz sogar die Effizienz verbessert.

Ein weiteres einzigartiges Merkmal der adaptiven Softwareentwicklung ist die Überzeugung, dass Softwareentwicklung „Spaß“ machen sollte und dass die beste Software zufällig entsteht. Das Zusammenkommen von Umständen, die zu großartiger Software führen, wird als „Emergence“, zu Deutsch: Entstehung, bezeichnet.

Das Kollaborations- und Produktivitäts-Tool Slack, das am schnellsten wachsende SaaS in der Geschichte und bereits ein börsennotiertes Unternehmen, ist ein großartiges aktuelles Beispiel für das, was Highsmith als Emergence bezeichnet. Slack ist das Ergebnis eines Nebenprojekts von einem Team, das an einem kommerziell erfolglosen Gaming-Produkt arbeitete.

Die Notwendigkeit hatte das Team dazu veranlasst, ein Kollaborations-Tool zu entwickeln, das ihren Anforderungen gerecht wird, da sie mit keinem der bestehenden Produkte auf dem Markt zufrieden waren. Glitch – das eigentliche Spiel, dank dessen Entwicklung Slack erfunden wurde – war ein kapitalintensiver Versuch, ein neues und originelles Massively-Multiplayer-Online-Rollenspiel (MMORPG) zu entwickeln und hat sich im Endeffekt als Flop herausgestellt. Aber das Tool, das zur Erleichterung der Zusammenarbeit entwickelt wurde, wurde ein voller Erfolg. Nach der Börsennotierung im Juni 2020 ist Slack, das erst 2009 gegründet wurde, heute ein Unternehmen mit einem Wert von rund 25,5 Milliarden US-Dollar.

Slack wurde berühmt dafür, innerhalb von nur 8 Monaten eine Bewertung von 1 Milliarde US-Dollar zu erreichen, ganz ohne Ausgaben für traditionelle Werbung und sogar ohne Chief Marketing Officer. Tatsächlich hatte das firmeneigene Team die frühen Iterationen von Slack monatelang intensiv genutzt und neue Funktionen einfach nach Bedarf entwickelt.

Slack wurde möglicherweise nicht anhand des Adaptive Software Development Frameworks entwickelt. Aber die Art und Weise, wie es in kurzen Iterationen veröffentlicht wurde sowie detailliertes Benutzer-Feedback in Kombination mit zufälliger Entwicklung sprechen für „Emergence“.

Das Slack Handbook for Software Development Teams liest sich wie ein Elevator-Pitch für das Framework, das in Highsmiths Buch Adaptive Software Development so ausführlich beschrieben wird.

Das Adaptive Software Development Framework

Das ASD-Framework ist auf wenige Richtlinien reduziert, um Ordnung innerhalb der Softwareentwicklung und gleichzeitig Freiraum für Emergence zu schaffen. Emergence wird anstelle von Determinismus ausdrücklich gefördert.

ASD ist ein ergebnisorientiertes Framework und legt mehr Wert auf die Qualität der Ergebnisse als auf die durchgeführten Aufgaben.

Diese drei Phasen spiegeln die dynamische Natur der adaptiven Softwareentwicklung wider. ASD ersetzt Determinismus ausdrücklich durch Emergence. Es geht weit über eine bloße Änderung des Lebenszyklus hinaus und setzt am Führungsstil an. Adaptive Softwareentwicklung hat einen dynamischen Lebenszyklus, der aus Spekulation, Zusammenarbeit und Lernen besteht.

Kurze, adaptive Entwicklungszyklen verhindern, dass mangelnde Aufgabenorientierung entsteht. Ein für ein agiles Framework besonderer Ansatz besteht in der Tatsache, dass die Phasen des Entwicklungslebenszyklus auf der älteren Wasserfall-Methodik beruhen, die heutzutage durch iterative Ansätze ersetzt wurde.

Die Phasen Planung, Erstellung und Ausführung der Wasserfall-Methodik wurden einfach durch Spekulation, Zusammenarbeit und Lernen ersetzt. Die Phasennamen spiegeln absichtlich die Unvorhersehbarkeit wider, die ASD bei komplexen Systemen voraussetzt.

Der Lebenszyklus der adaptiven Softwareentwicklung verlagert den Fokus auf Ergebnisse, die als Anwendungsfunktionen und nicht als Aufgaben definiert sind.

Die drei Phasen der adaptiven Softwareentwicklung

Die drei Phasen der adaptiven Softwareentwicklung befassen sich mit den folgenden zugrunde liegenden Behauptungen:

  • Zusammenarbeit ist schwierig, ohne zu lernen. Lernen ist schwierig ohne Zusammenarbeit.
  • Spekulation ist schwierig, ohne zu lernen. Lernen ist schwierig ohne Spekulation.
  • Spekulation ist schwierig ohne Zusammenarbeit. Zusammenarbeit ist schwierig ohne Spekulation.

Schauen wir uns die drei Phasen des ASD etwas genauer an:

Spekulation

Das ASD-Framework lehnt den Begriff „Plan“ für die erste Phase seines Lebenszyklus als zu deterministisch und zuversichtlich in Bezug auf das Endergebnis ab. An seine Stelle tritt die dementsprechend eine offene Spekulationsphase, die dem Projekt Raum für Innovationen lässt.

Die Spekulationsphase des ASD-Lebenszyklus setzt Planung und Zielsetzung für den anstehenden Projekt- und Iterationszyklus um. In der ersten Spekulationsphase wird die Projektmission definiert, die einen ungefähren Rahmen für das Endprodukt vorgibt.

Iterationen sind Zyklen auf dem Weg zur Umsetzung der Mission, wobei jede neue Spekulationsphase eine Gelegenheit zum Erkunden und Experimentieren bietet.

Zusammenarbeit

Die Zusammenarbeitsphase basiert auf folgenden Prinzipien:

  • Komplexe Anwendungen werden nicht erstellt, sondern sie entwickeln sich weiter.
  • Komplexe Anwendungen erfordern, dass eine große Menge an Informationen gesammelt, analysiert und auf das Problem angewendet werden.
  • Das Sammeln, Analysieren und Anwenden großer Informations- oder Datenmengen erfordert fachübergreifendes Wissen.
  • Fachübergreifendes Wissen kann nur durch Zusammenarbeit gefördert werden.

Die Zusammenarbeitsphase wird durch ein Gleichgewicht zwischen traditionellen Projektmanagementtechniken und einer kollaborativen Umgebung gesteuert, die Raum für Emergence bietet.

Table comparing qualities, features and weaknesses between Agile Software Development and other Agile development frameworks

Lernen

Von einem agilen Softwareentwicklungsteam, das mit dem ASD-Framework arbeitet, wird erwartet, dass es seinen Wissensstand kontinuierlich erweitert. Dies geschieht in der Lernphase, die nach jeder Iteration erfolgt. Hierzu gehören:

  • Technische Bewertungen
  • Projekt-Rückblicke
  • Benutzerfeedback über Fokusgruppen und andere Mechanismen

Iterationen sollten kurz sein, damit das Team aus kleinen und nicht aus großen Fehlern lernt. Das Entwicklungsteam und die Benutzer, die ihre Benutzererfahrung in den Prozess einbringen, sollten ihre Annahmen während jeder Lernphase neu bewerten. Die Ergebnisse dieser Bewertung, z.B. Änderungen der zugrunde liegenden Annahmen, geben dann die Richtung für den nächsten Iterationszyklus an.

Die 6 Merkmale der adaptiven Softwareentwicklung

  • Missionsorientiert
  • Basierend auf Features
  • Iterativ
  • Zeitboxen
  • Risikoorientiert
  • Offen gegenüber Veränderungen

Wie schneidet ASD im Vergleich zu anderen gängigen Agile-Frameworks ab?

Table comparing qualities, features and weaknesses between Agile Software Development and other Agile development frameworks

Stärken der adaptiven Softwareentwicklung

  • Konzipiert für die schnelle Entwicklung komplexer Softwareprodukte.
  • Kurze Iterationen helfen, kostspielige Fehler oder falsche Entscheidungen zu vermeiden.
  • Viel Gelegenheit, ungeplante Richtungen zu erkunden, was Emergence ermöglicht.
  • Ein hohes Maß an Transparenz zwischen dem Entwicklungsteam und dem Projektsponsor.
  • Endnutzer und ihr Feedback werden eng in den Entwicklungsprozess integriert, wodurch die Chancen auf positive Ergebnisse verbessert und die Wissensvielfalt in der Zusammenarbeitsphase erhöht wird.
  • Intensives Testen von kurzen Iterationen reduziert Fehler und Schwachstellen.
  • Die Verantwortung für schlechte Ergebnisse kann nicht abgewälzt werden.

Schwächen der adaptiven Softwareentwicklung

  • Umgebungsunsicherheit benötigt ein erfahrenes Team mit einer adaptiven Denkweise.
  • Ein lockerer Startplan, der nur aus der Projektmission besteht, bedeutet, dass der Fokus leicht verloren gehen kann.
  • Eine hohe Nutzerbeteiligung über die Iterationszyklen hinweg ist nicht immer einfach.
  • Intensives Testen bei jeder Iteration erhöht die Basiskosten.
  • Häufige Änderungen am Projekt können zu weniger Dokumentation führen. Dies kann rückwirkend gemildert werden, sobald die Änderungen im sich entwickelnden Produkt verankert werden.

Ist ASD das richtige Framework für Ihre Entwicklung?

Das adaptive Softwareentwicklungs-Framework könnte ein guter Ansatz für die agile Entwicklung sein, wenn Sie Ihre Nutzer in Ihre Projekte mit einbeziehen oder sich sicher sind, dass Sie dies arrangieren können. Des Weiteren sollten sich Ihre Produkte kontinuierlich weiterentwickeln.

Sie müssen auch kontinuierliche Tests zur Risikominimierung und genügend Freiraum zur Erkundung neuer Ideen und Richtungen zulassen, was im Regelfall mit einem Anstieg Ihrer Basiskosten verbunden ist.

ASD sollte dann in Betracht gezogen werden, wenn eine schnelle Entwicklung und Veröffentlichung Priorität haben.

Ein anderes agiles Entwicklungs-Framework kann besser geeignet sein, wenn:

  • Sie eine genaue Vorstellung davon haben, wie das Endprodukt aussehen soll.
  • Ihnen die Erfahrung und Anpassungsfähigkeit in Ihrem Team fehlt, um mit der Unsicherheit, die ASD mit sich bringt, umzugehen.
  • Ihr Entwicklungsteam keinen breiten und tiefen Zugang zu Benutzerfeedback und Zusammenarbeit hat.

Ausgewählte Blogbeiträge