Design Prinzipien

Design Prinzipien

Die Design Prinzipien sind ein Werkzeug, um bereits beim Erarbeiten von Lösungen diese zu bewerten und zu verbessern.

Jedes Prinzip ist eine Linse durch die eine Lösung betrachtet und bewertet werden kann. Die Bewertung hilft dabei bessere von schlechteren Lösungen zu unterscheiden und diese Unterschiede zu artikulieren.

Schlussendlich sollen Lösungen dadurch für den Anwender einfacher, verständlicher, brauchbarer und wertvoller sein.

Verwendung

Eine Lösung sollte wenn möglich nur positive Emotionen auslösen. Dies würde bedeuten, dass alle Prinzipien erfüllt werden müssten und keins verletzt werden darf. Dies ist nicht immer möglich.

Trotzdem muss es unser Anspruch sein, eine möglichst gute Lösung zu liefern. Die Minimallösung verhält sich folgendermassen: Für jedes verletzte Prinzip bedarf es drei erfüllte Prinzipen. So ist sichergestellt, dass es sich immer noch um ein positives Erlebnis handelt.


Wann anwenden

Die Prinzipien sollten vor der Umsetzung angewendet werden, um sicher zu stellen, dass die Lösungen am Ende besser sind. Die Prinzipien erst nach der Umsetzung anzuwenden, liefert zwar Erkenntnisse, macht die Lösung aber nicht besser.


Beschreibung

Die Prinzipien sind als Wünsche der Anwender an die Lösung formuliert. Es ist sozusagen die Stimme des Benutzers. Der Untertitel eines Prinzips ist als Aufforderung an den Entwickler zu verstehen.


Prinzipien

Ich sehe nur was ich für meine Tätigkeit benötige

Erstelle Screens wo alle Elemente für den Benutzer in seiner Tätigkeit wertvoll sind. 

Die Elemente auf einem Screen sind für die spezifische Persona bei jeder Verwendung von Wert. Werden Elemente nicht immer verwendet, so gehören sie auf einen separaten Screen. Dadurch ist sichergestellt, dass der Benutzer nicht überfordert ist und die wertvollen Informationen und Elemente schneller findet. 

Ich weiss woher ich komme, wo ich bin und wohin ich gehe

Sorge für Klarheit betreffend des Kontexts. Der Benutzer soll jederzeit wissen wo er sich befindet, weiss wie es weitergeht und versteht wenn eine Tätigkeit abgeschlossen ist.

Ein Arbeitsschritt oder Workflow ist verständlich und nachvollziehbar. Der User weiss innerhalb welches Kontextes er sich bewegt und was er erledigen kann. Er weiss wo er vorher war, und welchen Arbeitsschritt er als nächstes ausführen kann und soll. Kontextwechsel sind für den Benutzer schwer zu verstehen, deshalb müssen diese vermieden oder aufgezeigt werden.

Ich sehe was ich tun kann

Vermittle dem Benutzer was für Möglichkeiten zur Verfügung stehen und wie diese verwendet werden. Er soll sich nie fragen "Und jetzt?"

Dem Benutzer soll klar sein, was er machen kann und zu welchem Resultat dies führen wird. Aktionen und Eingaben müssen aus dem Kontext heraus angezeigt werden. Oft können Entwickler oder Projektmitarbeiter solche Entscheidungen erst treffen, wenn diese mit einem Prototyp auf dem Feld mit richtigen Endkunden erprobt wurden. Auf keinen Fall sollte man dies aus dem Bauch heraus machen.

Es soll visuell zwischen der primären und den zusätzlichen Aktionen unterschieden werden.

Dein Verhalten kommt mir bekannt vor

Lass den Benutzer kompetent und die Lösungen intuitiv wirken, indem du das Verhalten von bekannten Lösungen kopierst. Vermeide unerwartetes Verhalten um jeden Preis.

Vorhandenes Wissen der Benutzer sollte genutzt werden. Unerwartetes Verhalten führt dazu, dass die Lösung nicht intuitiv wirkt, der Benutzer verwirrt ist und Fehler macht. Verhält sich die Lösung hingegen so, wie es dem Benutzer bekannt ist, fühlt er sich kompetent und klug.

Dies heisst auch, dass die Lösung in sich konsistent sein sollte. Ist dies aus einem Grund an einer Stelle nicht wünschenswert, so muss dies die Lösung dem Benutzer klar vermitteln. 

