Blogbeitrag

Was ist Agile?

Agilität bedeutet, dass auf neue Anforderungen oder neue Gegebenheiten, die oft sehr unvorhergesehen kommen, proaktiv und flexibel reagiert wird und sich somit initiativ an die neue Situation angepasst werden kann.

Agile Übersicht

Agiles Arbeiten darf dabei nicht allein auf die Techniken oder Frameworks reduziert werden sondern muss gefühlt und gelebt werden. Ein agiles Mindset dient dafür als Grundlage.

Ein Mindset beschreibt, wie wir zu bestimmten Themen stehen und uns dann letztendlich im Bezug darauf verhalten. Es ist also eine Denkweise oder Haltung, die wir haben und die dann unser Tun beeinflusst.

Ein agiles Mindset ist flexibel und beweglich. Es passt sich stets und ständig an neue Situationen und Anforderungen an und gleicht sein zukünftiges Tun mit den gemachten Erfahrungen ab.

Die meisten Menschen werden nicht sofort ein agiles Mindset entwickeln können. Veränderungen werden oft nicht unbedingt gewollt oder sich gewünscht. Jedoch kann man es lernen, sein Mindset auf agil zu stimmen und wachstumsorientiert zu denken. Natürlich bedarf es ein wenig Übung aus den alltäglichen Gedanken herauszukommen und weiter zu denken. Immer, wenn man merkt, dass man etwas wieder hinschmeißen möchte, weil es nicht so funktioniert, wie gewünscht, muss man anfangen, dies als Chance zu sehen und nach etwas Neuem suchen und dies ausprobieren, die Herausforderung annehmen, Veränderungen akzeptieren und mit ihnen gehen! Man sollte neugierig sein und eine Art Wissensdurst haben. Wenn ein Lösungsweg für ein Problem nicht das gewünschte Ziel erreicht hat, dann gibt es sicher noch einen weiteren Lösungsweg, den es auszuprobieren gilt. Ganz wichtig: Fehler dürfen passieren und es sollte offen damit umgegangen werden. Man lernt aus seinen Fehlern, wächst mit seinen Aufgaben und entwickelt sich dadurch weiter.

2001 wurde von 17 Softwareentwicklern bei einem Treffen das agile Manifest erstellt. Es beschreibt agile Werte und Prinzipien und soll bei der Umsetzung einer agilen Arbeitsweise helfen. Unter den Teilnehmern waren auch Jeff Sutherland und Ken Schwaber, die Gründer des Scrum-Frameworks.

Vier agile Werte

Das agile Manifest beschreibt vier Werte, die als Grundlage für agile Prozesse dienen sollen.

Der erste lautet “Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge”. Menschen und die Kommunikation untereinander stehen also über den Abläufen und Tools, die im Einsatz sind. Nur sie können auf veränderte Anforderungen schnell reagieren und aktiv Maßnahmen einleiten um Kundenbedürfnisse zügig zu stillen.

Mit seinen verschiedenen Events setzt das Scrum Framework gut diesen Wert um. Im Daily Scrum zum Beispiel werden täglich Hindernisse kommuniziert und anschließend für den weiteren Prozessablauf beseitigt.

Der nächste Grundwert lautet “Funktionierende Software ist wichtiger als umfassende Dokumentation”. Die Dokumentation ist dabei weiterhin wichtig und soll auch fortgeführt werden, jedoch soll sie nicht bis ins letzte Detail ausformuliert werden, da das Funktionieren des Produktes nun einmal entscheidender ist, als am Ende eine umfangreiche Dokumentation vorliegen zu haben nach der entwickelt wird.

“Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen” beschreibt den dritten Wert. Dies besagt, dass der Kunde von Anfang an in die Umsetzung und Entwicklung einbezogen werden und nicht zum Schluss ein komplett fertiges Produkt vor die Nase gesetzt bekommen soll. So kann auf Veränderungen optimal reagiert werden und der Kunde realisiert eher, wenn die Entwicklung des Produktes in eine eventuell ungewollte Richtung abdriftet. Ständiges Feedback ist ein wichtiger Bestandteil dabei.

Zum Schluss haben wir noch “Reagieren auf Veränderungen ist wichtiger als Befolgen eines Plans”. Im Scrum wird dies mit den Sprints und deren Planung abgedeckt. Die hier erwähnte Planung verfolgt in diesem Sinne keinen Plan wie im Wert genannt sondern geht auf die Veränderungen ein, die durch den vorherigen Sprint entstanden sind und reagiert damit auf diese.

12 Prinzipien des agilen Manifests

Das agile Manifest beinhaltet auch zwölf Prinzipien, die auf die vier Werte aufbauen.

