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:
Können wir Sie bei Ihrem nächsten Entwicklungsprojekt unterstützen?
Softwareentwicklung Unternehmen – nearshore pricing, German HQ and management!
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 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.
K&C – WIR KREIEREN EINZIGARTIGE TECH-LÖSUNGEN SEIT ÜBER 20 JAHREN. WIR VERSCHAFFEN IHNEN IHREN WETTBEWERBSVORTEIL!
Schreiben Sie uns eine Nachricht, um Ihre individuellen Bedürfnisse oder das nächste Projekt zu besprechen.
Die drei Phasen der adaptiven Softwareentwicklung befassen sich mit den folgenden zugrunde liegenden Behauptungen:
Schauen wir uns die drei Phasen des ASD etwas genauer an:
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.
Die Zusammenarbeitsphase basiert auf folgenden Prinzipien:
Die Zusammenarbeitsphase wird durch ein Gleichgewicht zwischen traditionellen Projektmanagementtechniken und einer kollaborativen Umgebung gesteuert, die Raum für Emergence bietet.
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:
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.
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:
Wann gelingt IT Outsourcing?
(und wann nicht?)