|
|
|
||
|
"Das Aussortieren des Unwesentlichen ist der Kern aller Lebensweisheit." Anforderungslisten
Bei der Analyse ist wichtig, dass sehr viel Klärung stattfindet: alle Anforderungen müssen aus- und bewertet und gegen das Hauptziel getestet werden, das während der Pre-Analyse definiert wurde. Es müssen also Entscheidungen getroffen werden, ob eine an das System gestellte Anforderung wirklich realisiert werden soll oder nicht. Bei vielen Entscheidungen werden Sie als Analytiker feststellen, dass sich Ihr Kunde sehr schwer tut und schwankt und eine große Unsicherheit an den Tag legt. Es ist aber wichtig, dass eine Entscheidung getroffen wird, die dann auch genauso formal und verbindlich wie alles andere behandelt wird. Erstellen Sie eine In/Out-Liste und nehmen Sie die Entscheidung dort auf:
Dieses Instrument ist höchst einfach, aber genauso effektiv. Es entspricht einer meiner Grundregeln für jedes Projekt: KISS (Keep it small and simple). Eine Entscheidung kann ja durchaus später revidiert werden, aber dann ist wenigstens klar, dass die Konsequenzen (d.h. der zeitliche und damit finanzielle Aufwand) ermittelt und in Rechnung gestellt werden können. Manchmal ist es auch sinnvoll, die In/Out-Liste parallel auf einem Flipchart-Blatt zu führen und dieses gut sichtbar im Projektraum aufzuhängen. Dann kann man immer schön mit dem Finger drauf zeigen :-) Wenn bereits klar ist, dass die Software in mehreren Schritten erstellt wird, so kann der In/Out-Liste natürlich auch eine Spalte hinzugefügt werden, in der bei einem "In" eine Versions- oder Modulnummer oder vielleicht auch ein Datum eingetragen wird. Die Liste hilft in jedem Fall ganz deutlich dabei, die Pflicht und Kür zu trennen: die "Pflicht" muss rein und die "Kür" fliegt raus oder wird dann gemacht, wenn die Pflicht erledigt ist. Dies ist wieder eine meiner Grundregeln für jedes Projekt: Erst die Pflicht, dann die Kür! Über die "Stabilität" (z.B. "hoch", "mittel", "niedrig") können Sie verfolgen, ob sich eine Anforderung häufig ändert. Manche Anforderungen gab es von Anfang an so und da waren sich auch alle einig und da ändert sich offensichtlich auch nichts mehr dran. Andere Anforderungen konnten noch nicht entschieden werden und werden von verschiedenen Leuten auch ganz verschieden beschrieben. Hier muss man sich fragen, wie hoch die Wahrscheinlichkeit ist, dass sich diese Anforderungen nach einer endlich gefällten Entscheidung doch noch mal ändern. Die "Komplexität" sagt eine Menge über die Detailliertheit der zugehörigen Geschäftsprozesse und damit über den Implementierungsaufwand aus. Sie ist als Vorlage für Abschätzungen wichtig, weil komplexe Anforderungen zur realistischen Abschätzung ggf. erst noch in Teilanforderungen zerlegt werden sollten. Das "Risiko" fasst die drei oben genannten Attribute als Beurteilung zusammen: eine instabile komplexe Anforderung hoher Priorität stellt ein viel höheres Risiko für das Projekt dar als eine stabile einfache Anforderung niedriger Priorität. Daran können Sie einerseits erkennen, wo noch Klärungsbedarf vor der Abschätzung besteht und andererseits festlegen, was zuerst realisiert werden sollte - nämlich immer das höchste Risiko! Sie sollten ggf. ferner notieren, wer diese Anforderung wann gestellt hat (Quelle), wer als Ansprechpartner für diese Anforderung definiert wurde und wer sie bearbeitet (Autor). Ein "Status" (aktiv, gelöscht, umgesetzt, etc.) kann bei längeren Analysephasen oder bei der Arbeit mit einem Team von mehreren Analytikern ggf. auch sehr hilfreich sein.
Sie sehen in der obigen Anforderungsliste auch eine Spalte "Teilziele", in der ich notiere, welche Teilziele von der jeweiligen Anforderung abgedeckt werden. Wenn Sie nach der vermeintlichen Fertigstellung der Anforderungsliste in einem Test feststellen, dass es Teilziele gibt, die von keinen Anforderungen abgedeckt werden, sollten Sie in einer weiteren Anforderungsiteration diese Teilziele erneut in Frage stellen. Wenn Sie anders herum Anforderungen haben, die Sie keinem Teilziel zuordnen können, sollte entweder der Rahmen des Projekts durch weitere Teilziele erweitert werden oder die Anforderungen gehören raus! Eine Analyse der Anforderungen ist jedenfalls erst möglich, wenn Sie durch diesen Test die Lückenlosigkeit und Widerspruchsfreiheit von Teilzielen und Anforderungen feststellen können - alles andere gibt nur Ärger!
Ein weiterer wichtiger Aspekt ist die Definition von Akzeptanzkriterien, die dann bei der Abnahme geprüft werden können. Deshalb werden sie gerne auch direkt als "Abnahmekriterien" bezeichnet. Außerdem definiert sich oft die Qualität der Software über die Akzeptanzkriterien. Dies gilt sicherlich nicht für alle Anforderungen, weil oft schon aus der Anforderung hervorgeht, wann sie erfüllt ist. Dies muss aber nicht immer der Fall sein und manchmal ist es auch einfach hilfreich zusätzliche objektive Kriterien zu definieren. Bei dem oben erwähnten Kennzahlensystem kann es hilfreich sein anzugeben, dass die Kennzahlen bei einem Multiprojektmanagementsystem nach einer Formel aus Projektdauer, Anzahl Ressourcen und durchschnittlichem Stundensatz vor und nach jedem Einzelprojekt zu bilden und zum Vergleich über alle Projekte tabellarisch darzustellen sind. Diese Aussagen können bei der Abnahme als Akzeptanzkriterien zur Prüfung der eigentlichen Anforderung herangezogen werden: Wenn vor und nach jedem Einzelprojekt eine Kennzahl nach der Formel aus den angegebenen Daten gebildet wird und wenn es eine tabellarische Darstellung dieser Kennzahlen über alle Projekte gibt, ist die Anforderung an die Software, dass ein Kennzahlensystem enthalten sein muss, hinreichend abgedeckt. Konkrete Beispiele dienen gerade bei abstrakten Anforderungen zur Veranschaulichung und Vervollständigung; sie reduzieren außerdem das Risiko der Fehlinterpretation der Anforderung. Die Definition der Akzeptanzkriterien bringt Sie oft automatisch vom "was" zum "wie", denn der Kunde ist in der Regel nicht gewohnt, sich so strikt an Prozesse und Phasen zu halten und die anderen Sichtweisen auf später zurückzustellen. Als Anbieter sind wir ja zurzeit eigentlich noch im Erstgespräch mit dem Kunden, haben ja eigentlich gerade erst von ihm das Fachkonzept (oder etwas Adäquates) erhalten, werfen einen ersten Blick darauf, bilden uns einen ersten Eindruck davon und vermitteln die notwendigen weiteren Schritte. Wir begründen also gerade, warum die Durchführung einer Pre-Analyse so wichtig ist. Die Anforderungen, die in unserem Gespräch bis jetzt gefallen sind, haben wir uns schon notiert und können daraus viele Fragen ableiten, die uns bei der Begründung der Pre-Analyse helfen. Sie werden als Anbieter kaum ein Fachkonzept mit einer Anforderungsliste inkl. der oben genannten Attribute und Akzeptanzkriterien bekommen, können aber sicherlich darstellen, dass die bereits vorhandenen Informationen eine gute Basis zur Aufarbeitung darstellen und die Pre-Analyse deshalb wohl sehr kurz ausfallen kann. Die professionellen Tools für das Anforderungsmanagement wie DOORS von Telelogic [L24] oder RequisitePro von Rational [L7] haben den immensen Vorteil, dass sie fertige Strukturen vorgeben und auch die Verknüpfung zu anderen Dokumenten und Diagrammen bieten und damit eine direkte Weiterverwendung der Anforderungen in den folgenden Phasen und oft auch ein Reverse-Engineering unterstützen. Die Anforderungen mitsamt der Beschreibungen und Attribute werden dabei in einem Datenbanksystem geführt und können automatisch anhand von Vorlagen zu vollständigen Dokumenten zusammengesetzt werden. Diese wiederum können dann zur weiteren Verwendung als PDF- oder Word-Dokument an den Kunden übergeben werden. Sie werden beim Kunden im Gespräch wahrscheinlich aber oft nur Papier und Bleistift dabei haben und erst später im Büro die Notizen mit einem solchen Tool aufarbeiten; sonst ist der Kunde ggf. schnell überfordert und fühlt sich zu sehr gesteuert und verwaltet. Dies muss natürlich im Einzelfall entschieden werden und hängt sicherlich auch davon ab, ob Ihr Ansprechpartner einer von den jungen dynamischen Managern oder ein strukturiert arbeitender Ingenieur ist.
Auch Aspekte wie die Revisionssicherheit (Versionierung, Historisierung), Security (Verluste bei Übertragungen, Verschlüsselung von Daten, Autorisierung, Authentifizierung, Verwendung von Zertifikaten) und die Steuerung von unterschiedlichen Berechtigungen für unterschiedliche Akteure in gleichen Anwendungsfällen führen zu einer deutlichen Verkomplizierung der Realisierung, inkl. der Tests, Bedienungsanleitung und Anwenderschulung. Die Möglichkeit für Was-wäre-wenn-Szenarien kann besonders tückisch sein, wenn die Ergebnisse verschiedener Szenarien auch noch als Variantenübersicht abrufbar und sogar später noch nachvollziehbar sein sollen. Oft wird auch die Umgebung des Arbeitsplatzes völlig vergessen: wenn die Software von einem Kranführer mit Handschuhen auf einem Touch-Screen bedient werden können muss, wird das Programm anders gestaltet werden, als wenn eine Leitstelle in einem Spezialraum möglichst viele Daten des zu überwachenden Systems gleichzeitig darstellen soll. Bei den obigen Anforderungen bzw. Aspekten ist es teilweise schon schwierig, sie sauber als "funktional" oder "technisch" einzustufen. Ihnen ist sicherlich aufgefallen, dass ich einige davon schon bei den funktionalen Anforderungen als "typisch" dargestellt hatte. Manchmal werden diese Anforderungen einfach nur aus verschiedenen Sichten von verschiedenen Akteuren bzw. Interessensgruppen geäußert. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|