Hohe Gipfel

Anforderungsmanagement

 

Anforderungsmanagement

Der Fachbuchautor Christof Ebert schreibt in seinem Buch „Systematisches Requirement Engineering“: „Früher dachte ich, Termin und Budgetüberschreitungen kommen von schlechter Schätzung. Dann dachte ich, sie kommen von hoher Komplexität. Heute weiß ich, dass sie davon kommen, dass praktisch alle Projekte zu spät begonnen werden. Dann fehlt die Zeit für die Anforderungsanalyse und Planung. Damit ist das Scheitern vorprogrammiert.“ (Ebert, 2012)

Diese Einsicht deckt sich auch mit meinen eigenen Erfahrungen der letzten 20 Jahre. Und das ganz unabhängig davon, ob es sich um Auftragsentwicklungen, oder interne Unternehmensprojekte handelt. Es wird viel Zeit in die Akquise und die Verhandlungen zu einem Projekt gesteckt. Der Auftrag liegt auf dem Tisch und das Projektteam steht womöglich auch schon in den Startlöchern. Jetzt müssen diese schnell produktiv werden. Da ist die Verlockung groß, die Anforderungen nicht weiter ins Detail zu zerlegen und abzustimmen, sondern schon mal beginnen zu lassen.

Aber was versteht man eigentlich genau unter einer „Anforderung“?

Eine Anforderung beschreibt, was der Kunde, Auftraggeber oder Benutzer vom „zu entwickelnden Produkt“ erwartet (Nutzen, Eigenschaften, Verhalten, Attribute, Mehrwert).

„Könntest Du mir bitte sagen, welchen Weg ich von hier aus nehmen soll?“, fragt Alice im Wunderland die Katze am Wegesrand. „Das hängt vor allem davon ab, wohin Du gehen willst“, antwortet diese. „Ich weiß es nicht…“, sagte Alice. „Dann ist es egal, wohin Du gehst“, antwortet die Katze. (Carroll, 1865)

Auch wenn dieser amüsante Dialog aus dieser herrlichen Geschichte witzig anmutet, steckt doch sehr viel Weisheit darin. Ohne ein klares Ziel, wird uns der Weg den wir gehen irgendwo hinbringen. Auf das IT Projektgeschäft übertragen ist es somit reiner Zufall wenn wir das treffen, was der Kunde eigentlich wollte. Viel höher ist die Wahrscheinlichkeit dass wir völlig daneben liegen. Fällt das in einem frühen Projektstadium auf, können mittels Changerequest vielleicht noch notwendige Änderungen eingesteuert werden. Je später im Zeitverlauf eines Projektes aber noch Änderungen durchgeführt werden, desto größer sind dessen Auswirkungen. Das betrifft sowohl Wechselwirkungen mit bereits realisierten Systemteilen, als auch Auswirkungen auf bestehende Dokumentationen und Architekturen.

Damit ist ein Designfreeze so früh wie möglich anzustreben und ab dann Änderungen nur noch über einen geregelten Prozess zuzulassen. Dieser intensiv zu managende Änderungsprozess muss die Auswirkungen von ChangeRequests transparent machen. Dafür ist kompetentes Personal einzuplanen. Nur wenn die Auswirkungen und damit Risiken einer Änderung im Detail klar sind, kann über ihre Umsetzung entschieden werden.

Mit diesem kleinen Ausflug in das Änderungsmanagement wird klar, dass es deutlich besser wäre, Änderungen nach Möglichkeit ganz zu vermeiden.

Ist diese Aussage aber richtig, wenn man sich moderne agile Entwicklungsmethoden ansieht, die Änderungen willkommen heißen?

Ich glaube ja, denn auch bei agilen Methoden sind klare Anforderung die Basis für den Projekterfolg.

Doch Anforderungen sind per Definition leider unsicher. Christof Ebert schreibt dazu in seinem Buch, dass sich Anforderungen mit einer monatlichen Rate, die 1-5% des gesamten Projektauftrags betragen ändern. Das heißt, dass von Anforderungen, die mit insgesamt 100 Personenwochen Projektaufwand abgeschätzt wurden, sich pro Monat Anforderungen im Umfang von bis zu 5 Wochen ändern! Diese 5 Wochen relative Änderung sind nicht immer mit 5 Personenwochen Aufwand zu erledigen. Stellen Sie sich vor, dass die Änderung erst kommt, nachdem die Anforderung bereits integriert ist. Dann kann eine Änderung ein Vielfaches des ursprünglich dafür notwendigen Aufwands betragen. Diese Hebelwirkung unterstreicht nochmals den Geschäftsnutzen eines systematischen Requirement Engineerings. Was über dieser 5% Änderungsrate pro Monat liegt, gefährdet den Projektverlauf massiv und die daraus resultierenden Projektrisiken können nur mit iterativen oder agilen Vorgehensweisen kompensiert werden.

 

