uccser/cs-field-guide

View on GitHub
csfieldguide/chapters/content/de/human-computer-interaction/human-computer-interaction.md

Summary

Maintainability
Test Coverage
# Mensch-Computer-Interaktion

{panel type="teacher-note"}

# Das Ausmaß von Benutzerschnittstellen

Das Material in diesem Kapitel bezieht sich auf „digitale Geräte“. Während es durchaus auf herkömmliche Computer zutrifft, gilt es auch für viele anderen Geräte, wie beispielsweise Wecker, Klimaanlagen, Mikrowellenherde, Stoppuhren, elektronische Instrumente, Kassensysteme, Parkuhren und Alarmsysteme. Für die meisten der Unterrichtsübungen sind in der Tat auch eher Geräte mit wenigen Funktionen geeignet, da so alle wahrscheinlichen Aufgaben und Abläufe in Erwägung gezogen werden können. Etwas wie „Microsoft Windows“ oder „iPads“ zu evaluieren, stellt einen viel zu weitreichenden Umfang dar, da dies so viele Untersysteme umfassen würde, die einzeln bereits ein gutes Projekt an sich wären (wie Menüs funktionieren, wie Dateien zu finden sind, wie ein Programm geöffnet wird, möglicherweise sogar schlichtweg, wie es eingeschaltet wird!).

{panel end}

Computer und andere digitale Geräte sind oft frustrierend in der Anwendung. Beim Gebrauch dieser Geräte kommt irgendwann der Punkt, an dem wir irritiert sind, dass das System etwas tut, was wir nicht beabsichtigt hatten, oder dass wir nicht herausfinden können, wie wir den Computer dazu bringen, zu tun was wir wollen. Doch warum ist das so? Computer werden von Menschen hergestellt. Aus welchem Grund sind sie dann in vielen Fällen so frustrierend für uns?

Jedes Jahrzehnt bringt leistungsfähigere Computer hervor, jedoch hat sich seit der Entwicklung der ersten Computer in den 1940ern eine wichtige Komponente des Computersystems in ihrer Leistungsfähigkeit nicht wesentlich geändert: der Mensch. Damit ein Computersystem wirklich gut funktionieren kann, muss es von Menschen entwickelt werden, die den menschlichen Teil des Systems nachempfinden können.

In diesem Kapitel werfen wir einen Blick darauf, was in der Regel gute und und was schlechte Benutzerschnittstellen ausmacht. Damit möchten wir die Wahrnehmung der vorwiegenden Probleme stärken, um existierende Benutzerschnittstellen bewerten und darüber nachdenken zu können, was bei der Gestaltung guter Schnittstellen zu beachten ist.

Software-Entwickler entwerfen häufig Computerprogramme oder Systeme, für die Benutzer dann Zeit aufbringen müssen, um sich mit deren Gebrauch vertraut zu machen. Nachdem Entwickler ihr System gut kennen, mögen sie selbst mit der Schnittstelle keine Schwierigkeiten haben. Benutzer wollen jedoch einfach anstehende Aufgaben erledigen können, ohne erst viel Zeit mit dem Erlernen von Software verbringen zu müssen (und wechseln unter Umständen zu einem anderen Programm, wenn die Anwendung zu kompliziert ist). Bei der Entwicklung werden Programm und Benutzer unter Umständen separat berücksichtigt. Benutzer sind jedoch Teil des Systems und Entwickler müssen ihre Software unter Beachtung der letztendlichen Benutzer entwerfen, d. h. sie müssen einfach und intuitiv zu verwendende Programme ausarbeiten.

Das Gebiet Mensch-Computer-Interaktion (HCI) beschäftigt sich damit, Programme zweckdienlich, einsatzfähig und für Benutzer zugänglich zu gestalten. Es geht weit darüber hinaus, Layouts, Farben und Schriftarten für eine Benutzerschnittstelle auszuwählen. Es wird sehr stark von der Psychologie beeinflusst, wie Menschen mit digitalen Geräten interagieren, was bedeutet, dass viele Aspekte dahingehend nachvollzogen werden müssen, wie sich Menschen verhalten, wie sie Dinge wahrnehmen und verstehen, damit sie das Gefühl haben, dass ein System hilfreich und nicht hinderlich für sie ist. Wenn Entwickler die Interaktion zwischen Mensch und Computer verstehen, sind sie eher in der Lage, leistungsfähige und populäre Software zu erstellen. Würden wir Benutzer fragen, ob sie jemals bei der Anwendung eines Computersystems frustriert waren, erhielten wir vermutlich die klare Aussage, dass die Mensch-Computer-Interaktion nicht immer gut gestaltet ist.

