Über unsMediaKontaktImpressum
Sarah Ganter 25. März 2025

Mit User Experience zur besseren Software-Architektur

Die ISO 25010 legt die Kriterien für die Qualität von Software fest. Als Software-Hersteller ist es gängig, den Funktionsumfang einer Software zu definieren und die erforderlichen Funktionen festzulegen. 

In der Regel übernimmt ein Product Owner die Verantwortung für die funktionalen Anforderungen, indem er diese definiert und priorisiert. Doch das allein garantiert noch keine qualitativ hochwertige und vollständige Software.

Funktionale vs. nicht-funktionale Anforderungen

Die Unterscheidung zwischen funktionalen und nicht-funktionalen Anforderungen ist nicht mehr zeitgemäß und wurde durch die ISO 25010 sogar relativiert. Die Übergänge sind oft fließend, was die Abgrenzung erschwert: Sind Fehlermeldungen funktional oder nicht? Gehört es zum Funktionsumfang, aus welchen Drittsystemen Daten abgerufen werden? Und so weiter…

Diese Trennung verdeutlicht jedoch den Unterschied zwischen sichtbaren und unsichtbaren Anforderungen. Zu Beginn eines Projekts ist es relativ einfach, vom Kunden oder Product Owner eine funktionale Beschreibung der Software zu erhalten. Doch gerade die versteckten (unsichtbaren) Anforderungen könnten entscheidend für den Erfolg oder Misserfolg eines Produkts sein. Diese unausgesprochenen Anforderungen sind zwingend notwendig, um qualitativ angemessene Architekturentscheidungen zu treffen. Was nützt eine funktional korrekte Software, die jedoch bspw. nicht mehr skalierbar oder portierbar ist oder gar jegliches Sicherheitskonzept vermissen lässt?

Wir verwenden bei uns seit Jahren eine sogenannte Qualitätsspinne zur Anforderungsanalyse, die alle Kriterien der ISO 25010 umfasst. Im direkten Dialog mit dem Kunden klären wir die Anforderungen an jeden Aspekt und machen Unsichtbares konkret. Dabei erfragen wir sowohl die Wichtigkeit für den Kunden als auch die Herausforderungen bei der Umsetzung. Ziel ist es, die zu erbringende Qualität der Anwendung zu beschreiben und die Auswirkungen auf Architektur und Technologieauswahl zu ermitteln. Alle erhobenen Kriterien können direkte Auswirkungen auf Technologie- und Architekturentscheidungen haben. Bei einer Auftragsklärung und Anforderungsanalyse prüfen wir all diese Qualitätskriterien. Das Ziel ist, die zu erbringende Qualität der Anwendung zu beschreiben und die direkte Auswirkung auf Architektur und Auswahl der Technologien zu erheben, idealerweise zusammen mit dem Kunden. D. h., alle erhobenen Kriterien können direkte Auswirkungen auf Architekturentscheidungen haben!

Benutzbarkeit (Usability) steht hier in selber Reihe wie klassische Architekturkriterien, wie z. B. Effizienz (Performance) und Sicherheit (Security). Es ist also gleichermaßen wichtig, sich mit angemessenen Antwortzeiten und einem Mengengerüst zu beschäftigen wie auch mit Erlernbarkeit und Fehlertoleranz eines Systems. Weitere Kriterien sind Funktionalität, Kompatibilität, Zuverlässigkeit, Wartbarkeit und Portabilität.

User Experience: Welche Rolle spielt UX?

Usability, als eines der Qualitätskriterien der ISO 25010, befasst sich mit der Gebrauchstauglichkeit – dem Grad an Effektivität, Effizienz und Zufriedenheit, mit dem ein angestrebtes Ergebnis erreicht wird. User Experience (UX) geht darüber hinaus und umfasst das gesamte Nutzungserlebnis vor, während und nach der Benutzung.

Um ein gutes Nutzungserlebnis zu schaffen, ist es wichtig, den Nutzer zu kennen und zu verstehen. Der Begriff des mentalen Modells eines Nutzers beschreibt hierbei die individuellen Vorstellungen von Dingen und deren Verhalten, basierend auf Erfahrungen und Erwartungen. Entwickler:innen und Designer:innen können gut gemeinte Lösungen entwickeln, die jedoch an den Erwartungen der Nutzer vorbeigehen. "You are not your user", wie Jakob Nielsen treffend formulierte, sollte bei der Konzeption stets ein Gebot sein [1].

