Developer Experience: GlĂĽckliche Entwickler schreiben besseren Code
Developer Experience umfasst, was Entwickler zufriedener macht. Was zeichnet sie laut aktueller Forschung aus, und was zählt in den Augen eines Entwicklers?
- Felix Magnus
Vielen ist sicherlich der Begriff User Experience (UX) bekannt – er beschreibt die Erfahrung von Benutzerinnen und Benutzern während der Verwendung einer Software. Der Begriff Developer Experience (DX) ist dagegen weniger geläufig. Er adaptiert Konzepte aus der UX-Optimierung auf die Erfahrungen von Entwicklerinnen und Entwicklern. Dieser Artikel stellt das Konzept der Developer Experience vor und beschreibt dann aus der subjektiven Sicht eines JavaScript-Entwicklers, wie sie sich konkret verbessern lässt.
Akademische Definition: Developer Experience
Die Informatiker Fabian Fagerholm und Jürgen Münch von der Universität Helsinki definieren Developer Experience als Erfahrungen mit allen Arten von Artefakten und Aktivitäten, denen Entwicklerinnen und Entwickler im Rahmen der Softwareentwicklung begegnen. Sie lassen sich grob unterteilen in Erfahrungen bezüglich der Entwicklungsinfrastruktur, die gefühlsmäßige Einstellung zur Arbeit und den Wert des eigenen Beitrags.
Was die Autoren damit meinen, zeigt Abbildung 1. Hinsichtlich der Infrastruktur zählen Entwicklungs- und Management-Tools, Programmiersprachen, Bibliotheken, Plattformen und Methoden. Wie Entwicklerinnen und Entwickler gefühlsmäßig zu ihrer Arbeit stehen, hängt beispielsweise ab von Respekt, Verbundenheit oder Zugehörigkeit. Den Wert des eigenen Beitrags messen die Autoren am Grad der Übereinstimmung der eigenen Ziele mit denen des Projekts und ihrem persönlichen Engagement.
Der folgende Beitrag bezieht sich hauptsächlich auf den Aspekt der Infrastruktur, in den Augen des Autors sind die verfügbare Infrastruktur und der Umgang damit bei vielen Projekten grundlegend für eine gute oder schlechte Erfahrung bei der Entwicklung. Da der Autor vorrangig als JavaScript- und TypeScript-Entwickler arbeitet, stehen diese Programmiersprachen auch im Zentrum der folgenden Überlegungen. Durch den subjektiven Charakter seiner Ausführungen möchte er andere Entwickler und Entwicklerinnen zum Nachdenken über ihre eigene Developer Experience anregen.
Entwicklerzufriedenheit durch Minimierung der Zeiträuber
In Bezug auf die genutzte Entwicklungsinfrastruktur kann man von einer guten Developer Experience sprechen, wenn Entwicklerinnen und Entwickler beim täglichen Umgang mit ihren Werkzeugen Spaß haben und zufrieden sind. Als zeitraubend empfundene Faktoren des alltäglichen Arbeitens sollten minimal ausfallen. Eine gute Developer Experience führt zu mehr Zufriedenheit beim Arbeiten und auf die Qualität der entwickelten Software auswirken.
Der Begriff "Werkzeug" ist in diesem Falle weit gefasst. Es kann sich hier um das genutzte Betriebssystem, die Programmiersprache, ein spezielles Programm zum Entwickeln von Software wie einen Editor, eine IDE (Integrated Development Environment), die Schnittstelle zu einer Bibliothek oder eine API-Dokumentation handeln.
Ob und wie sich eine gute Developer Experience erreichen lässt, hängt von verschiedenen Faktoren ab, nämlich von der genutzten Programmiersprache, der zur Verfügung stehenden Hardware, der zur Entwicklung genutzten Entwicklungsumgebung, der Verfügbarkeit einer Dokumentation, der Geschwindigkeit der technischen und der produktbezogenen Feedbackschleife und auch von dem organisatorischen Umfeld. Hierbei gilt es zu bedenken: Je populärer eine Programmiersprache ist, desto größer ist das Angebot im Ökosystem bezüglich des Toolings, der Dokumentation und der Bibliotheken.
Veraltete oder dem Entwicklungsauftrag nicht mehr angemessene Hardware verlangsamt den Prozess. Einige Tools bieten mehr Komfortfunktionen als andere, und außerdem spielt die Erfahrung, die Entwicklerinnen und Entwickler bereits mit dem Tool haben, eine Rolle. Da die Geschmäcker und Prioritäten der Menschen unterschiedlich sind, ist ein Begriff wie Developer Experience jedenfalls subjektiv geprägt.