Agile Prinzipien

Lesen Sie die Blog-Serie zu den grundlegenden Prinzipien hinter dem agilen Manifest. Die folgende Auflistung weiterer Prinzipien für agile Teams beinhaltet alle referenzierten Prinzipien der dort beschriebenen zwölf agilen Prinzipien hinter dem agilen Manifest.

Adaption – Die Fähigkeit, auf Grund von äußeren Umständen und inneren Erkenntnissen die eigene Planung und Vorgehensweise anzupassen, ist einer der Kernschlüssel zu erfolgreicher, agiler Methodik.

Akzeptierte Verantwortung – Echte Verantwortung im Team entsteht durch motivierte Mitarbeiter, die den Zweck und den Sinn eines Projektes oder Produktes nicht nur kennen, sondern auch dazu beitragen wollen. Verantwortung kann niemandem gegeben werden, sie wird dann eher zur Pflicht, nicht jedoch zu selbstmotivierter Verantwortung.

Arbeit sichtbar machen – Die Darstellung des Entwicklungsprozesses und seiner einzelnen Workflows in einem Team hilft dabei, die Arbeitsabläufe zu hinterfragen und zu verbessern. Eine funktionierende Koordination im Team wird durch diese Sichtbarkeit der Arbeit erst ermöglicht.

Bevollmächtigtes Team – Die akzeptierte Verantwortung eines Teams steigt mit dessen Bevollmächtigung, eigene Entscheidungen treffen zu dürfen. Diese Bevollmächtigung kann nur von oben gegeben werden. Aus diesem Grunde ist das Management bei der Einführung agiler Methoden immer stark mit einzubeziehen.

Business Value – Der Zuordnung von echtem Wert zu Anforderungen ist einer der wesentlichen Erfolgsfaktoren für die Produktentwicklung, aber auch für die meisten Organisationen eine der schwierigsten Aufgaben überhaupt. Erst durch die Kenntnis der erwarteten Werte in einem Backlog entsteht die Möglichkeit, nachvollziehbar und sinnvoll zu priorisieren und vor allen Dingen zu entscheiden, was nicht umgesetzt werden soll. Auch eine sinnvolle Aussage darüber, was bereits in einer Produktentwicklung umgesetzt wurde, kann erst durch die Kenntnis der Werte getroffen werden.

Das Ganze betrachten – Verantwortung darf nicht nur lokal verteilt werden, da wir sonst ein System der lokalen Optimierung erschaffen. In solch einem System kämpfen Mitarbeiter, Teams oder sogar ganze Abteilungen und Bereiche gegeneinander, da jeder für sich versucht, das Optimale Ergebnis zu erreichen. Viele lokale Optima erreichen in der Summe jedoch nie das Ergebnis, das durch eine globale Betrachtung hätte erreicht werden können. Aus diesem Grund muss Verantwortung immer soweit wie möglich gefasst und gemeinschaftlich erreicht werden.

Flow – Für die kontinuierliche Auslieferung an Anwender wird eine Vorgehensweise benötigt, die das Team darin unterstützt, in einen stetigen Fluss mit der Produktentwicklung zu kommen. Auch eine gleichmäßige Auslastung der Mitarbeiter kann durch einen stetigen Fluss erreicht werden.

Inkrementelle Entwicklung – Um frühes Feedback und empirische Produktsteuerung zu ermöglichen, muss regelmäßig auf das funktionierende Produkt zugegriffen und dieses bewertet werden können. Dies ist nicht möglich, wenn das Produkt erst am Ende der gesamten Entwicklung verfügbar ist. Aus diesem Grunde wird inkrementelle Entwicklung benötigt, bei der funktionierende Zwischenprodukte immer wieder gezeigt werden können.

inspektion – Die bewusste Einsichtnahme in den bestehenden Prozess ist einer der wichtigsten Pfeiler agiler Vorgehensweisen. Nur wenn die Schwierigkeiten, Fallstricke und Engpässe eines Prozesses erkannt werden, ist eine Veränderung des Verhaltens und damit eine zukünftige Verbesserung einleitbar.

Iterative Vorgehensweise – Eine kontinuierliche Auslieferung wird durch eine iterative Vorgehensweise unterstützt. Iterationen helfen durch ihre zyklische Natur dabei, kontinuierliche Aktivitäten durch Wiederholung zu verinnerlichen und sie so zum Normalzustand werden zu lassen.