Die Standish Group erstellt seit 1994 alljährlich den Chaos Report der sich mit dem Erfolg- bzw. Misserfolg von IT Projekten beschäftigt. Sie gehört zu den bekanntesten und wichtigsten Langzeitstudien im Bereich Projektmanagement, seit 1994 wurden über 40.000 Einzelprojekte wissenschaftlich untersucht.

Die Studie unterteilt in Typ1, Typ2 und Typ3 Projekte.

  • Typ 1
  • Projekt erfolgreich abgeschlossen: Das Projekt wurde rechtzeitig, ohne Kostenüberschreitung und mit dem ursprünglich geforderten Funktionsumfang abgeschlossen.
  • Typ 2
  • Projekt teilweise erfolgreich: Das Projekt wurde abgeschlossen, es kam jedoch zu Kosten- und/oder Zeitüberschreitungen oder es wurde nicht der vollständige geplante Funktionsumfang erreicht.
  • Typ 3
  • Projekt nicht erfolgreich: Das Projekt wurde abgebrochen.

Die Studie untersucht Ursachen für Erfolg und Misserfolg und stellt eine Korrelation zwischen Erfolgswahrscheinlichkeit und Projektgröße fest.

Die festgestellten Haupterfolgsfaktoren sind:

  1. Einbindung der Endbenutzer
  2. Unterstützung durch das obere Management
  3. Klare Anforderungen

Die Hauptpunkte, die zum Scheitern der Projekte führen sind:

  1. fehlende Zuarbeit durch Benutzer
  2. unvollständige/unklare Anforderungen
  3. häufige Anforderungsänderungen

 