Hier ist eine interaktive Aufgabe zum Ausprobieren:

{interactive slug="deceiver" type="in-page"}

Hat jemand eine Antwort als falsch angezeigt erhalten, obwohl es den Anschein hatte, dass die Antwort richtig war? Es mag vielen aufgefallen sein, dass die Schaltflächen „Gerade“ und „Ungerade“ gelegentlich die Position tauschen. Inkonsistenz ist fast immer ein schlechtes Merkmal einer Schnittfläche, da Benutzern aufgrund dessen leichter Fehler unterlaufen.

Inkonsistenz könnte eventuell dann wünschenswert sein, wenn dies absichtlich erfolgt, um ein Computerspiel interessanter zu gestalten (worum es sich bei der obigen interaktiven Aufgabe handeln könnte). Stellen wir uns jedoch einmal vor, wir hätten ein Webformular, in dem die Schaltflächen „Zurücksetzen“ und „Senden“ ständig die Position tauschen würden. Benutzer würden des Öfteren die eingegebenen Daten im Formular löschen, während sie eigentlich beabsichtigten, das Formular abzusenden, oder sie würden das Formular absenden, während sie beabsichtigten, die eingegebenen Daten im Formular zu löschen!

{panel type="teacher-note"}

# Genauigkeit vs. Geschwindigkeit in obiger Aufgabe

Nicht alle Schüler werden sich durch das Austauschen von Gerade/Ungerade täuschen lassen, für manche kann es jedoch sehr frustrierend sein. Wenn sie sich dazu entschließen, langsam und sorgfältig vorzugehen, treffen sie möglicherweise die richtige Gerade/Ungerade Auswahl, erzielen dann allerdings auch eine niedrigere Punktzahl (d. h. geringere Produktivität, wenn es sich um eine tatsächliche Schnittstelle handeln würde).

{panel end}

Bei der Erforschung der Mensch-Computer-Interaktion werden viele Erkenntnisse aus der Psychologie (menschliche Verhaltensmuster) herangezogen, da sich diese darauf auswirkt, wie wir ein System benutzen. Um ein einfaches Beispiel zu nennen: die Dauer des menschlichen Kurzzeitgedächtnisses ist nur eine Sache von Sekunden (selbst bei jungen Menschen!). Beträgt die Reaktionszeit eines Geräts mehr als ca. zehn Sekunden, müssen sich Benutzer bewusst anstrengen, um sich darauf zu besinnen, was sie tun wollten, und das bedeutet zusätzliche Arbeit für Benutzer (was die Nutzung des Systems aus Benutzerperspektive mühseliger macht). Ein anderes Beispiel ist die „Gewohnheitsfalle“ von Abläufen: Wenn wir tagtäglich denselben Weg mit dem Fahrrad fahren, sind wir sehr bald damit vertraut, wo wir unterwegs abbiegen müssen, und denken nicht mehr darüber nach. Das ist alles recht und schön, solange wir auf dem Weg keine zusätzlichen Ziele ansteuern müssen oder vielleicht kürzlich umgezogen sind oder einen neuen Arbeitsplatz haben. Ein ähnlicher Effekt tritt bei Bestätigungsdialogen auf. Nehmen wir an, wir schließen Dateien häufig, ohne sie zu speichern, und auf die Frage des Systems: „Soll die Datei gespeichert werden?“ hin klicken wir regelmäßig auf „Ja“. Nachdem wir dies ein paar Mal getan haben, befinden wir uns in der Gewohnheitsfalle dieses Ablaufs, sodass wir das eine Mal, wenn wir unsere alte Datei nicht überschreiben wollen, versehentlich ebenfalls auf „Ja“ klicken.

{panel type="curiosity"}

# Gewohnheitsfehler

Zu *Gewohnheitsfehlern* kommt es, wenn wir uns an eine regelmäßige Strecke oder Vorgehensweise gewöhnt haben und infolgedessen etwas anderes vergessen, das wir zusätzlich hätten tun sollen. Wir geraten also in unserem normalen Ablauf in eine „Gewohnheitsfalle“. Gewohnheit ist zumeist eine gute Sache, da wir uns alltägliche Aktionen nicht dreimal überlegen müssen (was im wahrsten Sinne des Wortes mühseliger sein kein). Allerdings können wir dadurch auch zu Handlungen verleitet werden, die wir nicht beabsichtigt hatten. Ein guter Schnittstellendesigner ist sich dessen bewusst und richtet Schnittstellen so ein, dass Benutzer nicht in einer Gewohnheitsfalle landen können, aus der es kein Entrinnen gibt.