Zusätzlich ist es entscheidend, den Nutzungskontext zu begreifen, in dem sich der Nutzer bewegt. Dieser umfasst Benutzer, Aufgaben, Arbeitsmittel sowie die physische und soziale Umgebung, in der ein Produkt genutzt wird. Insbesondere bei komplexen Domänen, wie z. B. Industrie oder Medizin, ist es extrem wichtig, bei der Konzeption den Nutzungskontext zu bedenken. Um drei einfache Beispiele zu nennen: Es ist ein großer Unterschied, ob eine Person entspannt zu Hause am Computer sitzt und z. B. etwas in einem Onlineshop bestellt, jemand in einer Gießerei arbeitet und ggf. mit dicken Handschuhen etwas am Display eingeben/ablesen muss oder man in einer Arztpraxis arbeitet und viele Aufgaben parallel bearbeiten muss und ggf. Stress hat, weil die Praxis gerade unterbesetzt ist. Für all diese Situationen muss unterschiedlich konzipiert werden!

Wer an UX denkt, denkt oft nur an Design...

Bei UX denken viele sofort an das User Interface und dessen Gestaltung. Doch das Design des User Interfaces ist nur ein kleiner Teil von UX. Gutes Design, insbesondere in Bezug auf Nutzerführung, Konsistenz und Klarheit, trägt zwar zur UX bei, aber sind es nicht Wartezeiten, schlecht gestaltete Medienbrüche und unpraktische Formulare, die die Nutzererfahrung maßgeblich negativ beeinflussen?

Ist Euch schon mal passiert, dass Ihr ein Formular nicht korrekt ausfüllen konntet, weil Euer Name oder ein Straßenname nicht akzeptiert wurde oder das Format der Postleitzahl auf ein spezifisches Land festgelegt war? Generell finde ich es sehr übergriffig, wenn ein Formular meinen Familienstand oder meinen Geburtstag abfragt, wenn ich beispielsweise einfach nur den Status für einen Reparaturauftrag wissen möchte. Wie ist es, wenn Ihr ein langes Formular ausgefüllt habt, dann ein Fehler auftritt und das ganze Formular danach gelöscht ist? Abgesehen vom Aspekt der fehlenden Inklusion sind das Fehlentscheidungen in der Architektur.

Usability ist ein Aspekt der Software-Qualität, während UX die Summe aller Eindrücke ist.

Usability ist laut ISO 25010 ein Aspekt der Software-Qualität, während UX die Summe aller Eindrücke ist, die ein Nutzer während der Interaktion mit einem Produkt sammelt. Darüber hinaus ist UX ein geeignetes Konzept, um ebendiese Qualitätskriterien eines Produkts zu erheben und sinnvoll zu definieren.

Wie funktioniert UX: Ein Blick auf Medizinprodukte

Wo sich "normale" Anwendungen vielleicht noch um UX herummogeln können, wird das bei Medizinprodukten um einiges schwerer. Für die Zulassung eines Medizinproduktes muss die Gebrauchstauglichkeit in Form einer Usability-Akte nachgewiesen werden. Auch hier ist leider nicht genau definiert, in welchem Umfang UX erfolgen muss, allerdings muss bei einem abschließenden summativen Test des Medizinproduktes sichergestellt sein, dass alle gefährdungsbezogenen Use Errors ausgemerzt sind. Wer sich mit Software-Entwicklung auskennt, weiß, dass man niemals davon ausgehen kann, dass beim Test keine Fehler mehr auftauchen. Es empfiehlt sich also, vorher auch einen ausreichenden UX-Prozess zu etablieren, der die Gebrauchstauglichkeit während der Entwicklung sicherstellt und ein böses Erwachen am Ende der Implementierung verhindert. Helfen soll hierbei die IEC 62366 ("Anwendung der Gebrauchstauglichkeit auf Medizinprodukte"), welche zwar ein Vorgehen zur Umsetzung von Usability bei Medizinprodukten empfiehlt, aber in der Methodenwahl sehr frei ist [2]. Anders als im "normalen" UX-Prozess müssen gefährdungsbezogene Use Errors identifiziert und behoben werden. 

Interessant ist hier der Blick auf die Risikoanalyse, welche maßgeblich der Qualitätssicherung dienen soll. Hierfür gibt es zwei Ansätze, welche laut Technical Report der IEC 62366 als die gängigsten Methoden zur Risikoanalyse benannt werden [3].

Fault Tree Analysis (FTA)

Die Fault Tree Analysis ist ein Top-Down-Verfahren, welches von der Auswirkung (Harm) zur Ursache (Cause) führen soll. Durch die Analyse entsteht eine Art Fischgräten-Diagramm, welches die möglichen Auswirkungen immer weiter zerlegt und zu unterschiedlichen Ursachen führen kann, wobei man für jede Gefährdung einen eigenen Fehlerbaum erstellt. Sie dient dazu, die zugrunde liegenden Ursachen von Fehlern oder Vorfällen zu identifizieren, um Maßnahmen zu definieren, die diese Fehler verhindern und somit die Sicherheit und Zuverlässigkeit zu erhöhen.