(http://de.wikipedia.org, 2015)

Auch wenn die Studie in den letzten Jahren stark unter Kritik stand und vor allem die von der Standish Group unbelegten Abbruchzahlen angezweifelt werden, die Studie bestätigt das Paradigma moderner Projektmanagementsysteme, klare Anforderungsdefinition und intensive Einbindung der aller Stakeholder in das Projekt zu forcieren.

Interessant in diesem Zusammenhang ist auch die Beobachtung, dass in Krisenzeiten wie in den Jahren 2001 nach dem 11. September und 2008 in der Wirtschaftskrise die vermeintlich unnötigen Ausgaben für Anforderungsmanagement und Reviews drastisch reduziert wurden. Dies hatte jeweils dramatischen Einfluss auf die Projekterfolge der betreffenden Jahre. Christof Ebert resümiert in seinem Buch „Technologische Herausforderungen sind keine gravierenden Projektrisiken. Schlechtes Projektmanagement dagegen schon.“ (Ebert, 2012)

 

Doch wo sind die Schwierigkeiten zu klaren Anforderungen zu kommen?

Da ist, wie oben bereits erwähnt, häufig einfach der Faktor Zeit. Doch wie wichtig es für den Anforderungsmanager ist, Anforderungen immer weiter herunter zu brechen und zu hinterfragen zeigt die Praxis. Mit den folgenden Beispielen möchte ich das etwas deutlicher machen:

  • Beispiel1: Der Auftraggeber erwähnt Funktionen nicht, weil sie für ihn selbstverständlich sind
    • Hier muss die Devise lauten, „denken Sie nicht für Ihren Auftraggeber, sondern lassen Sie es sich erklären“. Der Auftraggeber und seine Vertreter sind in der Regel die Spezialisten für das was am Ende herauskommen soll. Als Anforderungsanalyst lässt man sich hier häufig schnell dazu verleiten zu glauben verstanden zu haben und nicht weiter fragen. Sprechen Sie aus was Sie glauben verstanden zu haben und lassen Sie sich ihre Auffassung bestätigen. Sie kennen die Bedürfnisse des Kunden und das was er braucht, niemals so gut wie er selbst. Eine der Schlüsselregeln im Requirement Engineering besagt, dass man dem Kunden das liefern muss was er will und nicht das, was er (vermeintlich) braucht.
  • Beispiel2: Schwammig formuliere Anforderungen
    • Schwammige Formulierungen sind irgendwie tierisch bequem- für beide Seiten. Deshalb sind sie ja auch so beliebt. Der Auftraggeber soll sich festlegen- weiß aber im Detail vielleicht gar nicht so genau was er will. Gut wenn die Formulierung da butterweich formuliert ist und man da am Ende noch jede Menge Interpretationsspielraum hat was eigentlich gemeint war.
    • Auf der anderen Seite ist da natürlich die Auftragnehmer Seite. Auch hier sind schwammige Formulierungen eine bequeme Sache- vor allem wenn man noch nicht so genau weiß wie man es machen will und was das Ergebnis wirklich alles können wird.
    • Schwammige Anforderungen sind also allseits beliebt- zumindest in der Definitionsphase der Anforderungen. Spätestens wenn es an die Realisierung geht, fallen diese mit aller Gewalt auf die Füße. Dann hagelt es Changerequests und Designfehler wegen unklarer Anforderungslage
  • Beispiel3: Anforderungen die erst spät klar werden
    • Je innovativer und komplexer ein Projekt ist, desto höher ist die Wahrscheinlichkeit, dass sowohl von Auftraggeber- als auch von Auftragnehmer Seite Anforderungen erst sehr spät in der Realisierungsphase klar werden. Dieser Gefahr entgegnet man durch eine gründliche Anforderungsanalyse in der die künftigen Anwendungsszenare durchgespielt und immer wieder auf Konsistenz geprüft werden.

Daraus ergeben sich die 3 Hauptrisiken des Anforderungsmanagements:

  • Fehlende Anforderungen
    • Es ist wichtig zu aller erst den Business Case des Kunden zu verstehen. Mit dem Verständnis für den Business Case, wird der Nutzen klar, der für den Kunden nach erfolgreicher Projektrealisierung entstehen soll.
    • Das blose Abfragen all dieser Anforderungen macht eine Anforderungsspezifikation aber noch lange nicht vollständig. Es ist wichtig den Grund, die Querbeziehung zwischen den Anforderungen und die Perspektive aus der heraus die Anforderung formuliert wurde zu verstehen.
  • Falsche Anforderungen
    • So wie man vergeblich nach fehlerfreier Software sucht, so muss man auch von fehlerhaften Anforderungen ausgehen. Doch qualitativ unzureichende Anforderungen die widersprüchlich-, inkonsistent-, lückenhaft sind, oder Denkfehler aufweisen führen nicht nur zu ständigen ChangeRequests, sie reduzieren auch die Arbeitsmotivation des Projektteams das durch solche Anforderungen zunehmend orientierungsloser wird.
    • Nur durch frühzeitiges validieren und verifizieren der Anforderungen, werden Fehler aufgedeckt. Die späteren Anwendungsszenare sind immer und immer wieder durchzuspielen um solche Fehler aufzudecken.
    • Am besten machen das erfahrungsgemäß die Tester. Diese haben ein Händchen für das Fehlerpotenzial und entdecken bei Reviews sehr viel mehr Fehler als Projektmanager oder Architekten. Darüber hinaus, ist es ein hervorragendes Training für die eigentlichen Tests, denn dadurch sind die Anwendungsszenare bestens bekannt.
  • Sich ändernde Anforderungen
    • Anforderungen deren Änderungen nicht kontrolliert werden, führen zu Termin und Kostenüberschreitungen und haben negativen Einfluss auf die Qualität
    • Auf keinen Fall dürfen Änderungen durchgeführt werden, deren Auswirkungen nicht analysiert und bewertet wurden.
    • Ab der zweiten Projekthälfte ist es ratsam, nur noch sehr wichtige Änderungen ohne größere Auswirkungen zuzulassen.
    • Ich wurde kürzlich von einem sehr jungen Softwareentwickler gefragt, ob man meiner Meinung nach jedes Projekt und sei es noch so klein, managen muss? Ich antwortete ihm, dass selbst ein Kleinstprojekt ein funktionierenden Änderungsmanagement benötig. Nur so ist dokumentiert, welche Anforderungen aktuell gültig sind und wo Änderungen anstehen. Hast Du Deinem Kunden erst einmal einen Termin auf Basis der vereinbarten Anforderungen versprochen, wirst Du es häufig erleben dass schon kurze Zeit danach die ersten Änderungswünsche hereinschneien. Das ist zwar ganz normal- muss aber abgefangen werden. Denn meist handelt es sich ja nur um „Kleinigkeiten“ die man doch noch so mitmachen kann. Doch auch vermeintliche Kleinigkeiten haben Wechselwirkung mit anderen Systemteilen, erhöhen die Komplexität und den Testaufwand. Ehe man sich versieht baut man sich mit einer solchen Kleinigkeit einen Fehler an ganz anderer Stelle ein. Und wenn man es erst einmal zugelassen hat, dass der Auftraggeber noch Anforderungen nachschieben darf, wird man das sehr schnell kaum noch unterbinden können. Und wie soll das Projekt dann zum vereinbarten Termin fertig werden? Änderungen erzeugen Aufwand für Realisierung, Test und Dokumentation und der muss sich auf die benötigte Realisierungszeit niederschlagen. Man müsste sich ja unterstellen lassen, den Aufwand nicht ehrlich kalkuliert zu haben, wenn Änderungen möglich sind, ohne dass dies Auswirkung auf Zeit und Geld hat. Nur wer Änderungen kontrolliert, hat die Möglichkeit die Erreichung der Projektziele zu kontrollieren.

So, für heute möchte ich damit Schluss machen. In der nächsten Folge greifen wir dieses Thema wieder auf ich möchte Ihnen dann etwas über die verschiedenen Arten von Anforderungen erzählen. Bis dahin wünsche ich Ihnen viele grüne Meilensteine tschüss und bye bye Ihr Andreas Haberer

 

Literaturverzeichnis

Carroll, L. (1865). Alice im Wunderland. USA: Bassermann, Edition, 2014.

Ebert, C. (2012). Systematisches Requirements Engineering. Stuttgart: dpunkt.Verlag Heidelberg.

http://de.wikipedia.org. (1. 01 2015). Von http://de.wikipedia.org/wiki/Chaos-Studie: http://de.wikipedia.org/wiki/Chaos-Studie abgerufen