Anforderungsanalyse
Eine Anforderungsanalyse ist wesentlich für den Erfolg eines Softwareprojekts, und zwar unabhängig davon ob man einem agilen, iterativen oder linearen Vorgehensmodell folgt. Die wirtschaftliche Bedeutung, die Komplexität und der Zeitaufwand für eine Anforderungsanalyse wird gerne unterschätzt.
Personelle Engpässe und organisatorische Nachlässigkeiten in diesem Teil der Softwareentwicklung verursachen hohe vermeidbare Kosten durch sinnlose Arbeit bei der technischen Umsetzung der Software und führen sogar dazu, dass Zeit-, Termin- und Projektpläne über den Haufen geworfen werden müssen.
Unpräzise, falsch oder nicht dokumentierte Anforderungen bewirken, dass technische Teams an den Ideen des Auftraggebers vorbei eine Software mit Eigenschaften entwickeln, die gar nicht benötigt werden und damit für den Auftraggeber wertlos sind.
Eine fehlende schriftliche Spezifikation, spontane und möglicherweise nur mündlich formulierte Pläne und Anweisungen sowie eine geringe Erreichbarkeit von Verantwortlichen für die Software für Rückfragen führen dazu, dass Softwarearchitekten, Entwickler oder Programmierer schlichtweg nicht ernsthaft wissen und bestenfalls nur ahnen können, was für eine Software sie überhaupt entwickeln sollen.
Besonders in hierarchischen Organisationen, die immer noch weit verbreitet sind, besteht die Gefahr, dass dieses organisatorische Defizit unter den Teppich gekehrt wird und damit intransparent wird. Softwareentwicklung wird dadurch außerordentlich teuer und Softwareprojekte können daran sogar scheitern.
Um das zu vermeiden, stellt eine Analyse und Dokumentation der Anforderungen ein gemeinsames Verständnis zwischen Stakeholdern und technischen Teams über die Eigenschaften der zu entwickelnden Software her. In die Ermittlung und in die Verifikation von Anforderungen müssen Auftraggeber, Anwender, Koooperationspartner als auch technische Teams eingebunden werden, weil sie organisatorisches und technisches Wissen aus unterschiedlichen Perspektiven beitragen, das für die Planung und Realisierung unverzichtbar ist.
Das Ergebnis der Anforderungsanalyse muss immer dokumentiert, verifiziert und transparent gemacht werden, je nach Vorgehensweise in Form einer Spezifikation, eines Lasten- und/ oder Pflichtenhefts und/ oder oder in Form eines Product Backlogs.
Typischerweise werden funktionale und nicht-funktionale Anforderungen unterschieden. Funktionale Anforderungen beschreiben, was eine Software zu tun hat bzw. welche Verarbeitungshandlungen sie auszuführen hat. Nicht-funktionale Anforderungen beschreiben, wie gut eine Software die Leistung erbringen soll. Zu den nicht-funktionalen Anforderungen zählen beispielsweise Usability, Performance, Sicherheit, Wartbarkeit oder Stabilität.
Die aus einer Anforderungsanalyse gewonnene Spezifikation ist die entscheidende Grundlage nicht nur für die Softwareentwicklung, sondern auch für die Definition von Testfällen. Während die Spezifikation beschreibt, welche definierten Eigenschaften eine Software erfüllen muss, sind die Tests methodische Versuche, mit denen festgestellt werden soll, ob die entwickelten Eigenschaften einer Software den definierten Eigenschaften aus der Spezifikation entsprechen.
Weiterhin liefert eine Spezifikation das Ausgangsmaterial für eine zu erstellende Anwenderdokumentation und zu erstellendes Schulungsmaterial. Darüber hinaus erfüllt sie auch einen dokumentierenden Zweck für die Zukunft, in der die Software weiter entwickelt werden soll.
Projekte im Bereich Anforderungsanalyse
Mit Dienstleistungen im Bereich der Anforderungsanalyse habe ich Unternehmen bei folgenden Projekten unterstützt. Ergänzende Informationen finden Sie auf der Seite zu meinen Dienstleistungen rund um Softwareentwicklung.