Mythen um Techniken für Anforderungsanalyse gelüftet
Tags: literatur
Kategorie Promotion | Keine Kommentare »
Ich habe gerade ein erstaunliches Paper über die Effektivität von Techniken für das „Finden“ von Anforderungen gelesen. Die Ergebnisse haben mich wirklich überrascht, auch wenn ich sie aus meiner täglichen Arbeit nachvollziehen kann. Da hier doch der eine oder andere Software Engineer mitliest, mal eine kurze Zusammenfassung.
Davis et al. haben in ihrem Paper „Effectiveness of Requirements Elicitation Techniques: Empirical Results Derived from a Systematic Review“ versucht zu beantworten, welche Techniken für das Finden von Anforderungen besonders effektiv sind. Kurz zum Hintergrund: Requirements Elicitation bezeichnet den Prozess, in dem man versucht die Anforderungen an eine zu entwickelnde Software oder System zu finden. Die Anforderungen sind häufig nicht bekannt, sondern müssen zum Beispiel in Interviews mit den zukünftigen Nutzer gefunden werden. Neben Interviews gibt es eine Reihe von Techniken, zum Beispiel die Entwicklung von Prototypen. In dem Paper wurde analysiert, welche Techniken besonders effektiv sind und ob der Einsatz von einer bestimmten Technik von der Problemstellung oder der Domain abhängt.
Davis et al. haben dazu nicht selber entsprechende Experimente durchgeführt, sondern die Ergebnisse vorhandener empirischer Studien analysiert und zusammen gefasst. Als Forschungsmethode haben sie den systematischen Review gewählt. Die Ergebnisse haben sie in mehrere Cluster zusammen gefasst und es ergeben sich die folgenden Hauptaussagen:
- die wahrscheinlich effektivste Technik sind strukturierte Interviews; Ich persönlich teile diese Einschätzung. Es ist ein Segen, wenn man Zugriff auf die zukünftigen Nutzer oder Experten hat und diese ausführlich befragen kann. Selbst ein kurzes Interview von einer Stunde bringt oft mehr, als wochenlang sich den Kopf zu zerbrechen.
- der kombinierte Einsatz verschiedener Techniken führt nicht zu besseren Ergebnissen bzw. die Techniken sind der Problemstellung gegenüber indifferent; Dies ist eine große Überraschung für mich. Dies bedeutet, man muss eigentlich nur 2 oder 3 Techniken beherrschen und kann mit diesen prinzipiell Anforderungen in sehr verschiedenen Domänen und Situationen erheben.
- (Berufs-)Erfahrung spielt bei der Erhebung von Anforderungen keine Rolle; Dieses Ergebnis räumt mit dem Mythos auf, dass man Anforderungsanalyse erst nach mehrjähriger Berufserfahrung machen kann. Ich persönlich habe da zwar nie so wirklich dran geglaubt, aber ich habe es auch nie in Frage gestellt.
- Prototypen helfen nicht bei der Erhebung von Anforderungen; Dies ist ein ebenfalls überraschendes Ergebnis, da die Nutzung von Prototypen und Mockups generell als wichtiger (aber meist zu teurer) Bestandteil einer Anforderungsanalyse gewertet wird. Sollte dieses Ergebnis bestätigt werden können, könnte man sich all das viele Geld für die Entwicklung von Software Prototypen sparen, da sie nicht ihren eigentlichen Zweck erfüllen. Klar ist, es wird sicher keine binäre Antwort auf die Frage der Nützlichkeit von Prototypen geben, aber deren Nutzen erscheint so in ganz neuem Licht.
Mich haben diese Ergebnisse doch etwas aufgerüttelt und ich muss nun ernsthaft mal drüber reflektieren, wie wir bei IDS die Anforderungen erheben.