Der Begriff „User Experience“ (UX), die Erfahrung, die Nutzerinnen und Nutzer bei der Anwendung einer Software machen, ist weitläufig bekannt. Daneben etabliert sich immer mehr die Bezeichnung „Developer Experience“ (DX). Das Konzept übernimmt Funktionen von UX für die Anwendung von Software für Entwicklerinnen und Entwickler.

Die Architektur moderner Backend-Landschaften wird häufig so gestaltet, dass die Systeme im Backend möglichst unabhängig voneinander sind (low coupling). Für die Komplexität und Größe der Systeme gibt es keine feste Vorgabe. Generell gilt der Grundsatz: so klein wie möglich und so groß wie nötig. In dem Fall spricht man von einer Microservice-Architektur. Die Bereitstellung von Microservices führt für die Konsumentinnen und Konsumenten („Consumer“) häufig zu einer hohen Komplexität. Consumer, die eine Reihe von Microservices kombinieren müssen, sehen sich einer Vielzahl von Schnittstellen und Strukturen gegenüber.

Developer Experience: Gute Erfahrungen machen glücklicher und produktiver

Im Bereich der Entwicklung von Endkunden-Anwendungen mit User Interface (UI) hat sich der Begriff User Experience längst etabliert. UX beschäftigt sich ausgiebig damit, Anwendungen so zu gestalten, dass sie für die Nutzerinnen und Nutzer möglichst einfach zu bedienen sind und dennoch die notwendige funktionale Komplexität besitzen, um alle Anforderungen zu erfüllen.

Für die Entwicklung von Services ohne User Interface sind diese Aspekte aber genauso wichtig. Die Nutzenden der Services sind in diesem Fall aber nicht die Endanwenderinnen oder Endanwender, sondern Entwicklerinnen und Entwickler der Consumer-Anwendung. Die Schnittstelle zum Consumer ist nicht mehr das User Interface, sondern das API, welches vom Provider bereitgestellt und vom Consumer verwendet wird. Die Qualität des API sollte für  die Entwicklerin oder den Entwickler ebenso gut sein, wie sie auch Nutzende vom UI einer modernen Anwendung erwarten. Dafür etabliert sich nach und nach der Begriff „Developer Experience“ (DX). DX ist somit das Äquivalent zu UX für Entwicklerinnen und Entwickler. Das Konzept beschreibt die Erfahrung, die sie bei der Verwendung des Produkts machen. DX umfasst dabei das API, die Dokumentation sowie bereitgestellte Werkzeuge und Bibliotheken. Entwicklerinnen und Entwickler, die gute Erfahrungen mit einem Produkt machen, verwenden dieses länger und sind produktiver. Der Erfolg eines Produktes, welches von Entwickelnden genutzt wird, hängt maßgeblich von der Developer Experience ab.

Kriterien für eine gute Developer Experience

Verwendbarkeit (usability)

  • Vollständigkeit der Funktionalität
  • Strukturiertes Interface
  • Einheitliche Bezeichner, Signaturen, Fehlercodes, Datenstrukturen
  • Angebotene Services orientieren sich an den Anforderungen des Consumers

Stabilität (stability)

  • Fehlertoleranz
  • Verfügbarkeit
  • Dauerhaftigkeit

Zugänglichkeit (accessability)

  • Dokumentation
  • Sandbox
  • Testumgebung
  • Technologische Vorgaben

 

Ein Beispiel für die Herstellung einer guten Developer Experience ist das API des Online-Bezahldienstes Stripe. Bezüglich der Aspekte Zugänglichkeit und Verwendbarkeit bietet die hervorragende Online-Dokumentation einen direkten Einstieg für Entwicklerinnen und Entwickler, inklusive Sandbox zum unmittelbaren Ausprobieren. Die Stabilität ist für den Bezahldienstleister ebenfalls ein wichtiger Aspekt.

Um ein Angebot in diesem Umfang bereitzustellen, bedarf es eines größeren Entwickler-Teams und eingeübter Verfahren bei der Entwicklung des API und der zugrundeliegenden Komponenten. Oftmals lässt sich die Developer Experience auch mit überschaubareren Maßnahmen und Vorgaben erreichen. Am Ende sorgt eine gute DX für eine höhere Zufriedenheit bei Entwicklerinnen und Entwicklern.

Jetzt teilen auf:

Jetzt kommentieren