10 Wege zur besseren Developer Experience

08.05.2024
Von 


Isaac Sacolick ist Autor des Amazon-Bestsellers "Diving Digital: The Leader's Guide to Business Transformation thourh Technology". Er schreibt als freier Autor unter anderem für unsere US-Schwesterpublikation CIO.com.

 
Technische Führungskräfte, die die Erfahrung ihrer Entwickler möglichst frustfrei gestalten, haben ein leichteres Arbeitsleben und mehr Erfolg.
Wenn die Developer Experience leidet, bleibt das für Software, Team und Unternehmen nicht folgenlos.
Wenn die Developer Experience leidet, bleibt das für Software, Team und Unternehmen nicht folgenlos.
Foto: dotshock | shutterstock.com

Die Developer Experience (DX; auch Entwicklererfahrung) zu stärken beziehungsweise zu optimieren, war lange Jahre keine Priorität von C-Level-Entscheidern. Das hat sich inzwischen grundlegend verändert, wie zum Beispiel eine Umfrage von Gartner zeigt. Demnach schreiben inzwischen 58 Prozent der Führungskräfte im Bereich Software Engineering der Developer Experience entscheidende Bedeutung zu.

Aus gutem Grund: Entwickler, die in ihrem Unternehmen in den Genuss einer positiven Developer Experience kommen, tun sich in aller Regel leichter, wenn es darum geht:

  • Endbenutzer mit Innovationen zu begeistern,

  • qualitativ hochwertigen Code termingerecht zu liefern und

  • den Softwareentwicklungsprozess kontinuierlich zu optimieren.

Im Generative-AI-Zeitalter ist es eher unwahrscheinlich, dass der Druck auf die Entwicklungsabteilungen in absehbarer Zeit abnimmt - eher im Gegenteil. Umso wichtiger ist es, eine positive Entwicklererfahrung zu gewährleisten. Alles andere führt zu Fluktuation und inkonsistenten Ergebnissen. Die folgenden zehn Maßnahmen können dazu beitragen, Ihre Developer glücklich zu machen.

1. Diverses Team kultivieren

Eine hervorragende Developer Experience erfordert in erster Linie eine entsprechende Unternehmenskultur, wie Keith Pitt, Gründer und CEO des Softwareunternehmens Buildkite, weiß: "Unternehmen sollten Innovationskraft fördern. Deshalb braucht ein Entwicklerteam nicht nur strukturierte Arbeitstiere, sondern auch Innovationskünstler. Um die anzuziehen und zu halten, müssen IT-Führungskräfte in einer zunehmend automatisierten Branche ein Umfeld schaffen, das Kreativität belohnt und kalkulierte Risiken nicht abstraft. Nur so können sich Visionäre entfalten."

2. Tools standardisieren

Wenn es um Tools geht, gehen die Meinungen auseinander. Während die eine Denkschule Devops-Teams diesbezüglich freie Hand lässt, schlägt die andere vor, ein dediziertes Team einzusetzen, das Standards aufsetzt und Tools selektiert. Ein Mittelweg: Geben Sie Ihren Entwicklern die Möglichkeit, selbstorganisierte Standards für die erforderlichen Tools und Kompetenzen aufzusetzen und gestehen Sie Ihnen zu, die Technologien zu wählen, die klare Benefits bieten.

Laurent Doguin, Director of Developer Relations and Strategy beim Datenbankanbieter Couchbase, erklärt, worin die Vorteile dieses Ansatzes liegen: "Wenn neue Tools, Sprachen und Prozesse eingeführt werden, die mit den etablierten Arbeitsabläufen der Entwickler kollidieren, kann sich das negativ auf die Developer Experience auswirken. Das gilt insbesondere, wenn Entwickler mit Generative AI experimentieren, um Boilerplate Code, Dokumentationen oder Refactoring zu automatisieren."

Führungskräfte sollten demnach Möglichkeiten schaffen, Technologien zu erlernen und Best Practices anzuwenden. Zudem empfiehlt sich ein transparenter Prozess, um neue Technologien auszuwählen und mit ihnen zu experimentieren sowie klare Richtlinien zu den Investitionskriterien zu kommunizieren.

"Entwickler sind heute mehr denn je auf der Suche nach reibungsarmen Wegen zum Erfolg. Dazu reicht es nicht aus, nur über fortschrittliche Funktionen zu verfügen - die Time-to-Build und die Time-to-Next-Innovation müssen minimiert werden. Das bedeutet, Konfigurationen zu rationalisieren, intelligente Standardeinstellungen zu definieren und Optionen für erweiterte Konfigurationen anzubieten", konstatiert Cody De Arkland, Senior Director of Product Incubation beim Plattformanbieter LaunchDarkly.

3. Technische Schulden systematisch angehen

Schlecht geschriebenen Code zu "erben" und diesen dann unter Zeitdruck optimieren zu müssen, ist für Developer extrem stressig. Diesen Kreislauf halten Unternehmen in Gang, indem sie ihren Fokus zu stark darauf legen, Funktionen zu entwickeln - statt die Entwickler zu fragen, welche Anwendungsbereiche aktualisiert werden sollten.

