Usability in Embedded Development: Wie gute Debug-Interfaces Entwicklern und Testern Zeit und Frust sparen

Jürgen Welzenbach

18/12/2025

Usability steht allgemein hoch im Kurs – und wird dennoch immer wieder stiefmütterlich behandelt.

Warum ist das so? Weil Usability oft erst dann auffällt, wenn sie fehlt. Sie lässt sich schwer messen, wird nicht immer spezifiziert – und im Alltag häufig durch technische Machbarkeit, Zeitdruck oder Gewohnheit überlagert. Dabei merken wir alle sehr schnell, wie wichtig sie ist, wenn wir selbst betroffen sind.

Die besten Features sind die, die keiner bemerkt

Ich kenne das zum Beispiel aus meinem Alltag. Am Morgen will ich mir schnell eine Tasse Milch aufwärmen – eigentlich eine simple Aufgabe. Aber der Mikrowellenofen macht daraus ein kleines Geduldsspiel:

Erstmal das Touchpanel „wecken“. Und anstatt die letzten Einstellungen einfach wieder zu verwenden, muss ich jedesmal wieder die Leistung einstellen und die Zeit wählen. Die Touchfelder reagieren träge oder zu schnell, manchmal überspringe ich versehentlich eine Auswahl.

Wenn man noch halb verschlafen ist, sorgt das für ordentlich Frust. Ich hab das dem Küchenbauer gesagt. Seine Antwort: „Seien Sie froh, dass Sie dieses Modell überhaupt noch bekommen haben. Die neueren sind noch schlimmer.“

Hmm - das hilft mir jetzt nicht wirklich weiter. Sollte ich dann doch mal dem Hersteller schreiben?

Debug-Interfaces: Der unterschätzte Usability-Brennpunkt

Und genau deshalb lohnt es sich, das Thema Usability auch in der Softwareentwicklung ernst zu nehmen.

Oft heißt es bei uns: „Das HMI-Design kommt vom Kunden, wir setzen nur um.“ Aber halt – es gibt ja auch die internen Schnittstellen. Ein Debug-Interface zum Beispiel.

Und da habe ich schon einiges erlebt:

  • Befehle, die man – inklusive exakter Groß- und Kleinschreibung – fehlerfrei eintippen muss. Kein Leerzeichen zu viel!
  • Ein Parameter in Dezimal eingegeben? Pech, das Interface erwartet Hexadezimal.
  • Der eine Befehl will optionale Parameter ohne Bindestrich, der nächste mit.
  • Rückmeldung, ob der Befehl erfolgreich ausgeführt wurde? Fehlanzeige.

Das alles nervt gigantisch. Aber warum definieren Entwickler solche Interfaces, die sie selbst tagtäglich nutzen müssen? Die Antwort könnte lauten: "Weil sie's können". Oder besser: "Weil sie's eben doch nicht können" und die Leidensfähigkeit schier grenzenlos ist.


Klein, aber oho: Usability für interne Tools

oder: Hex, Dez, Enum – macht’s dem User einfach (auch wenn er Entwickler ist)

Aber wie kann gute Usability einer solchen Schnittstelle dann aussehen? Hier ein paar Vorschläge - in einem aktuellen, real existierenden Projekt so umgesetzt:

  1. Groß-/Kleinschreibung ist egal
  2. Befehle können abgekürzt werden. Sobald zwei oder mehr Buchstaben für einen Befehl genügen (also nur ein Befehl mit diesen beginnt): Treffer!
  3. Ganz heißer Tipp: Backspace kann auch via Serial Terminal funktionieren
  4. Hexa- und Dezimalzahlen erlauben
  5. "sprechende" Bezeichner für z.B. I2C-Clients. Dann könnte ein Befehl, zum Setzen von Registern so aussehen: "i2c audio 0x4 32"
  6. Wenn ein Befehl eine Liste von Optionen erlaubt, dann sollte der Befehl ohne Parameter die Optionen auflisten. Das erspart lästige Suche in der Dokumentation. Geheimtip: Ist der Parameter ein Enum-Typ, dann macht den iterierbar und stellt eine "c_str()"-Funktion zur Verfügung. Dazu mehr in einem anderen Blog-Artikel.
  7. Überhaupt: Das Debug-Interface sollte sich selbst dokumentieren. "help all" listet zum Beispiel alle Befehle und die jeweilige Hilfe dazu.
  8. In dem Projekt gibt's ein richtiges Filesystem? Na, dann bitte die Kommandos "dir", "del", "cat", "copy" implementieren. Ist nicht aufwändig, aber ungemein hilfreich im weiteren Projektverlauf oder für die Tester. Dann kann man schnell ein Backup einer Config-Datei anlegen, um sie später wiederherzustellen.
  9. Aliases für Befehle: Die Linuxer verwenden gerne "rm", Windows-User "del". Hey - warum nicht beiden das Leben erleichtern? Seid nett zueinander ;-)

So viel vorweg: Die Tester werden euch zu Füßen liegen. Und wenn dann auch noch die Kunden oder andere Zulieferer mit dem Interface arbeiten müssen, habt ihr mit Sicherheit einen Stein im Brett!


Geschrieben von Jürgen Welzenbach

Jürgen hat nach seinem Elektrotechnikstudium in Erlangen seine Diplomarbeit in Kooperation mit einem Hersteller von ophthalmologischen Geräten und der Universitätsaugenklinik durchgeführt.

In zwei Erlanger Unternehmen fand er zur Embedded Software und hat vor allem HMIs für Baumaschinen und Laboranalysegeräte entwickelt.


Weitere Beiträge

  • 05/02/2026
  • Allgemein, Hardware, Requirements Engineering, Software, Zephyr

Welchen Unterschied kann ein CPR-Feedbacksystem für die Herz-Lungen-Wiederbelebung machen?Bei einem Herzstillstand stoppt unmittelbar der Transport von Sauerstoff zu den Körperzellen und führt zu irreversiblen Schäden. Das Absterben der Zellen ...

Weiterlesen
  • 20/01/2026
  • Allgemein, Fertigung, Produktion, Qualität, Testen, Unternehmen

Wir freuen uns sehr, unser Team bei MEDtech Ingenieur weiter zu verstärken: Seit dem 15.01.2026 unterstützt uns Lea Schöppach im Bereich Qualitätsmanagement, Testing und Produktionstechnik.Mit ihrer fundierten Ausbildung in der Medizintechnik und ...

Weiterlesen
  • 01/12/2025
  • Allgemein, Hardware, Normen, Requirements Engineering

Immer wieder lese ich Beiträge, in denen IEC 60601-1-2 als alleinige EMV-Anforderung an Medizinprodukte genannt wird. Aber wer glaubt, dass IEC 60601-1-2 alle EMV-Anforderungen für Medizinprodukte abdeckt, kann leicht ...

Weiterlesen