Nicht-funktionale Anforderungen (non-functional requirements: NFRs) gehören zu den wichtigsten Kriterien bei der Erstellung von Spezifikationen für eine E-Commerce-Plattform. Denn die meisten dieser NFRs beeinflussen direkt die Benutzererfahrung und Zufriedenheit von Nutzern.
Funktionale Anforderungen vs. nichtfunktionale Anforderungen
Funktionale Anforderungen sind ständig präsent. Sie definieren im Allgemeinen das Verhalten eines Systems auf Interaktionen von Benutzern. Außerdem sind sie „greifbar“ und leicht in ihrer Funktion zu verstehen. Beispielsweise beschreiben sie die Funktion der Schaltfläche „Zum Warenkorb hinzufügen“ oder auch die Reaktion des Systems auf die Eingabe eines Suchbegriffs.
Aktionen von NFRs sind indirekter und definieren meist nicht speziell das Verhalten des Systems, sie sind aber nicht weniger wichtig. Der gemeinsamer Nenner von NFRs: Sie gehen über funktionale Anforderungen hinaus und beschreiben oft, wie gut das System seine Leistung erbringt.
Sauber definierte NFRs führen zu leistungsfähigen Plattformen
Es gibt viel Arten von NFRs, am bekanntesten sind jene, die die Seitengeschwindigkeit definieren. Grundsätzlich sollte jede E-Commerce-Plattform schnell sein, doch die Seitengeschwindigkeit zu definieren ist eine komplexe Angelegenheit. Denn Seiten einer E-Commerce-Plattform werden immer unterschiedlich schnell geladen, bedingt unter anderem durch die Byte-Größe und Komplexität der verschiedenen Seiten, durch das Betriebssystem, den gewählten Browser oder die Netzwerk-Qualität.
Eine typische NFR für die Seitengeschwindigkeit definiert Gerät, Betriebssystem, Browser, das Netzwerk und die eigentliche Seite, auf die sich die Geschwindigkeit beziehen soll.
Zum Beispiel: Die Produktdetailseite (Product Detail Page, PDP) soll in weniger als vier Sekunden bei 4G auf Apple iPhone 6s (oder höher), mit iOS 10+ auf Safari laden.
Es ist nicht notwendig die Seitengeschwindigkeit für alle Geräte- oder Netzkombinationen anzugeben, doch sollte zumindest ein Richtwert für die Geschwindigkeit festgelegt sein. Vor allem für mobile Geräte, da wahrscheinlich die meisten Zugriffe auf eine E-Commerce-Webseite über Mobilgeräte erfolgen.
Arten von nichtfunktionalen Anforderungen:
Es gibt viele weitere Arten von NFRs, die alle einen entscheidenden Einfluss auf Leistung, Skalierbarkeit und Benutzerfreundlichkeit einer E-Commerce-Plattform haben können. Dazu gehören:
- Sicherheit – es ist wichtig, ein Sicherheitsniveau zu spezifizieren, das erfüllt werden soll (zum Beispiel den OWASP Top 10 folgend)
- Datenschutz – die grundlegenden Anforderungen der europäischen Datenschutz-Grundverordnung (DSGVO) sollten erfüllt werden
- Skalierbarkeit und Leistung – das System sollte skalierbar sein, um den erwarteten Datenverkehr und das Auftragsvolumen zu normalen und zu Spitzenzeiten bewältigen zu können
- Geschwindigkeit von Key Users Journeys – legt fest, wie lange jeder Schritt bei Key Users Journeys dauert
- Geschwindigkeit von Web-Services – legt die Antwortzeiten von Webdiensten fest
- Barrierefreiheit – stellt sicher, dass die Plattform durchgehend die grundlegenden Standards der Barrierefreiheit erfüllt
- Dokumentation – stellt sicher, dass die Plattform ausreichend dokumentiert ist
- Erweiterbarkeit – stellt sicher, dass die Plattform für spätere Entwicklungen erweitert werden kann
- Datenintegrität und Datenspeicherung – legt fest, wie lange Daten gespeichert werden sollen und wie die Sicherheit der Daten gewahrt wird
- Kompatibilität – stellt sicher, dass die Plattform problemlos in Systeme von Drittanbietern integriert werden kann
- Suche – legt fest, wie schnell das System Suchergebnisse liefern soll
- Infrastruktur – legt Schwellenwerte für die Infrastruktur-Performance (CPU- und Speichernutzung) fest
Auch wenn diese Liste bei Weitem nicht vollständig ist, zeigt sie doch das breite Spektrum an NFRs, die bei der Erstellung der Anforderungsliste und Spezifikation einer E-Commerce-Plattform definiert werden können und sollten.
Warum NFRs so wichtig sind
NFRs definieren wesentlich die Qualität einer E-Commerce-Plattform. Eine funktionale Anforderung (functional requirement) definiert das Verhalten der Plattform. Die NFRs bestimmen, wie gut die Plattform dieses Verhalten ausführen wird.
Gut definierte NFRs führen zu:
- Besserer Code-Qualität
- Mehr Sicherheit
- Geringeren Gesamtbetriebskosten
- Besserer Nutzererfahrung (UX)
- Weniger Bugs
- Besserer Geschwindigkeit und Leistung
- Besserer Verfügbarkeit
Viele E-Commerce-Projekte sind schon durch das Fehlen gut definierter NFRs gescheitert oder wurden viel kostspieliger als geplant und erwartet. Das Fehlen gut definierter NFRs könnte zu einer E-Commerce-Plattform führen, die zwar alle funktionalen Anforderungen erfüllt, aber langsam, unsicher und schwer zu verwalten sein wird. Dazu könnte sie kostspielig in der Wartung und generell von schlechter Qualität sein und somit den Nutzern eine schlechte User Experience bieten.