Agile Softwareentwicklung
Was ein Agile Delivery Mindset ausmacht
Agilität beginnt im Kopf. Die "Delivery Culture" eines Unternehmens entscheidet wie dieses Projekte angeht. Wird ein Projekt umfassend geplant und definiert, um dann diesen Plan, d.h. alle(!) geplanten Bestandteile, mit Blick auf einen bestimmten Termin umzusetzen? Oder wird tatsächlich agil gedacht, indem ein kontinuierlicher Wertstrom ermöglicht wird, der beständig funktionierende Software liefert. Zweiteres trifft den Geist des agilen Manifests:
"Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale."
"Working Software over comprehensive Documentation."
"Working Software is the primary measure of progress."
Was macht ein solches agiles Mindset aus?
- Die kontinuierliche Ausarbeitung und Bewertung (d.h. Priorisierung) wie der größtmögliche Wert (Business Value) durch Software erreicht werden kann.
Das sind Planungsaufgaben, die auch in agilen Projekten unerlässlich sind. Im Rahmen dieser Konzeption wird geklärt was getan werden soll, wie dieses wann und wie zeitnah umgesetzt wird. Das soll Transparenz für alle Beteiligten schaffen. Ziel ist eine enge Zusammenarbeit von Fachabteilung und Software-Teams, um das richtige Produkt zur richtigen Zeit zu liefern.
- Die regelmäßige Bewertung der durch das oder die Teams erzielten Ergebnisse, um Anpassungen der nächsten Schritte / der Planung vornehmen zu können.
Agilität, also Wendigkeit, benötigt regelmäßiges Feedback. Es muss also eine regelmäßige Bewertung der Ergebnisse des Teams oder der Teams (des Wertstroms) stattfinden. Das Prinzip agiler Methoden ist dabei die Demonstration. Es sollte also möglichst alles und auf jeder Ebene demonstriert werden. Daraus entstehen Erkenntnisse. Haben wir alles geschafft was wir angenommen haben? Stimmen unsere Annahmen? Fehlt etwas? Gibt es eine bessere Lösung? Ein Ziel nicht erreicht oder erkannt zu haben, das etwas anderes besser ist, kann dabei wertvoller sein, als das zu erreichen und zu validieren, was man sich eigentlich vorgenommen hatte.
Wie man Agilität konkret umsetzt
Kontinuierliche Definition und Überarbeitung von Anforderungen, regelmäßige Demonstration des Projektfortschritts und daraus resultierende Änderungen erfordern eine klare, systematische Herangehensweise und diszipliniertes Arbeiten. Ebenso muss der gesetzte Rahmen für das Vorhaben diese Art der Flexibilität ermöglichen.
Unser System für diszipliniertes, agiles Arbeiten ist das Scrum-Prozessframework.
Um gemeinsam die Ziele eines Projekts zu erreichen zu können, muss es mit Blick auf diesen Prozess geplant werden. Dazu nutzen wir passende Konzeptions-Methoden für agile Projekte.
Für den geeigneten Projekt-Rahmen, stimmen wir uns mit unseren Auftraggebern ab und binden alle Beteiligten möglichst eng und gut mit ein.
Das Agile Manifest ist die Grundlage unseres Handelns
Das bekannteste Bekenntnis zur agilen Softwareentwicklung wurde Anfang 2001 im sogenannten "Agilen Manifest" zusammengefasst. Dabei ist Scrum die Quelle für viele der Denkansätze hinter dem Agilen Manifest und zugleich ist das Agile Manifest die Basis für einen Prozess nach Scrum. Dieses Manifest stellt die Aspekte heraus, die auch für uns im Fokus der Scrum Softwareentwicklung stehen und die einer Software in der Entwicklung tatsächlich zugute kommen:
- Individuen und Interaktionen mehr als Prozesse und Werkzeuge
- Funktionierende Software mehr als umfassende Dokumentation
- Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
- Reagieren auf Veränderung mehr als das Befolgen eines Plans
Während beispielsweise "Prozesse und Werkzeuge" weiterhin wichtige Aspekte der professionellen Softwareentwicklung darstellen, wird hier zusätzlich die Intention in den Vordergrund gerückt: Prozesse, Dokumentationen, Verträge und Pläne sollen dazu dienen, die Softwareentwicklung zu unterstützen. Sie sind kein Selbstzweck.