Embedded GUI Best Practices der toolgestützten Entwicklung

Design und Interaktion

  • Softwareentwicklung und UI-Design sind grundsätzlich verschiedene Disziplinen. Mit Sicherheit gibt es exzellente Software-Entwickler, die auch etwas von anwendunsgerechtem Design verstehen - aber das ist eher die Ausnahme. Oftmals sehen UIs, die von professionellen Software-Entwicklern angefertigt wurden wie technische Schalttafeln aus.
  • „Schön“ oder „ansprechend“ sind keine Designattribute, wesentlich ist die anwendungsgerechte Bedienbarkeit, oder auch Usability. Sie soll die Bedienung sicher, d.h. gefahrenfrei, effizient und somit produktivitätssteigernd aber auch einfach, um die Einarbeitungszeit zu verkürzen, gestalten.
  • Ein guter Look zieht eben zwangsläufig noch keinen guten Feel nach sich. Die Übergänge der einzelnen Ansichten - die Animationen - müssen ebenfalls konzipiert, implementiert und auf Performanz getestet werden. Und erst die Kombination aus zweckmäßigem Design, Usability und einer flüssigen Bedienung ermöglichen ein geeignetes Nutzererlebnis.
  • Oft möchte das Management, der Vertrieb oder die Marketingabteilung schon während der Entwicklung frühzeitig ein Gefühl vom fertigen Endprodukt bekommen.

Dann sind effiziente Visualisierungswege, ohne weitere Vorab-Prototypen gefragt. Analog zum Software-Entwurf sollte auch beim Entwurf der graphischen Einheiten und Interaktionen, also dem User-Experience Design, in Komponenten gedacht werden. Nur so kann eine Verzahnung beider, oftmals paralleler, Entwicklungen erfolgen.

Altbekannte Entwicklungsmodelle wie das Wasserfall- oder das V-Modell könnten hierbei grundsätzlich auch zur Anwendung kommen, allerdings würde dann die Verzahnung in zu späten Stadien erfolgen. Daher wird empfohlen, agile Entwicklungsmodelle, wie Scrum oder Kanban, sowohl für das Design- als auch das Software-Projekt einzusetzen. Damit gehen schnellere Iterationen mit öfteren Feedback-Schleifen zwischen Designern, Software-Entwicklern und Produktverantwortlichen einher.

Demzufolge sollte das verwendete GUI-Framework auch diese Entwicklungsmethoden unterstützen. Ein Beispiel wäre das Bereitstellen des resultierenden GUIs ohne Abhängigkeiten zur Zielplattform, aus dem aktuellen Stand der Software. Dies kann in Form einer PC- oder Mac-Anwendung geschehen oder als im Browser lauffähige Version.