Nicht so wie beim Wasserfallmodell, reflektiert Agile ein tiefes Verständnis der Veränderungen, die im Entwicklungsprozess unvermeidbar sind. Umso mehr, sie sind ein wichtiger Teil davon die Software besser zu machen, also sind sie sogar erwünscht.
Fokus auf funktionierende Software
Einer der Grundwerte im Agilen Manifest ist das funktionierende Software über umfassender Dokumentation steht. Das bedeutet nicht mehr als dass das Wichtigste ist, dem Kunden eine effektive Lösung zu ihrem Problem zu liefern. Ein agiles Team fokussiert sich ununterbrochen auf die Lieferung des eigentlichen Wertes, was in diesem Fall eine funktionierende Software und dessen wichtigsten Features bedeutet, anstatt akribische Dokumentation zu erstellen und jedes kleinste Detail zu perfektionieren. Was zählt sind gut entwickelte technische Aspekte und ein gutes Design. Der einzige Maßstab, um den Erfolg eines Produktes einzuschätzen, sind funktionierende Features.
Menschliche Interaktionen
Wenn wir über Software nachdenken, verbinden wir sie mit Computern, Algorithmen und Maschinen. Aber am Ende des Tages wird sie meistens von Menschen genutzt – und von Menschen erstellt. So sieht es zumindest heutzutage aus. Bei einem agilen Ansatz werden Interaktionen zwischen Menschen mehr geschätzt als strenge Prozesse oder vordefinierte Anordnungen, an die man sich halten muss. Zusammenarbeit – zwischen Teammitgliedern, mit Geschäftsführern und schlussendlich mit Kunden – erlaubt es eine funktionierende Lösung schneller zu liefern, mit einem genaueren Ergebnis. Agile Teams sollten sich selbst organisieren können, was bedeutet, dass die Entwickler die Arbeit unter sich selbst aufteilen und sich deshalb für die Aufgaben verantwortlich fühlen.
Die besten agilen Techniken
Agile Softwareentwicklung ist keine gesetzesfreie Zone, sondern basiert auf kampferprobten Techniken und Praktiken. Dank täglichen Standups wissen alle was erreicht wurde, was an jedem bestimmten Tag zu tun ist und ob es Probleme gibt – und wie man sie lösen kann. Retrospektiven (Retros) zum Schluss jeder Iteration helfen dabei zu reflektieren was passiert ist, was gut funktioniert hat und was man verbessern könnte. Das Sprint Planning ist ein Treffen wo das Team definiert, was im kommenden Sprint geliefert wird – und wie genau das erreicht werden kann. Am Ende jedes Sprints sind Sprint Reviews.
Die Einfachheit des Prozesses
Noch ein Grundsatz von agiler Software ist Einfachheit. Einfachheit bedeutet, dass das Team die grundlegendste Lösung erstellt, die den gestellten Erwartungen entspricht, um die benötigte Arbeit möglichst zu minimieren. Dies verlangt ein tiefes Verständnis der Kundenbedürfnisse und des Produktes selbst und den Fokus auf das warum (Bedürfnis) und nicht das wie (Spezifikation). Auf diesem Weg muss das Team aushandeln wie sie das Problem lösen und je einfacher die Methode ist, die gewählt wird – desto weniger Raum gibt es auch für Fehler.