{panel end}

Viele Menschen geben eventuell sich selbst die Schuld an solchen Fehlern. Psychologischen Grundsätzen zufolge handelt es sich dabei jedoch um naturgemäße Fehler, und ein gutes System sollte Benutzer vor solchen Fehlern bewahren (z. B. indem Aktionen rückgängig gemacht werden können).

{comment Consider looking at a button's features as an example of fine detail (slide off while pressing etc.); could add an interactive with a simple (normal) checkbox and button (and maybe menu) here so they reader can experiment with what happens (e.g. click but slide off before release)}

Gute Schnittstellen zu gestalten ist *äußerst* schwierig. Gerade wenn man denkt, eine clevere Idee zu haben, stellt sich heraus, dass etliche Benutzer nur schwer herausfinden können, wie das Ganze funktioniert, oder es schlägt anderweitig fehl. Und was noch schlimmer ist, manche Programmentwickler sind der Ansicht, dass ihre Benutzer Dummköpfe sind, und dass alle Schnittstellenprobleme die Schuld des Benutzers und nicht des Entwicklers sind. Das eigentliche Problem ist jedoch, dass Entwickler sehr gut mit ihrem System vertraut sind, wohingegen Benutzer einfach nur anstehende Aufgaben erledigen wollen, ohne erst viel Zeit mit dem Erlernen der Software verbringen zu müssen. Ist die Anwendung der Software zu kompliziert und sie haben die Wahl, suchen sie sich ein anderes Programm, das einfacher ist. Gute Schnittstellen haben einen hohen Stellenwert auf dem Markt!

Es gibt viele Möglichkeiten, Benutzerschnittstellen zu bewerten und zu optimieren. In diesem Kapitel werden wir uns einige davon etwas näher ansehen. Ein wichtiger Grundsatz ist, dass die am wenigsten zur Bewertung einer Schnittstelle geeigneten Personen diejenigen sind, die die Schnittstelle entworfen und programmiert haben. Sie sind mit allen Funktionsweisen bis ins kleinste Detail vertraut, haben wahrscheinlich wochenlang darüber nachgegrübelt, kennen die Bereiche, die in Ruhe zu lassen sind, und die Optionen, die besser nicht ausgewählt werden sollten, und haben natürlich ein starkes Interesse zum eigenen Nutzen herauszufinden, was *gut* daran ist, und nicht, was *schlecht* daran ist. Außerdem ist es wichtig, dass die Schnittstelle von Personen bewertet wird, die typische Benutzer sein werden. Ein zwölfjähriges Kind, das zur Evaluierung eines Ruhestandsplansystems herangezogen wird, weiß vermutlich nicht, an was der typische Benutzer interessiert sein wird. Und wenn wir ein für Schüler konzipiertes System von Lehrern bewerten lassen, sind diesen eventuell bereits die Antworten und der ordnungsgemäße Prozess bekannt.

Die Evaluierung von Schnittstellen findet zumeist durch typische Benutzer statt, die sie ausprobieren und sorgfältig etwa auftretende Probleme notieren. Es gibt Unternehmen, deren einzige Tätigkeit darin besteht, derartige Benutzertests durchzuführen – dazu erhalten sie ein Prototyp-Produkt und bezahlen diverse Personengruppen dafür, das Produkt zu testen. Anschließend wird ein Produktbericht generiert und allen an der Entwicklung arbeitenden Personen zur Verfügung gestellt. Das Ganze ist ein kostspieliger Prozess, der jedoch zur Verbesserung des Produkts beiträgt und dem Produkt möglicherweise einen großen Vorteil gegenüber der Konkurrenz einbringt. Wird die Evaluierung durch ein separates Unternehmen durchgeführt, lassen sich dadurch etwaige Voreingenommenheiten von Mitarbeitern des eigenen Unternehmens vermeiden, die (oft unbewusst) beweisen möchten, dass sie bei der Gestaltung gute Arbeit geleistet haben, anstatt irgendwelche Mangelhaftigkeiten der Software aufzudecken, die Benutzer irritieren werden.

Bevor wir uns die verschiedenen Möglichkeiten zur Evaluierung von Benutzerschnittstellen näher ansehen, müssen wir uns überlegen, was bei einer Schnittstelle vor sich geht.