Best Practices für eine gute offline User Experience (UX)
Daher müssen wir von der Konzeption, über das Design bis hin zur Umsetzung und dem Betrieb der Anwendung auf entsprechende Lösungen achten. Dabei sind Architektur und Technologie nur ein Baustein. Insbesondere hinsichtlich der User Experience gilt es vieles zu beachten.
Highspeed – langsam – offline
Als ich Ende der 90er Jahre mit der Web-Entwicklung angefangen habe, haben wir auf jedes Bit geachtet. Alles wurde dahingehend optimiert, um den langsamen Internetverbindungen Rechnung zu tragen.
Mittlerweile haben sich die Zeiten geändert. Grundsätzlich gibt es „schnelles Internet“, dass es uns ermöglicht, auch größere Datenmengen schnell zu übertragen. Aber eben nicht flächendeckend. Und so stehen wir bei der Konzeption und Umsetzung von Software-Lösungen vor der Herausforderung, dass unsere Anwendungen mit unterschiedlichsten Internetverbindungen zurecht kommen müssen, egal ob
- schnell,
- langsam oder sogar
- komplett offline.
Unklare Nutzungssituationen
Aus konzeptioneller Sicht ist es zudem bedauerlich, dass man gar nicht konkret abschätzen kann, wann und wo unsere Anwendungen mit langsamen Verbindungen oder Abbrüchen zu tun haben.
Weder zu Hause – schon gar nicht in Zeiten, in denen große Teile der Bevölkerung im Homeoffice sind – noch im Büro gibt es eine Garantie für hohe Verfügbarkeit. Auch in vielen Alltagssituationen gibt es Probleme und in weiten Teilen ist der Netzausbau noch gar nicht angekommen.
Nachdem wir bei Zweitag im eigenen Büro immer wieder Probleme mit unserer Primär- und der Backup-Leitung haben, sind wir kürzlich den nächsten Schritt gegangen und nutzen zusätzlich das Starlink-Netz (zum Artikel). So spannend diese Technologie auch ist, sie ist leider keine Lösung für jeden und überall.
Wir müssen uns also weiterhin darauf einstellen, dass unsere Zielgruppe unter Umständen langsames oder kein Internet hat, wenn sie unsere Produkte nutzt.
Warum spielt die User Experience eine entscheidende Rolle?
Vielleicht läuft deine Anwendung technisch korrekt. Wenn zum Beispiel ein Kundenstammsatz offline bearbeitet werden soll, steht diese Option (kommentarlos) nicht zur Verfügung, um unter anderem Datenkonflikte zu vermeiden.
Aber versteht der Nutzende auch, was hier warum passiert? Wenn ich nicht verstehe, wie meine Anwendung arbeitet, deren Verhalten für mich nicht erwartbar und konsistent ist, dann fällt es schwer, Vertrauen aufzubauen. Das wiegt um so schwerer, je sensibler die Daten und Prozesse sind, die von der Anwendung unterstützt werden.
Beim Design der User Experience müssen wir unter anderem dafür Lösungen entwickeln und genauestens darauf achten, die verschiedenen Nutzungssituationen zu berücksichtigen.
Ohne Offline-Modus keine hohe Usability und User Experience?
Die kurze Antwort lautet: Nein, man muss nicht automatisch immer vollständige Offline-Fähigkeit unterstützen, um Anwendungen mit sehr guter Usability und UX zu entwickeln.
Wie so oft gilt es abzuwägen: Ist es notwendig, dass die Anwendung auch ohne Internetverbindung lauffähig ist?
Wenn ja:
- Müssen alle Funktionen nutzbar sein oder kann auf Teile verzichtet werden?
- Sind alle Daten relevant oder kann man sich auf bestimmte Daten beschränken?
Für die farmsaat AG haben wir bspw. den ehemals papierbasierten Direktvertrieb mittels einer offline-fähigen App für Tablets und Smartphones digitalisiert. Für den Vertriebsprozess vor Ort beim Kunden müssen zwingend alle Daten offline vorliegen und alle Funktionen der App müssen nutzbar sein.
Die Digitalisierung des papierbasierten Direktvertriebs. Jetzt farmsaat Case Study lesen
Best Practices bei offline Usability und User Experience
Die Nutzererwartungen erfüllen
Die offline, oder bei langsamen Internetverbindungen, verfügbaren Funktionen müssen vor allem mit den Erwartungen der Zielgruppe übereinstimmen, um eine hohe User Experience zu gewährleisten. Bei der Konzeption muss genau geprüft werden, welche Use Cases unter „widrigen Bedingungen” weiterhin unterstütz werden müssen und welche Änderungen es ggf. auf Detailprozessebene gibt.
Bei einer Anwendung kann es bspw. notwendig sein, dass die Anlage eines neuen Kundenstamms möglich ist, eine Validierung der postalischen Adresse gegen einen Webservice und die direkt Übertragung an die Backend-Systeme wird aber erst möglich, wenn eine ausreichend schnelle Internetverbindung besteht.
Die offline verfügbaren Daten müssen ihren Zweck erfüllen
Die verfügbare Daten müssen so vollständig sein, dass sie sinnvoll nutzbar sind. D. h., dass notwendigerweise alle offline Use Cases abgebildet werden können.
Es ist zum Beispiel oft nicht sinnvoll, nur die Kontaktliste verfügbar zu machen, wenn nicht wenigstens die wichtigsten Kontaktdetails, wie Telefonnummer oder E-Mail-Adresse, vorhanden sind.
Datenkonsistenz sicherstellen
Bei der Synchronisierung muss stets die Konsistenz der Daten sichergestellt sein. Es dürfen nicht nur Teile aktualisiert werden, wenn abhängige Daten auf einem alten Stand verbleiben. Insbesondere bei Fehlschlagen eines Datenabgleichs, müssen alle alten Daten weiterhin konsistent und verfügbar bleiben.
Es ergibt hierbei oft Sinn, dass neue Daten erst übernommen werden, wenn die Datensynchronisierung als Ganzes erfolgreich durchgeführt werden konnte.
Den Status transparent machen
Einer der wichtigsten Best Practices in puncto offline Usability und User Experience ist es, den Nutzenden stets transparent zu machen, was passiert und in welchem Zustand sich die Anwendung und deren Daten befinden. Eine aktive Kommunikation ist dabei immens wichtig, die insbesondere die folgenden Themen berücksichtigen muss.
Aktualitätsstand der Daten kenntlich machen
Es muss deutlich werden, von wann die Daten sind, insbesondere auch dann, wenn verschiedene Daten unterschiedlich alt sind, weil bspw. eine Teilsynchronisierung stattgefunden hat.
Zeitpunkt und Start der Synchronisierung muss vorhersehbar sein
Eine wichtige Anforderung an die User Experience von Anwendungen ist, dass das Verhalten stets erwartbar für die Nutzenden sein muss. Eine Synchronisierung der Daten darf dementsprechend nur erfolgen, wenn diese ebenfalls erwartbar ist. Zum Beispiel zu
- festen Zeitpunkten: immer nachts um 5 Uhr, alle zwei Stunden,
- oder zu eindeutigen Events: immer, wenn die Anwendung wieder eine aktive, ausreichende Datenverbindung hat und der User die Synchronisierung aktiv anfordert.
Zudem muss klar kommuniziert werden, ob eine Synchronisierung läuft und wie deren Status ist:
Erfolgreiche Synchronisierung
Sobald die Synchronisierung erfolgt ist, wird dies mitgeteilt. Idealerweise kann zudem der Fortschritt und was genau aktualisiert wurde transparent gemacht werden.
Fehler der der Synchronisierung
Das Auftreten von Fehlern muss einerseits kenntlich sein. Zum anderen sind klare Handlungsanweisungen und Hilfestellungen in diesem Fall notwendig, um die Nutzenden nicht „allein zu lassen“.
Art der Aktualisierung festlegen
Daten können unterschiedlich aktualisiert werden, zum Beispiel:
- Das User Interface blockierend oder
- im Hintergrund, während die Nutzung der Anwendung weiterhin möglich ist.
Eine Hintergrundaktualisierung bring in jedem Fall zusätzliche Herausforderungen mit sich, da parallel stattfindende Datenänderungen berücksichtigt werden müssen.
Oft bietet es sich an, im Hintergrund erst eine Prüfung auf aktuellere Daten durchzuführen und dann den Nutzenden entscheiden zu lassen, ob diese Daten geladen werden sollen.
Im Idealfall findet dabei kein Austausch der kompletten Daten, sondern nur ein Delta-Import, also eine Aktualisierung der geänderten Daten, statt.
Klare Regeln bei Konflikten
Datenkonflikte werden sich nie vollständig verhindern lassen. Um diese Aufzulösen braucht es entweder klare und vor allem verständliche und vorhersehbare Regeln, nach denen Konflikte automatisch aufgelöst werden oder die Nutzenden müssen Möglichkeiten an die Hand bekommen, um diese manuell zu beheben.
Die Entscheidung, welches Vorgehen aus Sicht der User Experience am besten ist, muss im Einzelfall getroffen werden. Grundsätzlich kann man aber festhalten, dass der Nutzende stets die Kontrolle, oder zumindest das Gefühl der Kontrolle, behalten sollte.
Wenn zum Beispiel die gleiche Telefonnummer in einem Kundenstamm durch zwei Nutzende verändert wurde gibt es unter anderem folgende Optionen:
- Das System übernimmt automatisch die Telefonnummer, die zuletzt hinzugefügt wurde.
- Das System übernimmt automatisch beide Telefonnummern.
- Das System zeigt dem Nutzenden, der zuletzt synchronisiert, alle Änderungen an und lässt ihn entscheiden, ob er eine der Nummern oder beide behalten möchte.
Viele Systeme verwenden auch eine Kombination der Methoden, bei denen zunächst versucht wird, Konflikte automatisch aufzulösen. Wenn dies nicht eindeutig möglich ist, wird der Nutzende quasi um Mithilfe gebeten.
Langsame Verbindungen gesondert betrachten
Natürlich wird insbesondere der Extremfall – die Anwendung ist vollständig offline – am meisten betrachtet. Allerdings muss man durchaus auch eine klare Unterscheidung zwischen schneller und langsamer Datenverbindung machen. Denn nur, weil eine aktive Verbindung vorliegt, muss das nicht heißen, dass die Anwendung wie gewohnt und mit hoher User Experience nutzbar ist.
Auch hier gibt es unterschiedliche Herangehensweisen. Primär kann man Folgende unterschieden:
- „Harter“ Übergang von Online- zu Offline-Modus. Dieser muss nicht erst erfolgen, wenn gar keine Datenverbindung mehr vorhanden ist. Auch bei entsprechend langsamen Verbindungen, kann dieser aktiv von der Anwendung „eingeschaltet” werden.
- Mehr oder weniger „fließender” Übergang, bei dem nach und nach Funktionen abgeschaltet werden. Die Web-Anwendung des Google E-Mail-Dienstes Gmail nutzt bspw. bei langsamen Verbindungen ein deutlich reduziertes Interface. Wichtig hierbei, und das macht Gmail genau richtig, der Nutzend kann weiterhin entscheiden, ob er doch zum „normalen“ Interface zurückkehren möchte.
Den Übergang von online zu langsam zu offline aktiv managen
Passend zum letzt genannten Punkt, ist auch die notwendige, eindeutige Kommunikation, wenn sich der Online-Status während der Nutzung ändert. Es kann schließlich immer vorkommen, dass die Verbindung mittendrin langsamer wird oder sogar völlig abreißt. Auch dieser Statusübergang muss berücksichtigt werden.
Dazu muss das System natürlich zunächst selbst erkennen, dass hier eine Änderung eingetreten ist. Dann können entsprechende Mechanismen greifen, die dafür sorgen, dass auch in diesem Fall die User Experience stimmt.
Ein einfacher Prozess beim Verfassen einer E-Mail könnte bspw. so aussehen:
- Die Anwendung erkennt, dass die Internetverbindung abgebrochen ist.
- Der Nutzende wird dezent darauf hingewiesen und es wird versichert, dass seine Daten auch offline gesichert sind.
- Der Nutzende kann wie gewohnt weiterarbeiten.
- Sobald eine Funktion genutzt wird, für die eine aktive Datenverbindung erforderlich ist, bspw. der Versand der E-Mail, werden dem Nutzenden zwei Optionen angeboten: Automatischer Versand durch das System oder manueller Versand durch den Nutzenden, sobald möglich.
Offline User Experience nicht dem Zufall überlassen
Wie du siehst, gibt es beim Thema User Experience von Web-Anwendungen in Zusammenhang mit dem Grad der Verfügbarkeit der Datenverbindung einiges zu beachten. Es gibt allerdings nicht den einen richtigen Weg, der für alle Anwendungen ein ausgezeichnetes Nutzungserlebnis garantiert oder praktikabel ist. Wie so oft muss bei der Konzeption mit viel Erfahrung und Kenntnis über Zielgruppe und Anwendungsfälle der Einzelfall genau betrachtet werden. Aber zumindest dürfte jetzt klar sein, dass „offline“ nicht nur ein rein technisches Problem ist.