Kein Deckel passt auf jeden Topf
Agiles Arbeiten ist super für bestimmte Arten von Projekten. Die wichtigsten Punkte wurden weiter oben bereits angedeutet, aber wir schauen sie uns noch einmal genauer an.
Wir wissen nicht, wie das Endprodukt genau aussieht: Nicht immer ist zu Beginn eines Projektes klar umrissen, was dessen Ziel ist. Vielleicht geht es darum, eine Lösung für Problem X zu finden, aber es noch nicht klar, auf welcher Plattform die Lösung am Ende laufen wird. Oder welche Features dafür benötigt werden. Oder Sie entwickeln eine neue Baugruppe für ein komplexes Produkt und werden Ihr Design im Verlauf des Entwicklungsprozesses an das Design anderer Projektteams anpassen müssen, die andere Baugruppen für das gleiche Endprodukt entwickeln. In solchen und ähnlichen Fällen eignet sich die agile Methode besonders gut, einfach schon, weil das klassische Wasserfallmodell so ungeeignet ist. Für agile Teams ist es völlig in Ordnung, zu Beginn nur eine vage Ahnung eines schwammigen Ziels zu haben, dem sie sich iterativ annähern. Diese Unsicherheit zu akzeptieren, gibt den Teams zudem die Möglichkeit, den Kunden immer wieder in den Entwicklungsprozess einzubeziehen, was oft in einem Produkt resultiert, das diesen glücklicher macht. Und glücklichere Kunden ist, was wir im Endeffekt alle wollen.
Wir wissen nicht, wie wir da hinkommen: Selbst wenn das Endprodukt klar beschrieben werden kann, ist der Weg dahin nicht immer klar. Vielleicht ist schon ganz zu Beginn absehbar, dass das Projekt Ihre Ingenieure vor Herausforderungen stellen wird, die nicht absehbar sind. Um einige Beispiele zu geben: Vielleicht merken Sie nach einem Jahr, dass Sie für das Produkt ein Schmiermittel mit völlig neuen Eigenschaften entwickeln (lassen) müssen. Oder der Projektverlauf ist von den Ergebnissen physikalischer Grundlagenforschung abhängig, die erst nächstes Jahr in Cern beginnt. Oder Sie arbeiten in der Softwarebranche. Egal, was der Grund ist, wenn der Weg zum Ziel eher einem Labyrinth als einer gradlinigen Hindernisbahn gleicht, ist die agile Methode vermutlich die bessere Wahl.
Wir wissen nicht, wann das Projekt fertig sein wird: Das ergibt sich im Wesentlichen aus den ersten beiden Punkten. Wir wissen, nicht, wo es hingeht, und wenn wir es wissen, kennen wir den Weg nicht. Unter solchen Bedingungen mit harten Deadlines zu arbeiten, ist natürlich schwierig.
Wenn man sich diese Punkte ansieht, überrascht es eigentlich nicht mehr, dass agiles Arbeiten zuerst in der Softwareindustrie populär wurde. Was in vielen anderen Branchen als zusätzliche Herausforderung gesehen würde, ist in der Softwareentwicklung schlichtweg normal. Etwas überspitzt gesagt: Bei längeren Projekten können Sie sich nicht einmal sicher sein, auf welchen Geräten Ihre Lösungen am Ende laufen werden. Und Sie können schlichtweg nicht wissen, welche Bugs Sie auf dem Weg zum Ziel beseitigen müssen. Aber: Nicht alle Projekte in allen Branchen unterliegen den hier genannten Unsicherheiten (Ziel, Weg, Dauer). Wenn es Ihr Projekt ist, ein Fertighaus Modell X6543a5 aufzubauen, haben Sie vermutlich eine sehr genaue Vorstellung davon, was Sie tun müssen. Und selbst in der Softwareentwicklung gibt es Projekte, bei denen eigentlich sehr klar ist, was wann getan werden muss und wie lange das in etwa dauern wird. Natürlich könnte man diese trotzdem agil bearbeiten, nur … was ist der Vorteil? Insbesondere wenn man bedenkt, dass das Wasserfallmodell mit seiner konkreten Planung und klar kommunizierten Deadlines auch Vorteile hat. Verzichten wir auf diese, nur um agil zu sein?