Heute ist mir mal wieder klargeworden, wie wichtig klar formulierte Anforderungen sind, um eine passende Software entwickeln zu können. Was war passiert? Jemand hat versucht mich zu kontaktieren, und hat meine private Mailadresse verwendet, die im Impressum einer meiner Websites aufgeführt ist. Da ich einige Tage im Urlaub war, hat dies dazu geführt, dass ich diese Mail erst heute beantworten konnte. Für solche Fälle hatte ich aber extra einen generischen Mailuser eingerichtet. Die Mails, die dort ankommen, können von meinen Urlaubsvertretern gelesen werden. Meine Site war jedoch missverständlich aufgebaut.
Software Requirements Specifications sind im IEEE Standard 830 erstmalig definiert worden. In dieser Norm kann man die Anforderungen nachlesen, die an Anforderungen, bzw Spezifikationen generell zu stellen sind (siehe z.B. in Wikipedia → Software Requirements Specification). Dort werden Requirements, bzw Anforderungen wie folgt definiert:
„Mit Requirements (deutsch: Anforderungen) ist sowohl die qualitative als auch die quantitative Definition eines benötigten Programms aus der Sicht des Auftraggebers gemeint. Im Idealfall umfasst eine solche Spezifikation ausführliche Beschreibung von Zweck, geplantem Einsatz in der Praxis sowie dem geforderten Funktionsumfang einer Software. Hierbei sollte fachlichen – „Was soll die Software können?“ – wie auch technischen Aspekten – „In welchem Umfang und unter welchen Bedingungen wird die Software eingesetzt werden?“ – Rechnung getragen werden.“ – siehe Wikipedia
Generell ist es wichtig, dass man die Anforderungen eindeutig und nachprüfbar formuliert. Eine zu vage Formulierung erkennt man oft daran, dass man bereits Schwierigkeiten damit hat, Testfälle zu formulieren.
Hier ein Beispiel für eine zu vage Formulierung und den passenden Testfall: „Der Geldautomat soll nach Eingabe von Karte und Daten unverzüglich Geld ausgeben“ (Anforderung) „Der Kunde führt eine Gesundheitskarte ein, und tippt 4 Ziffern. Geld wird ausgeworfen.“ (Testfall).
An diesem Beispiel erkennt man, wie wichtig es ist, den Betriff „Karte“ und „Daten“ genauer zu spezifizieren. Anderenfalls besteht die Gefahr, daß nicht einmal ein Test, diese Fehler findet.
Die folgenden Beispiel zeigen sinnvollere Formulierungen:
Nachdem Anforderungen formuliert sind kann man weitere Techniken anwenden, um sie zu verarbeiten.
Darauf gehe ich dann in späteren Artikeln genauer ein. Hier nur ein kurzer Überblick:
In diesem Schritt geht es darum, Anforderungen zu konzentrieren und diese dann zu bewerten. Hierfür klärt man mindestens die folgenden Punkte:
Dabei ist es wichtig, Ihre Bewertung zu dokumentieren, und in einer kurzen Empfehlung direkt bei der Anforderung zu erfassen. Das erlaubt dann spätere Umplanungen.
Die Clustern von Anforderungen ist aus mindestens zwei Gründen wichtig:
Teams, die im Scrum-Modus arbeiten kennen sicher den Unterschied zwischen der User Story und dem Backlog Item. Beide Elemente sind Teile einer solchen Verdichtung.
Das Original dieses Artikels ist auf →Der Produktmanager erschienen (©Andreas Rudolph). Regelmäßige Artikel gibt es über die (→Mailingliste), oder indem Sie →mir auf Twitter folgen. In der Online Version finden Sie hier die versprochenen weiterführenden Links: