Modern Requirements Named to G2’s 2026 Best Software Awards for Development Software
As the world’s largest and most trusted software marketplace, G2...
Die Entwicklung eines guten Produkts besteht nicht nur darin, alle erforderlichen Funktionen hinzuzufügen. Es geht auch darum, wie gut diese Funktionen funktionieren, wenn das Produkt auf den Markt kommt.
Stellen Sie sich ein Team vor, das eine Webanwendung entwickelt. Es hat das Anmeldesystem erfolgreich implementiert, aber das Laden dauert 15 bis 20 Sekunden und es kommt zu Abstürzen, wenn 30 bis 50 Benutzer gleichzeitig versuchen, sich anzumelden. Diese Probleme hängen nicht mit fehlenden Funktionen des Systems zusammen, sondern mit der Leistung des Systems.
Hier kommen nicht-funktionale Anforderungen ins Spiel. Sie werden in der Planungsphase der Produktentwicklung definiert und gewährleisten die Zufriedenheit der Nutzer und den geschäftlichen Erfolg.
Laut einer Studie des Carnegie Mellon Institute entfallen 60 bis 80 % der Kosten für die Produktentwicklung auf Nachbesserungen, d. h. die Behebung von Fehlern, die aufgrund fehlender Anforderungen, insbesondere nicht funktionaler Anforderungen, auftreten.
Dieser Blog behandelt die Definition von nicht-funktionalen Anforderungen, den Unterschied zwischen funktionalen und nicht-funktionalen Anforderungen, die gängigen Arten von NFRs mit Beispielen und Tipps zum Verfassen effektiver nicht-funktionaler Anforderungen.
Nicht-funktionale Anforderungen (NFRs) sind Spezifikationen, die die Betriebsfähigkeiten eines Systems beschreiben. Einfach ausgedrückt definieren NFRs nicht die Funktionen des Systems, sondern wie sich das System verhalten und wie gut es in verschiedenen Szenarien funktionieren sollte.
NFRs konzentrieren sich auf die Geschwindigkeit, Sicherheit, Benutzerfreundlichkeit und Zuverlässigkeit des Systems sowie darauf, wie es im Laufe der Zeit mit wachsender Nutzerzahl skaliert werden sollte. So helfen sie Entwicklern dabei, klare Erwartungen an das Verhalten des Systems zu formulieren.
Ein E-Commerce-Shop könnte beispielsweise folgende NFRs haben:
Mit klaren NFRs können Entwickler ein zuverlässiges System aufbauen, das die Erwartungen der Nutzer und Stakeholder erfüllt. Wenn NFRs ignoriert werden, haben Teams oft Schwierigkeiten, die Ziele zu erreichen.
Das Produktentwicklungsteam befasst sich hauptsächlich mit zwei Arten von Anforderungen: funktionalen und nicht-funktionalen.
Wie der Name schon sagt, definieren funktionale Anforderungen Funktionen, über die das System verfügen muss, um die Bedürfnisse der Benutzer zu erfüllen. Ein Beispiel für eine funktionale Anforderung an das Autovermietungssystem ist: „Benutzer sollten mehrere Autos miteinander vergleichen können.“
Im Gegensatz dazu beschreiben nicht-funktionale Anforderungen, wie das System funktionieren soll. Anstatt neue Funktionen hinzuzufügen, stellen sie sicher, dass das System für Benutzer in jeder Situation zugänglich und skalierbar ist, die Daten der Benutzer schützt und so weiter. Eine NFR in einem Autovermietungssystem lautet beispielsweise: „1.000 Benutzer sollten gleichzeitig ein Auto buchen können.“
Lassen Sie uns die Unterschiede in der folgenden Tabelle näher betrachten.
Aspekt | Funktionale Anforderung | Nicht-funktionale Anforderung |
|---|---|---|
Zweck | Was das System leisten sollte | Wie das System funktionieren sollte |
Fokus | Funktionen und Benutzeraktionen | Leistung, Sicherheit, Zuverlässigkeit, Benutzerfreundlichkeit usw. |
Definiert durch | Hauptsächlich definiert durch Entwickler, Endnutzer und andere Interessengruppen. | Hauptsächlich von Systementwicklern definiert. |
Prüfung | Funktionstestfälle werden verwendet, um die wichtigsten Funktionen des Produkts zu testen. | NFRs werden mit verschiedenen Methoden getestet, beispielsweise mit Leistungs- und Belastungstests. |
Sichtbarkeit | Normalerweise für den Endbenutzer sichtbar | Meistens hinter den Kulissen, aber es wirkt sich auf die Benutzererfahrung aus. |
Auswirkungen bei Nichtbeachtung | Bestimmte Funktionen funktionieren möglicherweise nicht, aber andere Funktionen des Systems funktionieren wie gewohnt. | Das gesamte System kann langsam werden oder abstürzen. |
Nicht-funktionale Anforderungen werden nach bestimmten Bereichen wie Leistung, Sicherheit, Benutzerfreundlichkeit usw. gruppiert. Die Teams für das Anforderungsmanagement müssen jede Art von Anforderungen genau verstehen, damit das Projekt erfolgreich sein kann.
Hier haben wir 9 Arten von NFRs mit Beispielen behandelt.
Leistungsanforderungen konzentrieren sich auf die Geschwindigkeit und Effizienz eines Systems. Sie definieren, wie schnell das System die Anfragen der Benutzer verarbeiten und darauf reagieren sollte. Benutzer sind oft frustriert, wenn sie mit leistungsschwachen Systemen arbeiten, was zu hohen Absprungraten führt.
Skalierbarkeit bezieht sich auf die Fähigkeit eines Systems, zu wachsen und dabei weiterhin eine gute Leistung zu erbringen. Wenn die Anzahl der Systembenutzer oder Datenverarbeitungsanfragen zunimmt, funktioniert ein skalierbares System, ohne dass eine vollständige Neukonfiguration des Systems erforderlich ist.
Skalierbarkeitsanforderungen sind wichtig für Unternehmen, die zukünftiges Wachstum oder saisonale Traffic-Spitzen erwarten. Werden Skalierbarkeitsanforderungen ignoriert, kann das System zusammenbrechen, wenn es die Last während Traffic-Spitzen nicht bewältigen kann.
Verfügbarkeitsanforderungen beschreiben, wie lange das System für Benutzer zugänglich sein sollte. Die hohe Verfügbarkeit des Systems reduziert Ausfallrisiken erheblich und verbessert das Vertrauen der Benutzer. Bei einigen Systemen können bereits wenige Minuten Ausfallzeit zu Verlusten in Millionenhöhe, zum Verlust von Benutzern und zum Verlust des guten Rufs führen.
Portabilität NFRs beziehen sich darauf, wie einfach das System mit verschiedenen Umgebungen, einschließlich Betriebssystemen, Cloud-Anbietern oder Geräten, zusammenarbeiten kann. Ein portables System spart Zeit und Aufwand beim Übergang von der Entwicklung zur Produktion oder bei der Erweiterung auf neue Plattformen.
Kompatibilität NFRs definieren, wie gut das System mit anderen Systemen, Software oder Hardware zusammenarbeitet. Dies ist in Umgebungen wichtig, in denen das System eine Verbindung zu APIs, Datenbanken, Browsern oder Diensten von Drittanbietern herstellen muss. Eine schlechte Kompatibilität kann zu Funktionsstörungen, Beschwerden von Benutzern und Integrationsproblemen führen.
Zuverlässigkeitsanforderungen bewerten, wie oft das System auch bei unerwarteten Ereignissen ohne Ausfälle funktioniert. Dies ist wichtig für Anwendungen wie Bankensoftware, Gesundheitssysteme usw., die täglich von Menschen genutzt werden.
Wartbarkeit NFRs definieren, wie einfach und schnell das System aktualisiert oder repariert werden kann. Sie umfassen den Zeit- und Ressourcenaufwand, der für die Wartung des Systems erforderlich ist. Wartbarkeit ist bei Großprojekten oder Produkten, die ständig verbessert werden, immer wichtig.
Sicherheits-NFRs legen fest, wie das System sensible Benutzerdaten vor unbefugtem Zugriff, Sicherheitsverletzungen und Cyberangriffen schützen und sichern soll. Dazu gehört vor allem die Implementierung von Authentifizierungs- und Verschlüsselungsmechanismen zum Schutz der Daten.
Die Benutzerfreundlichkeit konzentriert sich darauf, wie einfach es für Benutzer ist, mit dem System zu interagieren. Ein Produkt mit hoher Benutzerfreundlichkeit verbessert die Benutzererfahrung und kann von neuen Benutzern mit minimalem Schulungsaufwand angenommen werden. Eine schlechte Benutzerfreundlichkeit führt zu Frustration und erhöht die Supportkosten.
Produktentwicklungsteams konzentrieren sich hauptsächlich auf funktionale Anforderungen, schenken jedoch nicht-funktionalen Anforderungen keine Beachtung. Die Teams sind der Meinung, dass eine Funktion als fertiggestellt gilt, sobald sie funktioniert. Sie berücksichtigen jedoch nicht die Leistung, Zuverlässigkeit, Sicherheit und andere NFRs.
Hier erfahren Sie, wie das Überspringen nicht-funktionaler Anforderungen zu schwerwiegenden Ausfällen in realen Systemen geführt hat.
Im Jahr 2018 kam es bei Amazon während des Prime Day zu einem größeren Ausfall. Die Zahl der Website-Nutzer stieg unerwartet stark an, sodass das System überlastet war. Infolgedessen stürzte die Amazon-Website ab und Käufer erhielten Fehlermeldungen. Amazon verlor während dieses einstündigen Ausfalls fast 90 bis 100 Millionen US-Dollar.
Dieser Ausfall ist auf ein unzureichendes Skalierbarkeitsmanagement zurückzuführen. Das System sollte daher jederzeit skalierbar sein und die meiste Zeit verfügbar sein.
Im Jahr 2012 führte Knight Capital die Handelssoftware ohne ordnungsgemäße Tests ein. Innerhalb von 45 Minuten nach der Einführung begann das System, fehlerhafte Handelsgeschäfte zu tätigen, die dem Unternehmen einen Verlust von 440 Millionen Dollar verursachten.
Dieser Systemausfall trat auf, weil die Zuverlässigkeit der Software nicht ordnungsgemäß getestet worden war und es keine Sicherheitskontrollen gab, um die fehlerhaften Aktionen zu stoppen.
Die TSB Bank in Großbritannien geriet 2018 in ernsthafte Schwierigkeiten, nachdem sie Kundendaten auf ein neues System übertragen hatte. Die Datenmigration von der alten auf die neue Plattform verlief erfolgreich. Danach konnten sich jedoch viele Kunden nicht mehr einloggen, einige sahen falsche Angaben in ihrem Profil und einige wenige Nutzer konnten die privaten Daten anderer Personen einsehen. Letztendlich zahlte die Bank rund 330 Millionen Pfund, um alles zu reparieren, und verlor das Vertrauen ihrer Kunden.
Die Gründe für dieses Scheitern waren eine mangelhafte Systemzuverlässigkeit und unzureichende Sicherheitsmaßnahmen.
Wie bereits erwähnt, sind nicht-funktionale Anforderungen entscheidend für den Erfolg eines Projekts. Allerdings ist es schwierig, sie korrekt zu formulieren. Viele Teams begehen häufige Fehler, die später zu Verzögerungen oder einem schlechten Systemverhalten führen können. Teams sollten die folgenden Best Practices befolgen, um häufige Fehler zu vermeiden und gute Softwareanforderungen zu formulieren.
Die Dokumentation nicht-funktionaler Anforderungen ist wichtig, um sicherzustellen, dass alle Teammitglieder und Stakeholder ein gemeinsames Verständnis der Projektziele haben. Mit einer klaren Dokumentation können Teams das Risiko von Missverständnissen minimieren, die zu kostspieligen Nacharbeiten führen können.
Hier haben wir einige wichtige Funktionen von Modern Requirements4DevOps vorgestellt, die den Workflow zur Erstellung von Anforderungsdokumentationen vereinfachen können.
Durch die Nutzung der oben genannten Funktionen von Modern Requirements4DevOps können Teams gut strukturierte und konsistente Dokumente mit nicht-funktionalen Anforderungen erstellen. Darüber hinaus können Teams mit Hilfe von Copilot4DevOps in wenigen Sekunden präzise Dokumente aus vordefinierten NFRs generieren.
Die funktionalen Anforderungen definieren die wichtigsten Funktionen des Systems, während die nicht-funktionalen Anforderungen die Betriebsfähigkeiten des Systems definieren, darunter die Systemleistung, Verfügbarkeit, Skalierbarkeit usw.
Vorlagen für nicht-funktionale Anforderungen bieten eine vordefinierte Struktur zur Definition von NFRs. Sie gewährleisten die Konsistenz aller NFRs.
Ja, mit Copilot4DevOps können Teams NFRs aus Rohtexten, Dokumenten, Diagrammen usw. extrahieren und direkt im Azure-Arbeitsbereich speichern.
Es gibt mehrere Tools auf dem Markt, aber wenn Sie Azure DevOps für das Projektmanagement verwenden, kann Modern Requirements4DevOps eine gute Wahl sein.
Das Team sollte regelmäßige Kontrollpunkte für die Überprüfung und Aktualisierung der NFRs festlegen. Die Teams sollten diese auch nach größeren Aktualisierungen im System überprüfen.
✅ Definieren, verwalten und verfolgen Sie Anforderungen innerhalb von Azure DevOps
✅ Arbeiten Sie nahtlos mit regulierten Teams zusammen
✅ Starten Sie KOSTENLOS – keine Kreditkarte erforderlich
As the world’s largest and most trusted software marketplace, G2...
Check out this detailed guide that explains 21 CFR Part...
Learn more about what requirements risk management means, and how...