Donnerstag, 7. März 2013

Was bedeutet agiles Anforderungsmanagement für IT-Dienstleister?

Immer wenn es um neue Projekte geht, wird der Ruf nach einer ausführlichen Anforderungsanalyse laut. Und wenn es in laufenden Projekten Ärger gibt, heißt es schnell: "Hätten wir uns mal mehr Zeit für die Anforderungen genommen ...". PRINCE2, Scrum oder SAFe sagen wenig zum Umgang mit Anforderungen. Merkwürdig, wo es doch so viel ausführliche Literatur darüber gibt, wie man an die Kundenwünsche kommt und die Anforderungen erhebt, verarbeitet, validiert und testet. Verzichtet man bei agiler Arbeitsweise auf Anforderungsmanagement? In diesem Beitrag zeige ich, wie PRINCE2, Scrum und das Scaled Agile Framework (SAFe) mit Anforderungen umgehen.


Es gibt ein tolles Buch (in deutscher Sprache) von Karl Wiegers über Anforderungsmanagement (/1/). Auf fast 500 Seiten lernen Sie viel darüber, wie man systematisch mit Anforderungen umgeht. Ich empfehle jedem dieses Buch, der sich mit Anforderungsmanagement befassen will (/2/). Wenn wir gute Ergebnisse liefern wollen, müssen wir ein gutes Verständnis für die Anforderungen aufbauen. Das braucht Zeit.

Und das ist genau das Problem: Zeit. Wir bekommen für unsere Projekte kaum noch Zeit.

Für IT-Dienstleister gibt es noch eine weitere Herausforderung. Ihre Aufgabe ist es häufig, beim Kunden eine Standardsoftware (z. B. ein Vertriebssystem) einzuführen. Das sind oft Produkte, die der Kunde gar nicht kennt (/3/). Auf der Seite der Lieferanten gibt es selten Spezialisten für Anforderungserhebung. Stellen Sie sich mal ein Gespräch zwischen zwei Personen vor, von denen der Interviewer nicht weiß, was er fragen soll und der andere nicht weiß, was er haben will. Mein Kollege Markus Meuten fasst die Erwartungshaltung der Kunden gern so zusammen: "Woher soll ich wissen, was ich will, bevor ich nicht gesehen habe, was ich bekomme."

Tja und was nun? Keine Anforderungen erheben?

Wenn ein Dienstleister auf einer ausführlichen Analyse vor der eigentlichen Arbeit besteht, ist er fein raus - und zwar aus dem Projekt. Wenn er auf eine Analyse verzichtet, ist er auch fein raus - nämlich aus dem Markt, weil er pleite ist.

Bei PRINCE2, Scrum oder dem Scaled Agile Framework wird anders mit den Anforderungen umgegangen. Bei Scrum gibt es ein kurzes Visionsdokument und ein Backlog mit User Storys. Bei PRINCE2 gibt es den Projektansatz und die Beschreibung des Endprodukts und der Teilergebnisse. Reicht denn das, um Ergebnisse zu liefern?

Ja, das tut es, denn es passiert ja noch mehr. In einem Buch über Anforderungsmanagement lesen Sie immer etwas über Stakeholderanalyse und Festlegen des Umfangs. Das wird bei PRINCE2 so gelöst, dass Sie einen Auftraggeber und einen Benutzervertreter festlegen. Bei Scrum gibt es einen Product Owner. Für diese Rollen ist das Produkt ihr Baby. Sie entscheiden. Sie sind dafür zuständig, Wünsche zu erfassen und Widersprüche in den Anforderungen zu klären.

In einem Buch über Anforderungsmanagement lesen Sie auch etwas über Validieren und Testen von Anforderungen. Bei PRINCE2 endet jede Produktbeschreibung mit Hinweisen zum Testen des Produkts. Bei Scrum sprechen der Product Owner und das Entwicklerteam über jede einzelne User Story und halten fest, wie sie getestet wird ("Ich bin zufrieden, wenn ..."). User Story und Akzeptanzkriterien bilden ein Pärchen und sind nur zusammen eine Anforderung. Akzeptanzkriterien schränken fachlich den Lösungsraum ein. So vermeidet man Verschwendung. Soweit es geht, werden Tests automatisiert.

Durch kurze Feedbackzyklen bei Scrum, durch Releases bei SAFe und durch Phasenübergänge bei PRINCE2 holen sich die Ersteller der Ergebnisse immer wieder Feedback, ob sie noch auf dem richtigen Weg sind (/4/). Auch das ist ein Überprüfen der Anforderungen.

Was ist mit den Anforderungsmodellen?

