Nicht-funktionale Anforderungen
Requirements EngineeringAnforderungen daran, wie gut ein System etwas tut – nicht was es tut: Geschwindigkeit, Sicherheit, Verfügbarkeit, Bedienbarkeit, Wartbarkeit. Sie entscheiden über die Architektur und werden am häufigsten vergessen.
Funktionale Anforderungen beschreiben Verhalten: Der Kunde kann eine Bestellung stornieren. Nicht-funktionale beschreiben Qualität: Die Seite lädt auf dem Smartphone in unter zwei Sekunden, das System ist werktags von 6 bis 22 Uhr verfügbar, Daten liegen in der EU. Eine gute Gliederung dafür liefert die Norm ISO/IEC 25010 mit Merkmalen wie Leistung, Zuverlässigkeit, Sicherheit, Benutzbarkeit und Wartbarkeit.
Vergessen werden sie, weil sie selbstverständlich erscheinen. Niemand schreibt ins Briefing, dass die Anwendung schnell und sicher sein soll – jeder erwartet es. Nur: „schnell“ ist nicht prüfbar. Erst eine Zahl macht aus einer Erwartung eine Anforderung.
Ihre Tragweite wird leicht unterschätzt. Eine fehlende Funktion lässt sich nachrüsten. Eine Anwendung, die für hundert gleichzeitige Nutzer gebaut wurde und zehntausend tragen soll, muss im Kern neu gedacht werden. Qualitätsanforderungen gehören deshalb an den Anfang, vor die Wahl von Technik und Anbieter.
Ich frage sie in jedem Projekt mit derselben kurzen Liste ab: Wie viele Nutzer, wie viele Daten, wie schnell, wie verfügbar, wie sicher, wer pflegt es in drei Jahren? Meist genügt eine Stunde. Die Antworten stehen anschließend messbar im Lastenheft – und werden damit Teil der Abnahme statt Anlass für Streit.
Wie macht man nicht-funktionale Anforderungen prüfbar?
Mit Messgröße, Zielwert und Bedingung: „95 Prozent der Seitenaufrufe sind bei mobiler Verbindung in unter 2,5 Sekunden vollständig dargestellt.“ Alles ohne Zahl ist ein Wunsch.
Gehört Barrierefreiheit zu den nicht-funktionalen Anforderungen?
Ja, sie ist ein Qualitätsmerkmal der Benutzbarkeit. Festgelegt wird sie am besten über einen Standard und eine Stufe, zum Beispiel WCAG 2.2 auf Stufe AA.