Anforderungsmanagement–Wozu sind Spezifikationen gut?

Nobert Eder hat sich zu einem Streitgespräch Gedanken gemacht. Dabei hat er, so ich verstehe Wert auf Anforderungen gelegt.

Wer sich für den Inhalt interessiert und der Meinung ist nichts aus dem Kontext gerissenes lesen zu wollen, darf gerne seinen Post durchlesen.

Er sagt

    • Die Anforderungen müssen bekannt, verständlich und vollständig sein.
    • Die Bewertung wurde durch die Entwicklung durchgeführt. An dieser Bewertung ist nicht zu rütteln. Bei Engpässen der Ressourcen muss (und das sollte es ohnehin) mit Prioritäten gearbeitet werden.
    • Die Bewertung der Entwicklung stellt die Diskussionsgrundlage zwischen Projektverantwortlichen und Kunden dar. An dieser Stelle kann über Prioritäten oder Änderung der Funktionalität diskutiert werden. Bei Änderungen ist eine erneute Bewertung durch die Entwicklung notwendig.

Wer sich mal Lektüre zu Anforderungsmanagement zur Seite genommen hat, der weiß, das hier noch eine ganze Menge mehr dazu gehört. Ich zitiere hier mal gerne Wikipedia:

 

    • Korrekt
    • Unzweideutig
    • Vollständig
    • Konsistent
    • Bewertet nach Wichtigkeit und/oder Stabilität
    • Verifizierbar
    • Modifizierbar
    • Verfolgbar (Traceable)

Richtig Anfordern

Hat Norbert an all das gedacht? Vielleicht hat er es. Aber ich konnte es nicht aus dem Text nicht explizit entnehmen.

Wie kann ich etwas verifizieren? Verifizieren heißt bei Software zu zeigen, dass man das richtige gemacht hat! Nur weil ich sage, ich kann ein Haus bauen und etwas hinstelle, heißt es noch lange nicht, das es ein Haus ist. Die Anforderungen müssen also überprüft werden können.

Beispiele für schlechte Anforderungen, die nicht verifizierbar sind:

  • Das UI soll bunt sein
  • Die Ergebnissdateien sollen verglichen werden
  • Das Laden der Datei soll schnell sein

Ist schwarz und rot schon bunt? Oder rot, blau, gelb? Wie soll verglichen werden? Zeilengleichheit? Hashwert? Phonetische Übereinstimmung? Wie sind 2 Minuten schnell? sind 10 Sekunden schnell? Die Trennung von Technischem Inhalt und Beschreibung der Anforderung, sei es aus Benutzersicht, oder dem zu entwickelnden System, gehören erst einmal weg. Es sei denn, der Benutzer ist versiert und es gehört direkt zu seinen Anforderungen (z.B. einen MSSQL zu nutzen). Sie sind alleine deswegen schon getrennt zu betrachten, da Modifizierbarkeit sonst schwer fällt. Wenn sich Änderungen in der Infrastruktur ergeben, die Anforderungen aber nicht betroffen sind, was muss hier gemacht werden? Anpassungen an Dokumentation!

Ganzheit Betrachten

Anforderungen sind speziell im Kontext des Gesamtsystems zu betrachten! Für ein Echtzeitsystem können 5ms schon langsam sein. Messbar heißt im besten Fall also immer mit einer Einheit hinterlegt. Maßeinheiten sind in aller Regel genormt. Hier könnte ich jetzt zu geeigneten Messmitteln abschweifen. Wer sagt mir, das 20 cm wirklich diese Länge haben? Wenn ich auf die anderen Punkte tiefer eingehen würde, kämen wir zu folgendem Ergebnis:

Ohne ein ordentliches Werkzeug tut diese Handarbeit ganz schön weh! Die Versionierung der Anforderungen und der Dazugehörigen Dokumente gehört bei ISO konformem Arbeiten nämlich auch dazu! Ihr wollt gar nicht wissen, was für einen Ratenschwanz das alles nach sich zieht. Hoch lebe die Bürokratie. Schauen wir uns mal im groben an, was für Anforderungen alles so notwendig wird:

 

image

 

Über die Reihenfolge und den Tiefgang möchte ich mich hier gar nicht unterhalten, denn Möglichkeiten der Prozessoptimierung, also wann was sinnvoll ist, kommt auf das System, bzw. die Projektstruktur an. Und Software ist dabei eventuell nur ein kleiner Teil, wenn wir uns nicht nur in reinen Software Projekten befinden.

Reflektion Ermöglichen

Rückverfolgbarkeit über die Prozesskette hinweg ist eine Welt für sich.Spaß macht diese Art der Arbeit allerhöchstens dann, wenn einem die richtigen Werkzeuge die notwendige Infrastruktur abnehmen und ich mich auf den Inhalt konzentrieren kann, also den funktionalen Anteil dessen, was von mir gefordert wird! Und da ist es egal, ob ich Anforderungen schreibe, Design Files entwerfe, Projekt und Testpläne erstelle, oder einen Bericht zu dem Test ausfülle. Mal ehrlich. IDs pflegen über 100 von Dokumentationsseiten ist nichts, was für Menschenhand gedacht ist