Aus der klassischen Anforderungsanalyse wissen wir, dass wir Modelle für die Arbeit brauchen. Damit kann man die Anforderungsingenieure schon eine Weile beschäftigen. Bei Scrum und SAFe ist es so, dass erst dann modelliert wird, wenn das Team es braucht (/5/) - nicht eher. Hier ist übrigens agilemodeling.com von Scott Ambler ein guter Einstieg in die Thematik.

Warum diese Vorgehensweise?


PRINCE2, Scrum und SAFe gehen bewusst so vor.Man startet mit groben Anforderungen und entwickelt sie schrittweise. Mal wird verfeinert und mal wird modelliert. Solch ein Vorgehen hält die sog. Verzögerungskosten (engl. cost of delay) und die Verschwendung gering. Je schneller man Ergebnisse zeigt, desto schneller bekommt man echtes Feedback und nicht nur eine Meinung vom Chef.

Wenn man Anforderungen erhebt und verarbeitet geht es um die Probleme von Kunden. Und für Probleme gibt es zwei wichtige Regeln von Gause und Weinberg (/6/):
  1. Man weiß nie, ob das Problem richtig definiert wurde, nicht einmal dann, wenn es gelöst wurde.
  2. Jede Lösung ist wieder die Ursache für neue Probleme.
Deswegen kann es niemals perfekte Anforderungsdokumente geben. Und deswegen ist auch ein hoher Anfangsaufwand zu teuer.

Wie sollte ein IT-Dienstleister vorgehen?

Ausschließliche Anforderungsanalysen am Anfang eines Projekts haben sich nicht bewährt. Bei einer agilen Arbeitsweise teilt man 50 Personentage eben in mehr Abschnitte auf. Man arbeitet am Anfang 10 Tage an den Anforderungen und produziert danach Ergebnisse. Dann arbeitet man wieder an den Anforderungen und produziert wieder Ergebnisse. Wir brauchen nicht Anforderungen für ein Jahr, sondern nur so viele, dass wir die nächste Etappe starten können (/7/).

Dazu reicht es ...
  • ... wenn es jemanden gibt, der die Benutzerseite vertritt (Product Owner),
  • ... wenn der ungefähre Umfang in einem Visionsdokument (/8/) abgestimmt wird,
  • ... wenn es User Stories mit Tests gibt,
  • ... wenn die Entwickler bei Bedarf ihre Modelle erstellen und
  • ... wenn man sich regelmäßig Feedback holt.
Wenn Sie als IT-Dienstleister ein Projekt gewinnen wollen, versuchen Sie so schnell wie möglich erste Ergebnisse zu zeigen. Das macht Eindruck. Umfangreiche Anforderungsdokumente beeindrucken Kunden leider nicht.

Anmerkungen

  • /1/ Wiegers, Karl E.: Software Requirements. Deutsche Ausgabe. Unterschleißheim: Microsoft GmbH, 2005, bestellbar unter http://www.amazon.de/Software-Requirements-Karl-E-Wiegers/dp/3860635948
  • /2/: engl. Requirements Management oder Requirements Engineering
  • /3/ Der Leitfaden des Software Engineering Institute zur Einführung von Standardsoftware erklärt, dass ein wesentlicher Teil in solchen Projekten für das Lernen über die Software reserviert werden muss. Siehe Cecilia Albert, Lisa Brownsword (Software Engineering Institute): Evolutionary Process for Integrating COTS-Based Systems (EPIC), Technical Report CMU/SEI-2002-TR-009, July 2002, abrufbar unter http://www.sei.cmu.edu/library/abstracts/reports/02tr009.cfm
  • /4/ Die Idee vom schnellen Feedback kennen wir auch vom Prototyping.
  • /5/ siehe Architekturprinzip Nr. 4 beim Scaled Agile Framework: "When in doubt, code or model it out", mehr unter http://scaledagileframework.com/system-architect/
  • /6/ Gause, Donald C. ; Weinberg, Gerald M.: Are your lights on? : how to figure out what the problem really is. New York: Dorset House Pub., 1990, Kindle-Ausgabe bestellbar unter http://www.amazon.de/Are-Your-Lights-On-ebook/dp/B004WOXYV2/
  • /7/ Das ist auch mit der Systemarchitektur möglich. Architektur kann man schrittweise entwickeln.
  • /8/ Ein Visionsdokument hält mit wenigen Worten fest, welches Problem für welche betroffene Parteien gelöst werden soll. Leffingwell schlägt vor, dass ein Visionsdokument folgende Fragen beantwortet:
    • What is the strategic intent of this program?
    • What problem will the application, product or system solve?
    • What features and benefits will it provide?
    • For whom does it provide it?
    • What performance, reliability and so on will it deliver?
    • What platforms, standards, applications and so on will it support?

Keine Kommentare:

Kommentar veröffentlichen