... dieses hin und her (zwischen Klimatisierung und Scheibenheizung) mit dem identischen Fehlerbild hatte ich in der letzten Woche ebenfalls schon mehrfach. Die kriegen einfach nix hin.
Das Problem falscher oder leerer Darstellung von irgendwelchen Elementen und Daten in den Apps liegt meiner Meinung nach an einer schlechten Programmierung. Es werden nämlich teilweise Elemente wie Temperatur und Ladelimit angezeigt, bevor die aktuellen Daten vom Server abgerufen wurden. Was dann dort steht ist irgendein Standardwert.
Es ist allerdings nicht ersichtlich, dass noch ein Datenabruf stattfindet. Wenn dann noch der Datenabruf 10-30 Sekunden dauert oder gar in einem Timeout endet, springt die Anzeige wahllos. In der Zwischenzeit kann man aber oft schon wieder einen neuen Wert und Befehl absenden. Dann gibts Chaos.
Lustigerweise sind genau solche Szenarien auch absoluter Standard und es gibt Best-Practices, wie man diese lösen kann:
- Ladeanimationen anzeigen, wenn Daten abgerufen werden. Immer.
- Falls dort schon Daten stehen, den Stand der Daten anzeigen ("zuletzt aktualisiert vor 2 Minuten").
- Nicht kritische Daten zwischenspeichern.
- Wenn Elemente durch fehlende Daten oder Verbindungen noch nicht bedient werden können, deaktiviere diese und zeige den Grund an. "Verbindung zum Auto erforderlich" oder so.
- Abruf verschlanken: Nicht immer stumpf alle Daten abfragen, sondern erst Checken ob es auf dem Server überhaupt neue Daten gibt. Sind die Zeitpunkte des letzten Updates identisch? Top, dann muss man auch nix machen!
- Nutze Warteschlangen für Befehle mit Zeitstempel, Priorisierung und Typ. Es ist vollkommen normal, dass Befehle aus diversen Gründen nicht sofort übertragen werden können. Es kann sogar passieren, dass abgesetzte Daten in einer anderen Reihenfolge ankommen oder verarbeitet werden.
Wenn es also in der App eine Warteschlange gibt, die abgearbeitet wird, kann man doppelte Befehle vermeiden. Falls es also noch einen ausstehenden Befehl vom Typ "Klimatisierung" gibt und ein neuer Befehl abgesetzt werden soll, wird der ältere Befehl gelöscht und nicht mehr verschickt.
Gleiches gilt für den Server: Wenn ein Befehl eintrifft, dessen Erstellungszeit vor einem bereits verarbeiteten Befehl liegt, wird dieser ignoriert.
Außerdem ist es sinnvoll, dass man noch ausstehende Aktionen abbrechen kann.
Wie man solche Sachen gut umsetzen kann sieht man ganz schön in der Bosch-App für E-Bikes:
IMG_8079.png
(Ja, ich bin noch nicht viel und lange nicht gefahren. Regen und so. :-()
Meiner Erfahrung nach ist das Gegenteil der Fall: Im Großkonzern verhindern *zuviele* Strukturen und Vorgaben oft, dass Dinge passieren, obwohl alle ihre Notwendigkeit erkennen.
ich würde ehr sagen: FALSCHE Strukturen. Schließlich sind Amazon, Microsoft, Apple, Mercedes, Bosch und Co. ja auch riesige Läden. Und da läufts (besser).
Gleiches gilt für Bosch: https://community.bosch-smarth…ngen/bg-p/Statusmeldungen
Es wird informiert. Es wird gefragt. Es wird aufgeklärt.
Einfach nur nur sprachlos
Ja. Schließlich gibt es fertige Standardlösung (Atlassian Statuspage, Hund.io, cronitor.io etc.) oder für genau diese Fälle. Es gibt X/Twitter, Facebook, whatever.
Ich habe auch schon erlebt, wie größere Unternehmen bei einem unerwarteten Ausfall eine Google Dokument erstellt haben, um über den aktuellen Stand zu informieren. Alles legitim! Hauptsache, es passiert.
Fakt ist: Die Apps für mein Fahrrad und meinen Geschirrspüler sind um ein vielfaches besser als die Anwendung für mein Auto. Und das ist ein Armutszeugnis.