Inzwischen sind einige Wochen in meinem Projekt bei der alpha-board GmbH, einem Dienstleister für agile Hardware-Entwicklung, in Berlin vergangen und bis jetzt haben wir beinahe jede Woche geliefert. Zuerst konstruierten wir einen Prototyp, um technische Risiken zu minimieren. Dieser war zwar alles andere als hübsch, aber nun war geklärt: Die kritische Funktionalität ist realisierbar. Im nächsten Prototyp zogen wir für eine bessere Marktfähigkeit die Constraints der Funktionalität an. Im dritten Sprint, letzte Woche, wollte mein Team eine vorgesehene Heizeinheit mit einer eigens entwickelten Induktionsspule realisieren. Leider blieb die erhoffte Wirkung aus. Der Sprint war gnadenlos gescheitert. Und jetzt?Na ist doch super! In keinem anderen Sprint wurde wohl so viel Geld eingespart wie in diesem. "Fail fast" nennen das die Agilisten. Boris schreibt zu dieser Thematik (Gloger 2014): „Das Produkt muss durch die gelieferten Produktteile beweisen, dass es wert ist weiterentwickelt zu werden.“ Entwickeln um jeden Preis, das ist etwas für Anforderungsingenieure ohne Kostendruck, nicht für Pragmatiker.
Problematisch wird es erst, wenn der Kunde schon zu viel in die Anforderungserhebung investiert hat. Jede Menge Geld ist verbraucht und vermeintlich alle Daten für ein Produkt sind schon verfügbar. Scheitert nun ein Sprint, sprich eine Anforderung ist nicht lieferbar, ist viel Geld verloren, weil darauf aufbauende Anforderungen umsonst spezifiziert wurden.Das logische Resultat für viele Kunden ist: Jemand muss schuld sein. Wahrscheinlich ein Business Analyst, ein Ingenieur, ein Manager oder alle drei. Je nach verlorenem Betrag wird mit den entsprechenden Personen dann verfahren, ein Change Manager tritt auf den Plan und der Planungsprozess für zukünftige Projekte wird intensiviert. Das kostet zusätzlich Geld.Die angenehmsten Projekte sind für mich - unter anderem aus diesem Grund - Projekte der Kategorie „ist gerade reingekommen", "es drängt“ und „Produktanforderungen sind unklar“, denn sie implizieren: Es gibt keine vorangegangene Planung und damit viel weniger zu leistende Überzeugungsarbeit, falls etwas Unvorhergesehenes passiert. Ich behaupte außerdem, dass diese Konstellation den Entwicklern eine höhere Wahrscheinlichkeit bietet, ein besseres Produkt zu entwickeln, als es der Kunde erwartet.[caption id="attachment_23682" align="aligncenter" width="666"]
Viktor Hanacek, picjumbo[/caption]
Bei unserem aktuellen Projekt waren die genauen Anforderungen nicht weiter spezifiziert. Das ist besser? Ja, da nur dann Forderungen des Kunden übertroffen werden können. Lassen Sie mich das näher erklären. Henry Ford wird der Satz zugeschrieben: "If I had asked people what they wanted, they would have said faster horses." Er impliziert damit, dass ein Entwickler immer besser weiß, was der Kunde braucht, als es der Kunde artikulieren könnte. Dieses Denken hat sich aber nie wirklich etabliert. Dagegen werden so gut wie alle Anforderungen vor der eigentlichen Entwicklung vom internen oder externen Kunden spezifiziert.Viele Daten existieren damit bereits und verhindern Innovation. Boris schreib dazu (Gloger 2014): „[…] Dadurch treibt das Produkt in eine vorgegebene Richtung, obwohl die Spezialisten im Team eine besser geeignete Lösung anbieten könnten." Darüber hinaus haben die spezifizierten Daten mit dem schlussendlichen Produkt ungefähr so viel zu tun wie die sprechende Klammer mit dem eigentlichen Office-Produkt: Ob der Anwender sie wirklich braucht, ist eine Hypothese und zwar eine sehr teure. Auch im agilen Umfeld arbeitet man mit Hypothesen, allerdings nur - wie im 1. Teil angesprochen -, um sie zeitnah zu beweisen oder zu widerlegen.[caption id="attachment_23683" align="aligncenter" width="666"]
startupphotos[/caption]
Mein aktuelles Projekt beim Leiterplatten-Entwickler alpha-board GmbH hat mich gelehrt: Für Scrum macht es keinen Unterschied, ob man Hardware oder Software entwickelt. Denn der ideale Zeitpunkt der Anforderungsspezifikation ist immer gleich: Möglichst kurzfristig vor der Umsetzung. Bei unserem Produkt handelt es sich um eine Neuentwicklung, die es so auf dem Markt noch nicht gibt und per Crowdfunding finanziert wird.Die Kunden investieren also in eine Vision und nicht in ein Pflichtenheft mit detaillierten Anforderungen. Im Umkehrschluss bedeutet das: Für eine Vision bezahlt zu werden bedeutet, dass man Anforderungen erst konkretisieren muss, wenn man sie tatsächlich braucht. Der Zwang, vorher alles wissen zu müssen, ist minimal. Mein Team hat sich schnell an den Umstand gewöhnt, dass sein bearbeitbares Backlog nur etwas größer ist als der aktuelle Sprint. Und warum? Es hatte keine andere Möglichkeit. Auch Mike Cohn hat User Stories nicht aus einem Idealgedanken heraus verwendet, sondern weil er einfach nicht mehr Zeit bekommen hatte, um alles detailliert zu planen (Cohn 2009).Aber gar nicht zu planen, ist unrealistisch. Beispielsweise war mein Team regelmäßig versucht, nur auf den nächsten Prototyp hin zu entwickeln und nicht auf das eigentliche Endprodukt. Das regulierte sich glücklicherweise schnell selbst, denn unser Product Owner pochte immer wieder auf die Erfüllung der eigentlichen Vision. Dass dies nicht immer eine schwierige Lösung bedeuten muss, zeigt das anfangs beschriebene Induktionsspulen-Problem: Für die Heizeinheit hat es schlussendlich auch eine handelsübliche Heizspule getan.In diesem Sinne, euer Marcus.Quellen:Cohn, M. (2009). User Stories Applied. Boston, MA: Pearson Education, Inc.Gloger, B. (2014). Wie schätzt man in agilen Projekten. München: Carl Hanser Verlag.