WikiDer > Adaptive Softwareentwicklung
Adaptive Softwareentwicklung (ASD) ist ein agilSoftwareentwicklungsprozess mit dem wichtigsten Vorgänger Radikale Softwareentwicklung (RSD) von Jim Highsmith und Sam Bayer. Ein wichtiger Teil von ASD ist der Grundsatz, dass eine ständige Bewertung und Verbesserung des Prozesses normal ist. Dieser Prozess betont Probleme in großen, komplexen Systemen und fördert inkrementelle und iterativ Entwicklung durch ständige Prototyp entwickeln.
Eigenschaften
ASD zeichnet sich durch sechs Eigenschaften aus.
- Mission Driven: Die Aktivitäten jedes Entwicklungszyklus müssen immer mit dem Projektziel verglichen werden. Möglicherweise muss das Projektziel angepasst werden.
- Komponentenbasiert: Der Schwerpunkt von ASD liegt mehr auf den Ergebnissen und deren Qualität als auf den erforderlichen Aufgaben und Prozessen.
- Iterativ: It Wasserfall model funktioniert nur in klar verständlichen und definierten Umgebungen. Softwareentwicklung ist normalerweise nicht eng definiert, daher ist es besser, sich auf Iterationen zu konzentrieren, anstatt etwas perfekt auf einmal zu erledigen.
- Time Boxed: Unklarheiten in komplexen Softwareprojekten können durch regelmäßiges Setzen konkreter Fristen aufgelöst werden. Mittels Timeboxen müssen zu Beginn des Projekts unumgängliche Entscheidungen getroffen werden.
- Änderungstolerant: Änderungen sind in der Softwareentwicklung üblich. Es ist daher besser, mit ihnen umzugehen, als zu versuchen, ihnen entgegenzuwirken. Um ein änderungstolerantes System aufzubauen, müssen Entwickler ständig überlegen, ob sich die von ihnen erstellten Komponenten ändern könnten.
- Risikoorientiert: Es ist ratsam, zu Beginn risikoreiche Komponenten zu entwickeln.
Wiederholung
ASD besteht aus 3 Phasen: „Speculate, Collaborate and Learn“. Die Phasen sind so benannt, um die Rolle des Wandels zu betonen. Anstelle von Planung wurde beispielsweise Spekulation verwendet, da ein Plan keine Unsicherheiten aufweisen sollte und eine Abweichung davon als Fehlschlag angesehen wird. Gleiches gilt für Collaborate, das die Bedeutung der Kollaboration bei der Entwicklung hochvolatiler Systeme unterstreicht. Learn betont die Notwendigkeit von Genehmigungen und Fehlerreaktionen sowie die Tatsache, dass Anforderungen kann sich während eines Projekts ändern. Die Planung (Spekulation) ist Teil des iterativen Prozesses, da sich die Anforderungen an die Komponenten laufend ändern können und ggf. eine Anpassung notwendig wird. Ein wichtiger Bestandteil der Lernphase sind die Qualitätsprüfungen, die als Grundlage für kommende Zyklen dienen, bei denen der Kunde als Experte anwesend ist. Der letzte Teil der Lernphase ist der Teil „Final Q/A and Release“. Hier ist es wichtig, sich die gewonnenen Erkenntnisse anzusehen. Diese Obduktionen sind generell sehr wichtig für agile Softwareentwicklungsprozesse.
In der Projektinitiierungsphase, einer Unterphase von Spekulieren, werden ein Zeitplan und Ziele für die Entwicklungszyklen festgelegt, die zwischen vier und acht Wochen dauern.
Externe Links
- (und) Jim Highsmith
- (und) Unordentlich, aufregend und ängstlich: Adaptive Softwareentwicklung (archiviert)