Agilität

Was Agilität bedeutet, ist schwierig zu definieren. Auf verschiedenen Ebenen werden unter dem Begriff jeweils eigene, z. T. nur lose gekoppelte Konzepte verstanden. So ist Agilität sowohl eine wertebasierte innere Haltung als auch ein abstrakter Ansatz zur Steuerung von Unternehmen und Führung selbstorganisierter Team und gleichzeitig auch ein Prozessframework zur Entwicklung komplexer Produkte.

In unserer Arbeitswelt nimmt der Anteil komplexer Aufgaben mehr und mehr zu. Da ist es konsequent, auf all den eben genannten Ebenen über Agilität als Lösungsansatz nachzudenken. Dadurch ergibt sich leider auch eine Reihe von Missverständnissen.
Agil bedeutet laut Duden, flink, beweglich, regsam und wendig zu sein.

Agil oder flexibel?

Wir möchten durch Agilität flexibel auf die Wünsche unserer Kunden reagieren können. Flexibilität wird im übertriebenen Maß jedoch zur Beliebigkeit. Eine vollständige Beweglichkeit wäre allerdings auch eine vollständige Beliebigkeit. Beweglichkeit entsteht daher nur im Kontrast gegenüber stabilen Elementen.

Agil zu sein, bedeutet daher nicht per se flexibel zu sein. Unsere Flexibilität richtet sich nach den eindeutig geordneten Prioritäten. Unsere Prioritäten richten sich primär nach der Zufriedenheit der Kunden. Das ist nicht einfach, aber das Backlog bietet eine klare Sicht auf die flexiblen, noch nicht begonnenen Aufgaben und die stabilen, fertig abgenommenen Bereiche unserer Arbeit.

Entwicklung komplexer Produkte

Wie kann das notwendig sein? Unsere Auftraggeber wissen doch, was sie brauchen! Das mag für komplizierte, aber von Experten planbare Produkte gelten, nicht aber für Bewältigung komplexer Aufgaben.

Eine komplexe Aufgabe zeichnet sich dadurch aus, dass sie eben nicht vollständig planbar ist. Agilität ist die Antwort auf die Frage, wie wir komplexe Aufgaben dennoch umsetzen können.

Prozesse und Modularität

Dies hat Konsequenzen für die Architektur unserer Produkte. Bereits Taiichi Ohno, der Begründer des Toyota-Produktionssystems und damit von Kanban erkannte, dass er die Maschinen und die modulare Bauweise der Produkte ändern musste, um die Voraussetzungen für den Erfolg seiner Ideen zu schaffen.

Das gilt auch heute noch. In der Softwareentwicklung finden wir eine hohe Modularisierung und entsprechende Archtitekturkonzepte ebenso wie aufwendige Toolketten für automatisierte Tests, Continuous Integration bis hin zu Continuous Delivery.

Effizient oder effektiv?

Wenn wir komplexe Aufgaben bewältigen wollen, benötigen wir dafür Redundanzen! Für die systembedingten Unzulänglichkeiten in der Planbarkeit brauchen wir Reserven. Das können zusätzliche Mitarbeiter oder längere Projektlaufzeiten sein. In jedem Fall entstehen dafür zusätzliche Kosten. Daher kann ein agil angegangenes, komplexes Projekt in keinem Fall besonders effizient durchgeführt werden. Das Ergebnis steht im Vordergrund und damit die Effektivität.

Das bedeutet nicht, dass wir in agilen Projekten planlos Geld verpulvern. Wir benötigen jedoch ausreichend Spielraum, um schnell und flexibel auf neue gewonnene Erkenntnisse reagieren zu können. Regelmäßiges Feedback zum Realisierungsfortschritt, den Inkrementen, ist das Kernelement, die Effektivität zu steigern. Dafür ungeeignet ist es, die Auslastung der Mitarbeiter zu optimieren, weil dadurch notwendige Freiräume verloren gehen. Damit diese Freiheit sinnvoll genutzt wird, gilt es, in die Motivation und Selbstdisziplin der einzelnen Entwickler zu vertrauen. Oder anders gesagt: Die Motivation und die Selbstdisziplin jedes einzelnen sind die Schlüsselelemente für den Erfolg agilen Vorgehens.

Was genau ist denn nun Agilität in der Produktentwicklung?

Bei der Entwicklung von (Software-)Produkten ist für mich Agilität ein Konzept, um im direkten Kontakt mit dem Kunden gemeinsam ein komplexes Produkt schnell auf den Markt zu bringen bzw. einsatzbereit zu machen. Kern dieser Vorgehensweise ist eine inkrementelle Entwicklung mit zahlreichen, möglichst schnellen Rückkopplungen zum Feedback aus der Entwicklung und von anderen Stakeholdern zum Fortschritt. Damit wirkt Agilität direkt auf die Organisation und deren Management und verändert diese nachhaltig hin zu einer extrem flachen Hierarchie mit zahlreichen, dezentralen Entscheidungsmöglichkeiten und der Fähigkeit, sich selbst an veränderte Rahmenbedingungen anzupassen.

Agile Verfahren müssen nicht iterativ sein. Meist sind Iterationen jedoch als regelmäßiges Prüfraster des Fortschritts anhand der erreichten Inkremente von Vorteil. Sie eignen sich für komplexe Projekte, deren konkretes Ziel vorab nicht vollständig beschrieben werden kann. Dabei basiert ein solches Projekt auf einer zentralen Idee, bei deren Umsetzung sowohl die Entwickler als auch die fachlich verantwortlichen Personen lernen, was wirklich aus Kundensicht benötigt wird. Schritt für Schritt wird das Ziel damit konkreter.