Anforderungsanalyse

Eine Analyse und Dokumentation der Anforderungen an eine zu entwickelnde Software ist notwendig, um effektiv und effizient eine wertvolle Software entwickeln zu können.

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.

Migration von Anwendungen einer Versicherung zu AWS

Im Rahmen eines umfassenden Projekts unterstützte ich die Migration von selbst entwickelten, geschäftskritischen Anwendungen einer Versicherung aus dem firmeneigenen Rechenzentrum in die Amazon Web Services (AWS). | mehr

OpenID Connect und SAML für Versicherung

Beratung und Coaching zur Umstellungen einer großen Zahl von Anwendungen eines Versicherungskonzerns auf token-basierende Authentifizierung und Single Sign-On mit OpenID Connect und SAML. | mehr

Software zur Planung von TV-Sendungen und Beiträgen

Entwicklung einer Software für die Redaktionen der Fernsehsender eines Medienkonzerns zur Planung von TV-Nachrichten-Sendungen und Beiträgen inklusive Disposition und Koordination von Mitarbeitern, Ressourcen und Dienstleistern. | mehr

Anwaltliche Informationsplattform für Fachverlag

Im Rahmen einer mehrjährigen Zusammenarbeit mit dem anwaltlichen Informationsdienst eines juristischen Verlags war ich für die Konzeption, Entwicklung und den Betrieb einer umfassenden Online-Plattform verantwortlich. | mehr

Dienstleisterverzeichnis und Portal für juristischen Verein

Für einen juristischen Verein wurde ein umfassendes Dienstleisterverzeichnis und ein geschütztes Mitgliederportal entwickelt. Die Web-Anwendung bietet eine vielseitige Such- und Filterfunktion für das Mitgliederverzeichnis sowie ein Diskussionsforum, in dem Vereinsmitglieder sich austauschen können. | mehr

REST API Backend für einen Online-Shop

Entwicklung eines REST API Backends für einen Online-Shop einschließlich Authentifizierung mit OpenID Connect und Keycloak sowie CI/CD auf Basis von GitHub Actions und Linux. | mehr

Backend Software für mobile Apps

Konzeption, Entwicklung und Dokumentation einer Backend Software mit verschiedenen Diensten und einer Datenverwaltung für mobile Apps. | mehr

Corporate Website der Hardin Software GmbH

Die Website der Hardin Software GmbH basiert derzeit auf Hugo, Go, Docker, Kubernetes und Cloudflare. In diesem Beitrag erläutere ich einige interessante Aspekte zur Entwicklung und zum Betrieb dieser Website. | mehr