Benutzerschnittstellen und wie man sie benutzbar macht

Usability-Grundlagen

Thomas Braun
Weniger ist mehr

Manchmal ist die Entscheidung darüber, ob man ein bestimmtes Feature braucht oder nicht, sehr schwer. Im Zweifelsfall gilt: weg damit. Wenn Sie sich trotzdem nicht hundertprozentig von Ihrem Feature trennen können, machen Sie einen Usability-Test mit potenziellen Benutzern. Lassen Sie diese für Sie herausfinden, ob ein zusätzliches Feature für die Aufgabenbewältigung benötigt wird oder nicht: Beschreiben Sie dabei die Aufgabe so abstrakt, dass man nicht direkt erkennen kann, worauf Sie hinaus möchten und fragen Sie einige Testpersonen, wie sie diese Aufgabe bewältigen würden. Geben Sie unter Umständen im direkten Dialog Hilfestellungen, aber vermeiden Sie Beeinflussung. Oft sind Nice-to-have-Features kein großer Nutzen und blockieren nur die Hauptaufgaben der Anwendung. Selbst wenn Sie entschieden haben, ein bestimmtes Feature in Ihre Anwendung aufzunehmen, überlegen Sie sich, ob es etwas für Anfänger oder für Experten ist und entscheiden Sie danach, wie prominent Sie das Feature anbieten.

Iteratives Design

Einige Manager unterstellen Grafikdesignern eine Art magische Fähigkeit, auf Kommando kreativ zu sein und denken, wenn sie schon einen Spezialisten für Design engagieren, dann müsse dieser doch in der Lage sein, selbständig zu arbeiten und nach einer gewissen Zeit ein fertiges Layout abzuliefern. In der Tat ist es aber so, dass die reine Diskussion über ein Thema nicht unbedingt bei allen Beteiligten das gleiche Bild im Kopf erzeugt. Es entstehen also zwangsläufig Missverständnisse, die es aus dem Weg zu räumen gilt und das geht nur, indem man iterativ arbeitet. Man bespricht etwas, ein Designer entwirft etwas, man redet wieder darüber und so weiter. Es ist kein Zeichen von Schwäche, wenn ein Designer den Dialog sucht, sondern ein Zeichen von Professionalität. Aber auch wenn Sie nicht nur mit Profis arbeiten, können Sie die Qualität von Design verbessern, indem Sie Diskussionen anregen und für Alternativvorschläge sorgen.

Design follows Function

Fokussieren Sie vorrangig auf Funktionalität und erst danach auf Design. Drucken Sie sich am besten die Grundsätze der Dialoggestaltung aus, kleben Sie sie an Ihren Monitor und fragen Sie sich regelmäßig:

  1. Ist unsere Anwendung ihrem Zweck angemessen?
  2. Kommt der User damit zurecht, ohne eine Schulung zu benötigen?
  3. Verhalten sich alle Oberflächenelemente so, wie man es erwartet?
  4. Gibt die Anwendung neuen Benutzern genügend Hilfestellung?
  5. Kann der Benutzer selbst entscheiden, wann was gemacht wird?
  6. Ist die Anwendung bei Benutzerfehlern tolerant?
  7. Kann der Benutzer Aussehen oder Verhalten der Anwendung individualisieren?

Sicher müssen Sie nicht jederzeit alle diese Fragen mit einem eindeutigen Ja beantworten können, aber machen Sie sich unbedingt regelmäßig Gedanken darüber, ob Sie beim Thema bleiben, oder ob Sie sich in gestalterischen Details verlieren.

Web vs. Desktop

Die hier beschriebenen Grundsätze gelten selbstverständlich gleichermaßen im Web als auch auf dem Desktop. Allerdings ergeben sich je nach Wahl der Technologie Vor- und Nachteile. Es gilt also abzuwägen, welche Technologie sich für welches Vorhaben am besten eignet. Einer der häufigsten aber auch unnatürlichsten Gründe für eine Technologiewahl ist bestehendes Know-how der Mitarbeiter. Unnatürlich deswegen, weil es tatsächlich gar keine guten Gründe dafür geben kann, ein Vorhaben mit einer ungeeigneten Technologie umzusetzen, ganz gleich, ob jemand im Haus zur Verfügung steht, der die geeignete Technologie beherrscht oder nicht. In der Regel geht es bei solchen Entscheidungen ohnehin nur um Frameworks oder im schlimmsten Fall um Programmiersprachen und diese können im Zweifelsfall auch erlernt werden. Finanziell kann das zudem deutlich attraktiver sein, als eine falsche Entscheidung auszubaden. Als kleine Entscheidungshilfe sollen an dieser Stelle einige der aktuellen Technologien aufgeführt und zusätzlich erklärt werden, warum sich aus Usability-Sicht welche Technologie für welches Vorhaben eignen könnte.

Struts