Bob Quillin, Chief Ecosystem Officer beim Plattformanbieter vFunction erklärt: "Im Rennen um Schnelligkeit und Wettbewerbsfähigkeit häufen Unternehmen technische Schulden an wie nie zuvor. Insbesondere im Bereich der Architektur kann das die Teammoral und die Entwicklerproduktivität senken - und es deutlich erschweren, die Vorzüge neuer Technologien wie generative KI gewinnbringend zu nutzen."

Um die Developer Experience zu stärken, sollten agile Entwicklungsteams auf einen klaren Prozess und Richtlinien zurückgreifen können, um technische Schulden zu katalogisieren, zu reduzieren und ihren Abbau zu priorisieren. In diesem Rahmen sollte auch zwischen unterschiedlichen technischen Schulden unterschieden werden - beispielsweise in den Bereichen Data, Operations, Security und Architektur.

4. Dev-Input abholen

Geht es darum, die Architektur zu definieren und geeignete Entwicklungs-Frameworks auszuwählen, sollten Entwickler unbedingt auf kollegiale Art und Weise in den Entscheidungsfindungsprozess eingebunden werden - beispielsweise in Form von Meetings und Feedback-Runden.

Sandhya Sridharan, Head of Engineers Platform and Experience bei JPMorgan Chase, gibt Einblick in die (Gefühls-)Welt der Devs: "Heutzutage wird von Software-Ingenieuren Übermenschliches erwartet - nämlich eine Vielzahl von Technologien, Infrastrukturen, Netzwerken und mehr zu beherrschen. Das führt oft zu einer kognitiven Überlastung. Um die Softwareentwicklung effektiv zu rationalisieren, ist entscheidend, eine solide, meinungsbildende Basisplattform zu schaffen, die gleichzeitig ein Self-Service-Modell realisiert."

Feedback erfassen, Experimente fördern und Standards festlegen - besonders in großen Unternehmen mit vielen Plattformen und Anwendungstypen dürfte es nicht einfach sein, dabei die richtige Balance zu finden. Insbesondere Standards vorzugeben, kann die Developer Experience verschlechtern. Deshalb ist es umso wichtiger für die Devs zu wissen, wie und warum bestimmte Architekturentscheidungen getroffen werden.

5. Collaboration fördern

Entwickler sind in aller Regel nicht begeistert von unproduktiven, sinnlosen Meetings. Sie ziehen oft den schnellen und direkten Austausch über Collaboration Tools vor. Entsprechend kann ein inkonsistenter Ansatz für Collaboration, Kommunikation und Dokumentation die Entwicklerproduktivität erheblich beeinträchtigen, wie Joseph Varghese, Mitbegründer und CTO des Softwareanbieters StreamAlive, illustriert: "Wenn es um das Onboarding von Entwicklern und technischen Talenten geht, lassen viele Firmen ansprechende Tools und Ressourcen vermissen, die nötig wären, um eine transparente und einladende Kultur zu verwirklichen."

Delivery-Verantwortliche sollten sich deshalb darauf fokussieren, Standards in verschiedenen Bereichen festzulegen. Zum Beispiel in Form von:

  • Templates für User Stories, die Akzeptanzkriterien und eingebettete Diagramme enthalten.

  • Standards für wöchentliche Update-Dokumentationen anstelle von Status-Update-Meetings.

  • Dokumentationsanforderungen dafür, welche Komponenten bei jeder Produktionsversion aktualisiert werden müssen.

  • Best Practices für virtuelle Meetings und effektive, asynchrone Kommunikationsmittel.

Eine gute Developer Experience stellt die Zusammenarbeit im Team in den Mittelpunkt, indem sie Tools standardisiert, die mit dem Entwicklungs-Workflow verbunden sind und klare Kommunikationserwartungen definiert.

6. Zuständigkeiten abklären

Die Vielzahl der inzwischen vorhandenen Tools, um Cloud-Infrastrukturen zu managen, zu automatisieren und abzusichern hat vielerorts dazu geführt, dass sich die Dev- und Ops-Verantwortlichkeiten verschoben haben.

Dattaraj Rao, Chief Data Scientist beim Data-Management-Spezialisten Persistent Systems, erklärt: "In der heutigen Cloud-Infrastruktur-Landschaft hat sich die Rolle des Entwicklers maßgeblich verändert und entwickelt sich von der bloßen Programmierarbeit hin zu einer Full-Service-Rolle. Sie programmieren, liefern und betreiben Anwendungen, während die Infrastruktur dynamisch programmiert und bereitgestellt wird. Diese umfassende Eigenverantwortung wird durch zugängliche Cloud-basierte KI-Services unterstützt, die anspruchsvolle Lösungen ermöglichen."

Es ist deshalb essenziell, die Zuständigkeiten für Infrastruktur und Operations-Tasks klar zu definieren und zu kommunizieren, um die Developer Experience zu optimieren. Eine Einheitslösung gibt es dabei allerdings nicht.