Ihr denkt euch sicherlich, das schießt alles über das Ziel hinaus. Da mögt ihr für euch auch recht haben, denn es zwingt euch keiner. Wer diesen Prozess einer ISO konformen Arbeitsweise aber mal miterlebt, kann dann auch wirklich reflektieren, was hier eigentlich an Qualitätskontrollen vorgenommen werden und wozu diese gut sind.

Daraus schließe ich bezugnehmen auf die obige Auflistung von Anforderungen

  1. Was nicht Korrekt beschrieben ist, kann nicht “richtiger” werden
  2. Was zweideutig ist, kann falsch interpretiert werden
  3. Was nicht vollständig ist, kann nicht zusammen gestellt werden
  4. Was nicht konsistent ist, provoziert Fehlverhalten
  5. Was nicht bewertet wird, kann nicht eingeordnet und terminiert werden
  6. Was nicht beweisbar ist, kann nicht überprüft werden
  7. Was nicht modifizierbar ist, kann nicht weiter entwickelt werden
  8. Was nicht verfolgbar ist, kann nicht gefunden werden

Und vor allem vor jedem Auditor: Was nicht unterzeichnet auf Papier steht existiert nicht.

Wie können wir also ein System nach qualitativen Aspekten auf den Markt bringen wenn wir keine Differenzierte Betrachtung machen und technische Aspekte nur dort lassen, wo sie hingehören: In das System (Design)

Stellt euch also mal beim nächsten Hack-a-thon was ihr damit eigentlich erreichen wollt. Sind es rein funktionale Aspekte, oder gehen diese weit darüber hinaus, weil sie nicht nur meine Persönliche Befindlichkeit oder vorlieben spiegeln?

Published Mittwoch, 6. April 2011 22:32 von Rainer Schuster

Kommentare

# re: Anforderungsmanagement–Wozu sind Spezifikationen gut?

Donnerstag, 7. April 2011 08:34 von Norbert Eder

Du beziehst dich nur auf die von dir zitierte Aufzählung meines Beitrages und nicht auf die vollinhaltliche Aussage. Der Abschnitt, aus dem die Aufzählung stammt, plus der darauffolgende beschreiben, dass zu technisch und zu wenig inhaltlich diskutierte Anforderungen zu ungenügendem Code führen können (dies in der Regel meist tun). Im Gesamtkontext ist ersichtlich, dass die Aufzählung nichts mit der Beschreibung einer guten SRS zu tun hat.

Vielleicht ergänzend: Ich spreche hierbei davon, dass bewusst durch Diskussionen der UI etc. technische Vorgaben geschaffen werden (durch die Businessseite!!), die für die Anforderung irrelevant sind und lediglich der Erfüllung eines Kundenwunsches dienen. Dieser Kundenwunsch wird jedoch nicht inhaltlich definiert, sondern zu technisch, einschränkend auf genau einen bestimmten Fall. Ebenso bezog ich mich auf die Tatsache, dass vielfach an der falschen Stelle bewertet wird und es eben auch dadurch zu Abkürzungen in der Entwicklung kommt (inkl. aller Nachteile).

Ich beziehe mich also nicht auf die Frage wozu Spezifikationen überhaupt gut sind, wie Anforderungen zu definieren sind, welche Modelle eingesetzt werden sollten/könnten, sondern lediglich darauf, dass Softwareeinschränkungen (hinsichtlich Erweiterbarkeit etc.) bereits bei den Anforderungen beginnen und nicht erst beim Umsetzer (wie häufig angenommen wird).

# re: Anforderungsmanagement–Wozu sind Spezifikationen gut?

Montag, 11. April 2011 00:23 von Rainer Schuster

Hi Ilker,

danke für deine Antwort. Ich habe ehrlich gesagt gar nicht mitbekommen, was so über den twether geredet wurde. Ich habe bezugnehmen auf den Post von Norbert meine Meinung und Erfahrung dazu kundgeben wollen. Ich bin ebenfalls der Meinung, dass dies ein ziehmlicher Aufwand ist. Wenn aus den Tests ein Anforderungsdokument erzeugt werden kann, das die Spezifikation spiegelt ist das für mich ausreichend. Was ich eigentlich sagen will: Gemessen an der Wertschöpfung eines Produktes und dem Vorhaben es zu etablieren oder was auch immer damit anzustellen kommt man an dem Thema in einer Tieferen breite nicht daran vorbei.

Eins sollte jedem Klar sein der Code schreibt: Nur was dokumentiert wird existiert. Auch Anforderungen ;) ob das notwendig ist hängt letztendlich vom Auftrag ab. Aber auch hier: Was nicht gut dokumentiert, kann nicht gemessen werden.

# QuickLinks for April 2011 | (Agile) Testing

Sonntag, 1. Mai 2011 01:43 von QuickLinks for April 2011 | (Agile) Testing

Ping Antwort von  QuickLinks for April 2011 | (Agile) Testing

Kommentar abgeben

(verpflichtend) 
(verpflichtend) 
(optional)
(verpflichtend)