Articles

Nageln Sie Ihre Software-Anforderungen Dokumentation

Software-Entwicklung kann ein spannender Prozess der kreativen Problemlösung, Design und Engineering sein. Aber unter den glänzenden Apps und polierten Webseiten liegt das weniger sexy, aber ach so wichtige Gerüst, das gute Software-Ergebnisse ermöglicht: Dokumentation.Die Dokumentation stellt sicher, dass Teams und einzelne Stakeholder hinsichtlich der Ziele, des Umfangs, der Einschränkungen und der funktionalen Anforderungen eines Produkts oder einer Softwareanwendung auf derselben Seite sind.

Leider kann das Erstellen und Dokumentieren dieser Anforderungen mühsam, verwirrend und chaotisch sein.

Softwareanforderungsdokumente können schnell zu langen, unhandlichen und textlastigen Dokumenten werden, was sie besonders anfällig für Fehler, Inkonsistenzen und Fehlinterpretationen macht. Aus diesem Grund kann das Schreiben und Verwenden dieser Dokumente zeitaufwändig sein und zu kostspieligen (und vermeidbaren) Designfehlern führen.

Was sollen also Produktmanager, Softwareteams und Führungskräfte tun?

Obwohl es keine einheitliche Regel für Softwareentwicklungsansätze gibt, gibt es Möglichkeiten, Fehler zu reduzieren, Zeit zu sparen und effektive Ergebnisse zu erzielen.

Im Folgenden gehen wir durch die Ziele und Vorteile von Software Requirements Documents und ein paar Best Practices, die Ihnen helfen, den Prozess von Anfang bis Ende zu nageln.

Dokumentvorlage für Softwareanforderungen
Empfohlene Struktur für SRD (Klicken Sie auf das Bild, um es online zu ändern)

Was sind Softwareanforderungsdokumente?

Ein Softwareanforderungsdokument (auch Softwareanforderungsspezifikationen genannt) ist ein Dokument oder eine Dokumentation, die die Funktionen und das beabsichtigte Verhalten einer Softwareanwendung beschreibt.Mit anderen Worten, das Software Requirements Document (SRD) beschreibt das Verständnis des Unternehmens oder der Organisation für die Bedürfnisse und Abhängigkeiten des Endbenutzers (normalerweise des Kunden) sowie für alle Einschränkungen des Systems.

Was ist in einer SRD enthalten?

Während die SRD als Blaupause für die Verwaltung des Umfangs eines Projekts fungiert, definiert sie letztendlich nur funktionale und nicht funktionale Anforderungen an ein System. Das Dokument beschreibt keine Design- oder Technologielösungen. Diese Entscheidungen werden später von den Entwicklern getroffen.

Eine gut geschriebene SRD sollte:

  • Das Problem in überschaubare Teile aufteilen.
  • Dienen als Referenz für Tests und Validierung.
  • Informieren Sie die Designspezifikationen (d. h. Die SRD muss ausreichende Informationen über die Anforderungen der Software enthalten, um ein effektives Design zu erstellen).
  • Geben Sie dem Kunden (Endbenutzer) Feedback.

Der SRD zeigt dem Kunden, dass Ihre Organisation das Problem versteht, das gelöst werden soll, und wie diese Probleme durch Softwarelösungen angegangen werden können. Da Kunden oft direkte Stakeholder sind, ist es besonders wichtig, die Dokumentation klar und verständlich zu gestalten (Vermeidung von Fachjargon).

Wie Sie Ihre SRD schreiben, hängt wiederum von dem Ansatz und der Methodik ab, die Ihr Team oder Ihre Organisation abonniert. Die IEEE Standards Organization empfiehlt jedoch, dass typische SRDs die folgenden Themen abdecken sollten:

  • Schnittstellen
  • Funktionale Fähigkeiten
  • Leistungsstufen
  • Datenstrukturen / -elemente
  • Sicherheit
  • Zuverlässigkeit
  • Sicherheit/ Datenschutz
  • Qualität
  • Einschränkungen und Einschränkungen

Wenn jedes dieser Themen in Ihrer Dokumentation klar angesprochen und beschrieben ist, können Sie erhalten Sie ein vollständigeres Bild der Informationen, die für die Entwicklung Ihrer Anwendung erforderlich sind.

Wie Sie Ihr Software-Anforderungsdokument erstellen

Folgen Sie diesen Best Practices, um ein effektives und effizientes SRD zu erstellen.

Halten Sie es organisiert

Der Name des Spiels ist Organisation. Bevor Sie mit der Dokumentation beginnen, sollten Sie mit einer Organisationsstrategie für alle Dokumente beginnen, z. B. wo Ihre Dokumente gespeichert sind, wie Sie die Konsistenz sicherstellen und wie Mitwirkende und Mitarbeiter Dokumente problemlos auf dem neuesten Stand halten können. Um effektiv zu sein, sollte ein Software-Anforderungsdokument organisiert und klar sein. Viele Organisationen verlassen sich auf interne Vorlagen, um die Konsistenz über Projekte hinweg aufrechtzuerhalten. Vorlagen sind eine großartige Möglichkeit, Zeit zu sparen (füllen Sie einfach die vororganisierten Abschnitte aus) und in Ihrem Dokumentationsprozess konsistent zu bleiben.

Dokumentvorlagen verstärken jedoch häufig das Problem langwieriger, textlastiger Anforderungen. Um zu vermeiden, dass Sie sich in Textseiten festsetzen, sollten Sie Ihren Dokumentationsprozess mit visuellen Daten ergänzen.

Beispiel für die Lucidchart-Dokumentation
Sehen Sie, wie das Lucidchart-Team Flussdiagramme für die Softwaredokumentation verwendet hat!

Sicherstellen, dass die Anforderungen vollständig sind