Failure Mode and Effects Analysis (FMEA)

Ursprünglich vom US-Militär entwickelt, ist die Failure Mode and Effects Analysis ein Bottom-Up-Verfahren, welches von Interaktion/Ursache zu Gefährdung/Wirkung führen soll. Die FMEA betrachtet ein Produkt komponentenbasiert und analysiert, wie eine Komponente versagen und was dabei passieren kann. Um diese Methode durchzuführen, bedarf es einer umfangreichen Systemarchitektur, auf Basis derer sogenannte Fehlerketten gebildet werden können.

In der Praxis…

Es hat sich für uns bewährt, die Risikoanalyse in mehreren Risikoworkshops durchzuführen, jeweils mit einem interdisziplinären Team. Neben einem Risikomanager sind Systemarchitekten, UX-Experten, Fachexperten und idealerweise auch Nutzer involviert (mindestens in vorhergehenden oder nachgelagerten Usability-Tests). Aus meiner Erfahrung ist die interdisziplinäre Zusammenarbeit wichtig, da Benutzungsfehler sowohl auf Oberflächen (UI) und Interaktion als auch auf technische Probleme zurückgehen können. Man betrachtet somit aus verschiedenen Perspektiven eine Gefährdungssituation und schafft mit Hilfe dieser Workshops auch mehr gegenseitiges Verständnis.

Anhand eines echten Beispiels könnte die FTA z. B. so aussehen (vereinfachte Form): Ein Patient wird verstrahlt (mit möglicher Todesfolge). Wenn man die Fehlerkette entlang geht, stellt man fest, dass die Behandlung fehlerhaft war, da sie durch manuelle Eingabe getätigt wurde. Die Eingabebefehle sollen sequenziell abgearbeitet werden, jedoch führt eine zu schnelle Tasteneingabe zu einem Buffer Overflow. Je versierter eine medizinische Fachkraft ist, desto schneller kann sie die Handgriffe ausführen und möglicherweise diesen Fehler auslösen.

An diesem Beispiel sieht man sehr gut, wie Nutzer-Interaktion und technisches System zusammenspielen und sich gegenseitig bedingen. Oft ist die leichteste, kostengünstigste und leider beliebteste Methode, auf vermehrte Schulung und großflächige Benutzungshinweise zu setzen, statt die Architektur umzustellen, wenn das technische System nicht der Benutzung entspricht. Zum Glück ist das im Medizinbereich nicht möglich, sodass man frühzeitig festlegen muss, wie die technische Grundlage beschaffen sein muss, um Nutzer vor Fehlern zu bewahren.

UX-Design auf den diesjährigen IT-Tagen

Spannende Vorträge und Workshops zum Thema UX-Design erwarten Euch auch auf den IT-Tagen, der Jahreskonferenz von Informatik Aktuell. Die IT-Konferenz findet jedes Jahr im Dezember in Frankfurt statt – dieses Jahr vom 08.-11.12.

Zusammenfassung

Ich möchte nicht dazu aufrufen, den Produktentwicklungsprozess nach IEC 62366 zu implementieren, wenn man kein Medizinprodukt herstellt. Dieser Prozess ist zu Recht sehr aufwändig, da es um die Gesundheit von Menschen geht und im Zweifelsfall sogar um Menschenleben.
 Ein paar Dinge können wir uns aber auch für alle anderen Produkte abschauen.

Jedes Produkt profitiert von einer interdisziplinären Entwicklung, schließlich wollen wir alle das bestmögliche Produkt für unsere Nutzer entwickeln. Wenn bereits im Entwicklungsprozess ein gemeinsames Verständnis im Team entsteht und eine Zusammenarbeit Hand in Hand geht, kann UX die Antworten auf Fragen der Architektur geben. Erkenntnisse und Methoden aus der UX tragen maßgeblich zu qualitativen Architekturentscheidungen bei.

Risikoanalyse kann ebenfalls für alle Produkte spannend sein. Auch wenn Medizinprodukte eine besondere Sensibilität umfassen, finden Risikoanalysen z. B. auch im KRITIS-Bereich Anwendung. Wie wäre es, hierfür mal die FTA oder FMEA auszuprobieren? Leider herrscht in vielen Unternehmen immer noch Silo-Denken in den einzelnen Bereichen. Ich hoffe, Ihr fühlt euch inspiriert, dieses Denken zu überwinden, die Zusammenarbeit zu fördern und Qualität ganzheitlich zu betrachten.
 Macht es besser!

Autorin
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben