Viele Anforderungsspezifikationen sind nicht so gut, wie sie sein sollten. Sie sind unvollständig, kompliziert und mehrdeutig, und müssten nochmal überarbeitet werden. Aber was genau muss noch gemacht werden? Und wie viel Aufwand muss man noch reinstecken, damit es passt? Requirements Debt (Anforderungsschulden) machen genau das sichtbar.
Requirements Engineers, die Anforderungen schreiben und Entwickler und Tester, die mit den Anforderungen arbeiten, haben oft das Gefühl, dass die Anforderungsspezifikationen nicht gut genug sind. Schaut man sich die Dokumente an, so wird schnell klar, dass wesentliche Qualitätskriterien nicht erfüllt sind. Die Dokumente sind nur halbfertig, wichtige Aspekte fehlen, die Sätze sind schwer zu verstehen, lang und voller Abkürzungen. Die Struktur ist oft unübersichtlich und es gibt viele Notizen und Kommentare mit offenen Fragen. Dass da noch etwas zu tun ist, ist klar, aber wie viel Aufwand ist das noch?
Die „Requirements Debt“ („Anforderungsschuld“) soll genau das sichtbar und messbar machen. Jeder Mangel an den Anforderungen wird dazu erfasst und bewertet, wie viel Zeit seine Korrektur in Anspruch nehmen würde. Summiert man diese Korrekturaufwände, so erhält man die notwendige Zeit, um die Anforderungsspezifikation auf angemessene Qualität zu bringen.
Ein Rechenbeispiel für Mängel in einer Anforderungsspezifikation und der Aufwand für die Korrektur:
Mangel | Häufigkeit | Korrektur-aufwand [Minuten] |
1. Komplexe Sätze (zu lange, viele Nebensätze) | 184 | 184 x 1 min = 184 min |
2. Abkürzungen | 402 | 402 x 0,25 min = 100 min |
3. Rechtschreibfehler | 36 | 36 x 0,5 min = 18 min |
4. Universalquantoren | 22 | 22 x 1 min = 22 min |
5. Schwammige Begriffe | 75 | 75 x 0,75 min = 56 min |
6. Fehlender Glossareinträge | 12 | 12 x 5 min = 60 min |
7. Fehlender Akteur (z.B. passiv, Satz mit „es“) | 21 | 21 x 1 min = 21 min |
8. Information im falschen Kapitel | 3 | 3 x 10 min = 30 min |
9. Fehlende Schritte im Ablauf | 2 | 2 x 10 min = 20 min |
10. Unklare Abgrenzung der Anforderung | 2 | 2 x 20 min = 40 min |
… | … | … |
Requirements Debt |
| 551 min (9,2h) |
Die so errechnete Requirements Debt sagt aus, dass man gute 9h in die Überarbeitung des Anforderungsdokumentes investieren müsste, damit es allen Qualitätsanforderungen genügen würde.
Das scheint auf den ersten Blick viel. Viele Unternehmen sind nicht bereit, das zu investieren. Das Ergebnis ist ein Anforderungsdokument, das während der Umsetzung zu vielen Rückfragen, Missverständnissen und vielleicht sogar zu einer mangelhaften Funktion im fertigen Produkt führt. Der Aufwand für Rückfragen, Diskussionen, Frust und Nacharbeiten am Produkt ist in der Praxis ein Vielfaches der oben errechneten 9h. Bereits ein einziger Bug im Produkt, der wegen eines mangelhaften Anforderungsdokumentes entsteht, verursacht deutlich mehr Aufwand als die 9h. Auch ein einziges Meeting, bei dem 3 Leute einen Vormittag lang über eine mangelhaft formulierte Anforderung rätseln, wiegt den Aufwand für die Überarbeitung der Anforderungsspezifikation auf.
Wie kann man nun die Requirements Debt ermitteln? Manche Anforderungsmängel kann man automatisiert messen: Durchschnittliche Satzlänge, ob die Sätze viele Einschübe haben, wie viele Universalquantoren vorkommen, wie viele Abkürzungen verwendet werden, etc. kann man alles mit kleinen Scripts messen und bewerten. Die meisten Mängel, die Wortschatz und Struktur der Anforderungsspezifikation betreffen, kann man somit gut automatisiert messen und den Korrekturaufwand ermitteln.
Schwieriger wird es bei Mängeln, die den Inhalt der Anforderung betreffen. Dazu gehören Mängel an der Abgrenzung der Anforderung, fehlendes Domänenwissen, Widersprüche etc. Dies ist zur Zeit nicht automatisiert messbar. Vielleicht bietet in Zukunft der Einsatz von KI hier Ansätze, momentan muss diese Mängel noch ein wissender, denkender Mensch in einem Review identifizieren und bewerten.
Requirements Debt ist kein Silver Bullet, das auf einen Schlag alle Anforderungen besser macht. Aber es ist eine gute Möglichkeit, um die Anforderungsqualität strukturiert und vergleichbar zu bewerten und ein Gefühl zu bekommen, was und wieviel noch zu tun ist.