Auch wenn Struts inzwischen in die Jahre gekommen ist, werden noch recht viele Webanwendungen damit entwickelt. Was Neuentwicklung angeht ist zumindest von Struts 1 eher abzuraten, ein Blick auf Struts 2 kann aber sicher nicht schaden. Struts zeichnet sich im Wesentlich dadurch aus, das Model-View-Controller-Pattern in die Java-Welt gebracht zu haben, was heutzutage allerdings nicht mehr ausreicht, um ein vollwertiges Webframework zu sein. Gerade aus Usability-Sicht erhält man hier vom Framework unzureichende Unterstützung.

JSF

JavaServer Faces [10] gilt seitens Sun als Mittel der Wahl für Webanwendungen, was aber aufgrund der Komplexität und des Einarbeitungsaufwandes nicht unbedingt für jedes Unterfangen der richtige Ansatz sein muss. In JSF gibt es zwischen Java-Komponente und HTML-Seite ein Abstraktionslevel, auf dem Komponenten zusammengestellt und erst später von JSF in HTML gerendert werden. Reines JSF zu verwenden, kann sehr mühsam sein. Allerdings existiert eine Reihe von Frameworks, die auf JSF basieren, z. B. ICEfaces, RichFaces oder Trinidad, die viele interessante Werkzeuge mitbringen, die für moderne Webanwendungen benötigt werden.

Wicket

Wicket [11] ist ein komponentenbasiertes Webframework und stellt eine gute Alternative zu den bisher bekannten Frameworks dar. Mittlerweile ist die API sehr stabil und nach einiger Einarbeitung auch gut nachvollziehbar. Wicket hat die Trennung von Layout und Programmlogik perfektioniert, indem es auf einen ausgeklügelten Template-Mechanismus setzt. Ein Webdesigner liefert beispielsweise einen HTML-Prototyp, der dann vom Entwickler 1:1 übernommen werden kann. Um dynamischen Inhalt zu erzeugen, werden die entsprechenden HTML-Tags mit wicket:id-Attributen versehen und können dann direkt im Java-Code referenziert werden.

Ein besonders interessanter Vorteil von Wicket gegenüber anderen Webframeworks ist, dass, weil hauptsächlich in Java-Code navigiert wird, weiterhin alle IDE-Features für Refactoring und Codeanalyse verwendet werden können, ohne viel Rücksicht auf HTML nehmen zu müssen. Nach Usability-Gesichtspunkten betrachtet, bietet Wicket einige Vorteile gegenüber anderen Frameworks, da mit relativ wenig Aufwand beeindruckende Ergebnisse erzielt werden können. Es bietet eine breite Ajax-Unterstützung und bringt viele Standardkomponenten mit, die sich sehr leicht erweitern lassen.

GWT

Keines der in den letzten Jahren erschienenen Webframeworks hat für so viel Diskussionsstoff gesorgt. GWT [12] bietet ebenfalls einen komponentenbasierten Ansatz, aber im Gegensatz zu den bisher genannten Frameworks wird bei GWT der Zustand der Komponenten im Browser gehalten. Das Beeindruckende an GWT ist, dass Google hier einen Java-to-JavaScript-Compiler geschaffen hat, der es ermöglicht, alle Komponenten in reinem Java zu implementieren. Der Compiler erstellt daraus dann Code, der im Browser abläuft. Roundtrips zum Server fallen komplett weg, wodurch dem Benutzer ein sehr schnelles und reaktives User Interface geboten wird. Aus Usability-Sicht zurzeit sicher eines der Highlights.

.NET

Auch wenn es dem gemeinen Java-Entwickler schon von Natur aus sehr fremd ist, dürfte sich ein Ausflug nach .NET selbst für den standhaftesten unter den Java-Fans durchaus lohnen. Microsoft hat sehr viel Erfahrung mit User Interfaces und auch als Entwickler hat man es recht leicht, einen Einstieg zu finden. Gerade für Java-Entwickler fühlt sich C# nicht ungewohnt an und für Desktopanwendungen gibt es momentan keine bessere Lösung.

PHP

Auch hier wird ein Blick über den Tellerrand wärmstens empfohlen, denn die populäre Skriptsprache hat sich längst den Weg in viele Entwicklerherzen gebahnt und das nicht ohne Grund. Niedrige Hosting-Gebühren und hohe Flexibilität sind gerade im privaten Umfeld, aber auch für kommerzielle Internet-Auftritte interessant. Durch die große Popularität gibt es viele Frameworks und Communities, die dem Usability-Freund das Leben leicht machen.

Fazit

Egal, auf welche Technologie Sie setzen, machen Sie sich bewusst, welche Aspekte der benutzerorientierten Softwareentwicklung Sie bisher vernachlässigt haben und versuchen Sie, einen Weg zu finden, neue Vorgehensweisen in Ihrem Unternehmen zu etablieren. Sie werden sehen, dass Sie schnell auf Mitstreiter stoßen, die Sie unterstützen, denn die Argumente, die für eine benutzerzentrierte Sicht sprechen, sind mehr als einleuchtend.

Thomas Braun ist seit 2000 in der IT-Branche tätig, arbeitet seit 2007 als Senior Java Developer bei der ING-DiBa AG und beschäftigt sich dort hauptsächlich mit Themen rund um Usability, User-Interface-Design und Prozessoptimierung. Kontakt: braun-thomas[at]gmx.de.
Geschrieben von
Thomas Braun
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.