Sie beschreiben, wie das agile Arbeiten statt finden soll. Gehen wir alle Prinzipien einmal Schritt für Schritt durch.

Das erste Prinzip lautet “Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.” und betrifft die Kundenzufriedenheit, die erreicht werden soll. Wie eben schon bei den agilen Werten beschrieben ist die Interaktion und Zusammenarbeit mit den Kunden sehr wichtig. Durch ein frühes Kundenfeedback kann schneller auf deren sich ändernden Anforderungen reagiert und somit der Kunde zufrieden gestimmt werden.

Das zweite Prinzip: “Heiße Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.” Änderungen sind also erwünscht. zu jeder Zeit. Natürlich soll nicht wild hin und her geändert werden, sondern schon neue Anforderungen oder Änderungswünsche begründet werden.

“Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.” Im Scrum Prozess sind die Intervalle, in denen entwickelt wird, die Sprints, die zwischen ein und vier Wochen dauern. Die funktionierende Software ist durch die am Ende testbaren Inkremente gegeben.

“Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.” Innerhalb eines Scrum Teams arbeiten Product Owner, Scrum Master und das Entwicklungsteam eng miteinander. Durch den ständigen Kontakt seitens des Product Owners mit den Stakeholdern und die Integration derer in einige Scrum Events ist das Expertenwissen während der fortlaufenden Umsetzung gänzlich gegeben.

“Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die Unterstützung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.” Ein agil arbeitendes Team benötigt Personen, die ein agiles Mindset haben. Teammitglieder, die motiviert sind und wachstumsorientiert bzw. erschaffend denken. Die Selbstorganisation der Personen ist dabei wichtig und wird in agilen Teams vorausgesetzt.

“Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.” Wenn man agil arbeitet, ist persönliche Kommunikation das A und O. Im Scrum wird dies durch das Daily Scrum gefördert, und auch andere Scrum Events haben die direkte Kommunikation als Ziel.

“Funktionierende Software ist das wichtigste Fortschrittsmaß.” bedeutet, dass alle Umsetzungsschritte nach Sprintende am besten live getestet werden können, um so schneller und besser an wertvolles Kundenfeedback zu gelangen und Fehler so zeitig wie möglich zu eliminieren. Nur fertige Inkremente können dafür genutzt werden.

“Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.” Dieses Prinzip besagt, dass kontinuierliches Arbeiten aller Beteiligten ohne Überlast oder Unterlast angestrebt werden soll, um Nachhaltigkeit zu erzielen. Es geht darum, die langfristige Arbeit zu fördern.

“Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.” Die Teilfunktionen und Anforderungen des Gesamtproduktes sollen in sich so detailliert wie möglich ausgearbeitet, beschrieben und anschließend umgesetzt werden, so dass eine hohe Qualität zu jeder Zeit gewährleistet werden kann. Dies kann vieles an späteren Nacharbeiten vermeiden.

“Einfachheit — die Kunst, die Menge nicht getaner Arbeit zu maximieren — ist essenziell.” Das beste Ergebnis mit dem größtmöglichen Nutzen soll mit dem geringsten Aufwand erzeugt werden. Dabei sollen unnötige Anforderungen nicht umgesetzt werden. Wie man dazu Anforderungen nach Wichtigkeit priorisieren und in bestimmte Kategorien einteilen kann, werde ich in einem der nächsten Beiträge behandeln.

Das nächste Prinzip “Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.” besagt, dass die Mitglieder des Teams selbst entscheiden und organisieren können, wann sie was wie umsetzen und entwickeln. Diese Selbstorganisation fördert die Kreativität und Motivation der Teamteilnehmer.

“In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.” Wichtig in gut funktionierenden Teams ist die Kommunikation und das Miteinander. Und das nicht nur im Bezug auf die Entwicklung des Produktes und dessen Qualität, sondern auch in der Art und Weise wie man miteinander arbeitet. Im Scrum Prozess gibt es hierfür das Event der Retrospektive, bei dem geklärt wird, was im letzten Sprint gut und was nicht gut gelaufen ist und was man zukünftig bei der Zusammenarbeit besser machen kann.

Die agilen Werte und Prinzipien sind nicht kompliziert sondern relativ einfach zu verstehen. Die Anwendung ist da schon ein wenig schwieriger – vor allem, wenn man noch kein agiles Mindset entwickelt hat. Dabei können diese Werte und Prinzipien aber ganz gut helfen.

Schließlich benötigen wir noch bestimmte Praktiken und Methoden um auch agil arbeiten zu können. Hier bietet sich neben einigen anderen Modellen Scrum an. Im nächsten Artikel „Was ist Scrum?“ und den darauf folgenden wird genau dieses Framework Thema sein.