Lernen verstärken – Nur durch kontinuierliche Weiterentwicklung und Weiterbildung der Teammitglieder kann nachhaltige Innovationskraft aufrecht erhalten werden. Das Lernen betrifft aber nicht nur die Aneignung neuer technischer Fähigkeiten, sondern gerade auch das Bewerten der bestehenden Prozesse und der funktionalen Inhalte des zu entwickelnden Produktes. Empirische Kontrolle auf diesen Ebenen wird nur durch solch einen konstanten Lernwillen ermöglicht.

Limitierung der laufenden Arbeiten – Die Beschränkung der aktuellen Arbeit auf die gerade wichtigste und wertschöpfendste Tätigkeit beugt zum einen schlechtem Multitasking vor und schützt zum anderen vor Verzettelung. Es sorgt dafür, dass das Team an der höchsten Priorität arbeitet und diese so schnell wie möglich fertig stellt.

Mitmenschlichkeit – Mitarbeiter dürfen nicht nur als funktionierende Resourcen betrachtet werden. Moderne Führung bedeutet auch, den Mitarbeiter und Kollegen als Menschen wahrzunehmen und auf seine diesbezüglichen Bedürfnisse einzugehen. Er darf auch weder überlastet werden, noch nutzlos und gelangweilt seine Zeit absitzen.

Ökonomie – Die wirtschaftliche Betrachtung aller einzelnen, kleinen Anforderungen führt durch die Abwägung von Business Value, Aufwand und Risiko zur Vergabe von bewerteten Prioritäten. Dies macht für alle Beteiligten den Wert einer Anforderung transparent. Um alle wirtschaftlichen Aspekte abzuwägen, wird die Zusammenarbeit und der Input von Anwendern, Kunden, Product Ownern, Management und Entwicklern benötigt.

Osmotische Kommunikation – Das Modell der osmotischen Kommunikation geht davon aus, dass der kommunikative Austausch zwischen Personen am besten direkt stattfinden kann und jedes Hindernis zwischen den Beteiligten überwunden werden muss, ähnlich wie eine Membran beim osmotischen Austausch von Stoffen ein Hindernis darstellt. Je länger der Weg zwischen zwei Personen und je mehr Hindernisse sich zwischen diesen befinden, desto schwieriger wird der kommunikative Austausch.

Qualität – Was Menschen immer begeistert, ist hohe Qualität. Was dieser Begriff tatsächlich bedeutet und wie er sich in einem Produkt oder einem Feature ausprägt, muss jedes Team in jedem Umfeld neu bewerten und festlegen. Qualität muss in einem angemessenen Maß definiert sein. In jedem Fall muss zwischen äußerer (vom Anwender wahrnehmbar) und innerer (vom Entwickler wahrnehmbar) Qualität unterschieden werden.

Reflektieren – Eines der wesentlichen Grundprinzipien aller agilen Methoden ist das kritische Hinterfragen des Status Quo mit dem Ziel, aus den Erfahrungen Rückschlüsse für den weiteren Weg zu ziehen. Jeder Mitarbeiter sollte dieses Prinzip jederzeit für sich anwenden, um Schwierigkeiten, Probleme, aber auch Vorteile schnell zu erkennen. Auch Teams und ganze Organisationen sollten in regelmäßigen Abständen reflektieren und ihr zukünftiges Verhalten entsprechend anpassen.

Regelmäßige Auslieferung – Empirische Kontrolle gelingt nur durch regelmäßiges Inspizieren der erreichen Ergebnisse. Aus diesem Grunde ist es notwendig, in jeder Iteration das Feedback zum aktuellen Produktstand einzuholen. Die regelmäßige Auslieferung von Produktinkrementen hilft auch dabei, ein gleichmäßiges Tempo in der Entwicklung aufrecht zu erhalten.

Reversible Änderungen während der Entwicklung – Das richtige Produkt kann nur erschaffen werden, wenn die Bereitschaft besteht, bereits erzeugte Zwischenlösungen wegzuwerfen und neu zu entwickeln. An bereits umgesetzten Architekturen und Designs festzuhalten, kann zu unsauberen Lösungen führen.

Sagen statt Fragen – Es ist wenig hilfreich, aber leider häufige Praxis, wichtige Informationen an Mitarbeiter und Teams stillschweigend an einer zentralen Stelle zu dokumentieren in der Annahme, dass die Leute, welche die Informationen lesen sollten, diese Stelle regelmäßig nach Neuigkeiten durchsuchen würden. In der Realität sind dann oftmals Sätze zu hören wie: “Das Dokument liegt aber seit langem auf unserem Laufwerk.” Viel effektiver ist es, die wirklich wichtigen Informationen gering zu halten und aktiv an die notwendige Leserschaft zu verteilen.