Bei Fehlern fühle ich mich nicht inkompetent

Der Benutzer versteht warum ein Fehler aufgetreten ist. Er wird bei der Behebung des Fehlers unterstützt, so dass er sich sicher und kompetent fühlen kann.

Es kann vorkommen, dass beim Verwenden der Software Fehler auftreten. Der Benutzer muss entsprechend darüber Informiert werden, dass eine Aktion nicht ausgeführt werden konnte. Weiter ist es Wichtig mitzuteilen wieso ein Fehler aufgetreten ist und wie der Benutzer den Fehler selbst beheben kann.

Fehler bzw. Fehlermeldungen dürfen nicht verwendet werden um den Programmablauf zu steuern.

Du triffst sinnvolle Annahmen statt zu fragen

Begleite den Benutzer durch die Eingaben. Mache sinnvolle Vorgaben.

Vorgabewerte sind für ein schnelles Arbeiten sehr hilfreich. Sie helfen dem Benutzer seine Arbeitsschritte schnell abzuschliessen und verringern somit die Zeit die der Benutzer für Eingaben aufbringen muss. Sobald Eingaben abhängig von einer vorherig getätigten Eingabe sind, sollte das System sinnvolle Annahmen bezüglich des zu setzenden Wertes tätigen. Ist dies nicht möglich sollte der Benutzer mindestens eine gefilterte Auswahl erhalten, damit die Entscheidungszeit kurz bleibt.

Behindere mich nicht

Halte den Benutzer nicht von seiner Arbeit ab. 

Der Benutzer sollte nicht von seiner Arbeit abgehalten werden. Dies ist der Fall wenn unnötige Eingaben verlangt werden, die Abfolge der Eingaben nicht der Arbeitsweise entspricht oder viele Interaktionen (Klicks, Tastendrücke) bis zum gewünschten Prozess nötig sind.

Ganz schlecht ist, wenn der Benutzer komplett blockiert wird und eine gewisse Zeit gar nicht mehr arbeiten kann.

Meine Arbeit geht nie verloren

Stelle sicher, dass die Eingaben des Benutzers gespeichert sind. Er soll sich nicht um die Speicherung seiner Daten kümmern.

Während ein Benutzer arbeitet, muss er nichts unternehmen, damit seine Änderungen im Fall einer Unterbrechung oder eines View-Wechsels übernommen werden. Falls die Daten nicht automatisch gespeichert werden können, muss der Benutzer mindestens vor Verlust geschützt werden.

Ich muss mir nichts merken

Der Benutzer muss sich keine Werte in einem Schritt merken, um im nächsten Schritt weiterarbeiten zu können.

Erfasst ein Benutzer einen Datensatz, bspw. einen Auftrag, so ist es ihm möglich diesen direkt weiterzuverwenden, ohne dass er sich eine Nummer oder einen Namen merken muss.

Aktionen können auf den jeweiligen Objekten direkt aufgerufen werden. Das System begleitet den Benutzer durch den Prozess. Der Benutzer muss den Ablauf nicht auswendig lernen.

Ich weiss wann du fertig bist

Informiere den Benutzern über den Stand der Arbeit und wann diese erledigt ist. Zeige bei langer Wartezeit zusätzlich an, welcher Teil der Arbeit schon erledigt wurde.

Warten ist für die meisten Benutzer eine äusserst unangenehme Tätigkeit. Dabei fühlen sich undefinierte bzw. unerklärte Wartezeiten länger an als absehbare bzw. erklärte Wartezeiten. Dem Benutzer sollte deshalb bereits zuvor klar kommuniziert werden, falls die Ausführung einer bestimmten Aktion zu längeren Wartezeiten führt (bspw. „Diese Aktion kann mehrere Minuten dauern“). Zudem muss der Fortschritt jederzeit ersichtlich und glaubhaft sein. Der Fortschritt kann in mehreren Dimensionen angegeben werden, wobei eine Kombination mit der Zeit sehr sinnvoll:

  • Zeitlich: Der Vorgang ist in 5 Minuten abgeschlossen
  • Absolut: Dokument 4 von 10 wird gedruckt
  • Prozentual: 48% der Aufträge wurden berechnet
  • Schrittweise: Schritt 3 von 7 ist in Arbeit