Damit eine Anforderung „vollständig“ ist, sollte sie alle erforderlichen Informationen enthalten, um die Anforderung zu implementieren. Dies bedeutet, dass die Designer und Entwickler, wenn sie die Funktion erstellen, keine Annahmen oder Vermutungen über die Anforderung treffen müssen.

Angenommen, Sie entwickeln eine Webseite. Eine der skizzierten Anforderungen ist, was im Fehlerfall passieren soll. Eine unvollständige Anforderung könnte so etwas wie „Im Fehlerfall sollte das System reibungslos beendet werden.“

In diesem Fall wird „reibungslos“ nicht definiert und der Interpretation überlassen. Diese Mehrdeutigkeit könnte zu Fehlinterpretationen der gewünschten Ergebnisse führen (und zu mehr Arbeit, um das Problem zu beheben).

Um dies zu vermeiden, schreiben Sie eine vollständige Anforderung, die definiert, wie eine erfolgreiche Funktion aussieht:

„Im Fehlerfall muss das System eine Fehlerseite mit der folgenden Meldung anzeigen:

Uh-oh! Es sieht so aus, als wäre etwas schief gelaufen. Bitte versuchen Sie es in wenigen Minuten erneut. Wenn das Problem weiterhin besteht, wenden Sie sich an unser Support-Team unter [email protected] .“

Durch die Definition einer vollständigen Anforderung gibt es weniger Unklarheiten und ein klares Ergebnis, an dem das Entwicklungsteam arbeiten kann.

Anforderungen testbar machen

Dies ist ein ziemlich allgegenwärtiger Standard, doch allzu oft schreiben Organisationen keine Anforderungen, die diese Regel vollständig erfüllen.

Anforderungen müssen überprüfbar sein. Andernfalls gibt es keine objektive Möglichkeit zu wissen, ob die Anforderung zufriedenstellend implementiert wurde.

Stellen Sie für jede Anforderung, die Sie schreiben, sicher, dass sie auf eine oder mehrere der folgenden Arten validiert wird:

  • Inspektion
  • Demonstration
  • Walk-Through
  • Testen

Anforderungen auf hoher Ebene werden häufig einer Inspektion oder Benutzerprüfung unterzogen, sodass sie normalerweise auf allgemeineren Spezifikationen beruhen. Anforderungen auf niedrigerer Ebene, die Softwaretests unterzogen werden, erfordern jedoch wahrscheinlich detailliertere Spezifikationen.

Implementierungsneutrale funktionale Anforderungen anwenden

Wie bereits erwähnt, ist eine SRD kein Designdokument. Es definiert nicht und sollte nicht definieren, wie die funktionalen Anforderungen aus gestalterischer Sicht umgesetzt werden müssen.

Daher sollten alle funktionalen Anforderungen implementierungsneutral sein. Mit anderen Worten, Anforderungen sollten angeben, was das System tun soll, aber nicht, wie es es tun soll.

Implementierungsneutrale Anforderungen haben mehrere Vorteile, darunter:

  • Ein effizienterer Entwurfsprozess
  • Modifizierbare Anforderungen, die nicht von einem bestimmten Implementierungsdesign abhängig sind
  • Weniger Konflikte zwischen Anforderungen, die sich aus entgegengesetzten Implementierungsdetails ergeben

Alle Einschränkungen bei der Implementierung sollten den nicht funktionalen Anforderungen des Systems vorbehalten bleiben.

Dokumentation mit Stakeholdern evaluieren

Wenn alle Softwareanforderungen dokumentiert sind, lassen Sie alle relevanten Stakeholder die endgültige Dokumentation bewerten, bevor die Entwicklung beginnt.

Zu den Stakeholdern sollten Designer und Entwickler, Tester, die die Anforderungen validieren, Ingenieure, Vertreter der Endbenutzer und der Kunde gehören.

Wenn alle Beteiligten die Dokumentation überprüfen und genehmigen, bevor Sie mit der Entwicklung beginnen, verbessern Sie die Zufriedenheit der Teams und erhöhen die Wahrscheinlichkeit, dass die Anforderungen ihren Anforderungen entsprechen.

Helfen Sie Softwareentwicklern und ihren Teams, mit Flussdiagrammen, die Ihre Software-Anforderungsspezifikationen effizient und elegant abbilden, auf dem Laufenden zu bleiben. Suchen Sie nach einer Diagrammlösung, die Ihnen helfen kann:

  • Organisieren Sie Ihre Anforderungen in einem Flussdiagramm, um Ihre Komponenten eindeutig, Ihre Abhängigkeiten klar und die Beteiligten ersichtlich zu halten.
  • Verwenden Sie Swimlanes, um visuell zu beschreiben, welche Teams für jeden Anforderungssatz verantwortlich sind.
  • Ändern Sie Anforderungen oder andere Daten schnell, wenn sich die Projektanforderungen ändern.
  • Verknüpfen Sie Daten (einschließlich zusätzlicher Dokumente), um Ihr laufendes Projekt zu unterstützen und zu informieren.
  • Teilen Sie die Dokumentation (und alle Änderungen) sofort mit den relevanten Stakeholdern.

Dokumentation muss keine lästige Pflicht sein. Mit Lucidchart können Sie Prozesse, User Stories und Softwareanforderungen einfach an einem Ort dokumentieren. Durch die visuelle Definition Ihrer Anforderungsspezifikationen können Sie und Ihr Team Informationen schnell finden und darauf reagieren und gleichzeitig die Wahrscheinlichkeit von Fehlern, Inkonsistenzen und Fehlinterpretationen verringern.

Beginnen Sie mit der Dokumentation

Verschaffen Sie sich noch heute Einblick in Ihre bestehenden technischen Systeme mit Lucidchart.

Erfahren Sie, wie