Schnelles Scheitern – Das Konzept des “schnellen Scheiterns” geht bei vielen Leuten gegen ihre Intuition, da es impliziert, dass das Scheitern als wertvoll betrachtet wird. Das schnelle Scheitern ist in allen Fällen dem langsamen Scheitern vorzuziehen. Wir möchten nicht in 18 Monaten wissen, dass unser Projekt kein Erfolg ist, sondern regelmäßig nach 2 Wochen. Dann kann adäquat auf die Erfolgsfaktoren Einfluss genommen werden, ohne dass es schon zu spät ist.

Schnellstmöglich liefern – Eine schnelle Lieferung von funktionierenden Zwischenergebnissen ermöglicht den gegenseitigen Austausch von schnellem Feedback zum aktuellen Produkt und die Wünsche an das zukünftige Produkt.

Selbstähnlichkeit – Einfachheit findet sich in der Natur oftmals durch fraktale Funktionen und Selbstähnlichkeit. Sie lassen sich verblüffend einfach beschreiben, erzeugen in ihrer Wirkung aber hochkomplexe, dynamische Systeme. Diese Prinzipien lassen sich in der Software- und Produkt-Entwicklung genau so nutzen, wie in der Definition von Vorgehensmodellen, Prozessen und ganzen Organisationsstrukturen.

Selbstorganisiertes Team – In einem Team von qualifizierten Kopfarbeitern werden die besten Entscheidungen vom Team selbst darüber getroffen, wer wann welche Aufgabe wie durchführt. Jede Form von Micromanagement bewirkt den Verlust von Selbstverantwortung und Motivation. Dies ist in der agilen Welt der Grund für solche Aussagen wie “Projektleiter werden nicht mehr benötigt”, welche leider zu großen Missverständnissen führen. Gemeint ist nicht der Verzicht auf Führung (Leadership), sondern der Verzicht auf kleinteilige Planung von Aufgaben, bei denen die durchführenden Teammitglieder selbst am besten wissen, wie sie zu organisieren sind.

So spät wie möglich entscheiden – Je früher Entscheidungen getroffen werden, desto unsicherer und risikoreicher sind diese Entscheidungen. Bei jeder Entscheidung sollte genau abgewogen werden, wann der spätestmögliche Zeitpunkt gegeben ist, um die Entscheidung endgültig zu treffen.

Transparenz – Der wichtigste Aspekt, um ein System, ein Produkt oder ein Prozess beurteilen zu können, ist die volle Transparenz über alle Zustände und Ergebnisse. Transparenz ist die grundlegende Basis für die weitere Inspektion und die abgeleitete Adaption bzw. Verbesserung.

Unterstützende Kultur – Ein Umfeld, in dem sich die einzelnen Mitarbeiter gegenseitig helfen und voran bringen, ist der ideale Nährboden für gutes Teamwork. Da Kulturen in erster Linie durch das Verhalten jedes Einzelnen geprägt werden, liegt hier sehr viel Verantwortung bei Führungskräften, das entsprechende Verhalten von Hilfe und Unterstützung an den Tag zu legen.

Verbesserung – Der Wille zur kontinuierlichen Verbesserung bringt jeden Einzelnen, aber auch ganze Teams und Organisationen voran. Dazu gehört vor allen Dingen auch die unabdingbare Bereitschaft, bestehende Gegebenheiten zu hinterfragen und sich selbst immer wieder auf den Prüfstand zu stellen.

Verschwendung eliminieren – Das aktive Weglassen von Anforderungen und Funktionalitäten führt zu einer Fokussierung auf die tatsächlich benötigten und wichtigen Features in einem Produkt. Auch der Verzicht auf die technisch “schönste” Lösung kann oftmals zu einer Beschleunigung und Entschlackung der Entwicklung kommen. Überflüssige Arbeit und Features sollen unbedingt vermieden werden.

Vielfalt – Im Gegensatz zu homogenen Teams mit ganz ähnlichen Charakteren und Fähigkeiten sind heterogene Teams in der Lage, kreativere Lösungen zu finden. Diesen Vorteil möchten wir nutzen durch eine hohe Vielfalt der einzelnen Teammitglieder.