Was ist Agile Softwareentwicklung?
Oberbegriff für Vorgehensweisen der Softwareentwicklung, die kurze Iterationen von einigen Wochen wiederholen, jedes Mal lauffähige Software liefern, Rückmeldungen der Nutzer einbeziehen und den Plan an sich ändernde Anforderungen anpassen. Zu den bekanntesten Methoden gehören Scrum und Extreme Programming (XP).
Japanische Bezeichnung: アジャイル開発
Fachgebiet: Softwareentwicklung und Projektmanagement
Das Manifest für Agile Softwareentwicklung
Die Ideen der agilen Entwicklung sind im 2001 veröffentlichten Manifest für Agile Softwareentwicklung zusammengefasst. Es stellt Individuen und Interaktionen über Prozesse und Werkzeuge, funktionierende Software über umfassende Dokumentation, Zusammenarbeit mit dem Kunden über Vertragsverhandlung und das Reagieren auf Veränderung über das Befolgen eines Plans. Es erkennt an, dass die Werte auf der rechten Seite wichtig sind, schätzt die Werte auf der linken Seite aber höher; es bedeutet also nicht, dass Dokumentation oder Pläne überflüssig wären.
Unterschied zum Wasserfallmodell
Im Wasserfallmodell werden die Anforderungen zuerst festgelegt und das gesamte System in einem Durchgang gebaut, sodass die Nutzer erst gegen Ende der Entwicklung etwas Lauffähiges sehen. In der agilen Entwicklung werden die Funktionen Stück für Stück gebaut, beginnend mit der höchsten Priorität, und in kurzen Abständen wird etwas Lauffähiges gezeigt, sodass missverstandene oder sich ändernde Anforderungen früh auffallen. Im Gegenzug lassen sich endgültiger Umfang und Kosten zu Beginn schwer festlegen, und es braucht passende Vertragsformen und eine kontinuierliche Beteiligung der Nutzer an der Entwicklung. Welcher Ansatz besser ist, hängt davon ab, wie sicher die Anforderungen sind und wie teuer Änderungen werden.
Einsatz in hardwarenaher Entwicklung
Da Chips und Platinen teuer und langsam neu zu fertigen sind, folgt die Entwicklung der Hardware selbst überwiegend einem planbasierten Vorgehen, bei dem die Spezifikation früh festgelegt wird. Software wie Firmware, Treiber, EDA-Skripte und Verifikationsumgebungen wird dagegen oft agil entwickelt, kombiniert mit Continuous Integration und automatisierten Tests. Solange es noch keine reale Hardware gibt, läuft die Software zuerst auf Simulatoren oder FPGA-Prototypen, und der Hardware-Zeitplan wird mit den Software-Iterationen verzahnt.
Häufige Fragen
Heißt agile Entwicklung, keine Entwurfsdokumente zu schreiben?
Nein. Das Manifest für Agile Softwareentwicklung stellt funktionierende Software über umfassende Dokumentation, erkennt aber auch den Wert von Dokumentation an. Dokumente, die für die Wartung oder den Nachweis der Sicherheit nötig sind, werden im nötigen Umfang geschrieben und zusammen mit der Software aktualisiert.
Sind agile Entwicklung und Scrum dasselbe?
Scrum ist eines der bekanntesten Rahmenwerke der agilen Entwicklung. Agile Entwicklung ist ein Oberbegriff für die Idee, in kurzen Iterationen Nutzen zu liefern; neben Scrum gehört etwa Extreme Programming (XP) mit Praktiken wie testgetriebener Entwicklung und Pair Programming dazu.