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.
7. Standards und Metriken definieren
Tools, die automatisiert Code generieren, sind heute an der Tagesordnung. Sie sorgen dafür, dass künstliche Intelligenz zunehmend Commodity wird und treiben die Produktivität in neue Höhen. Das erfordert allerdings auch einen intelligenten Ansatz mit Blick auf die Definition von Qualitätsstandards und Ergebnisvalidierung.
Jonathan Vilar, Developer Advocate beim Softwareanbieter Sonar, appelliert: "Es ist essenziell, KI-generierten Code zu überprüfen, bevor er in Repositories einfließt. Linter und Quality Gates sind geeignete Tools, um das Optimum aus KI herauszuholen - ohne dabei die Codebasis zu gefährden."
Qualitätsstandards und -metriken zu definieren stellt zudem sicher, dass die Entwickler mit klaren Erwartungen und Akzeptanzkriterien arbeiten können.
8. App-Security- und Dev-Team zusammenbringen
Best Practices für die Sicherheit zu implementieren, ist kein Kinderspiel. Entwicklern allerdings die Schuld für unbeabsichtigte Schwachstellen, nicht überprüfte Komponenten oder Patching-Versäumnisse zuzuschieben, ist höchst problematisch. Zumindest, wenn die Developer Experience nicht leiden soll. Der Ausweg besteht darin, eine Brücke zwischen den Teams für Anwendungssicherheit und Entwicklung zu schlagen.
Jason Chan, ehemals VP for Information Security bei Netflix, spezifiziert: "Anwendungssicherheitsteams verfolgen das Ziel, das Risiko für das Unternehmen zu minimieren und die Softwarequalität zu verbessern. Die Art und Weise, wie sie traditionell arbeiten, steht jedoch im krassen Gegensatz zur Developer Experience."
Um die App Security mit Fokus auf die Entwicklererfahrung zu modernisieren, empfiehlt der Sicherheitsexperte:
Sicherheitsprobleme mit geringerer Priorität soweit wie möglich zu minimieren, um zu verhindern, dass Builds blockiert werden;
Entwickler dabei zu unterstützen, Security-Konfigurationen "by default" aufzusetzen;
ausschließlich validierte Schachstellen oder Erkenntnisse zu eskalieren.
9. Tech-Burnout vorbeugen
In Tools, Kultur und Collaboration zu investieren, hilft der Developer Experience wenig, wenn die Arbeitsumgebung der Devs einer Stresshölle gleichkommt, die unweigerlich in den Burnout führt. Laut dem JetBrains-Report "State of Developer Ecosystem 2023" haben bereits 73 Prozent der befragten Devs in ihrer Karriere Burnout-Erfahrungen gemacht - 45 Prozent nutzen Apps oder Devices zum Selbst-Monitoring, um ihre körperliche Aktivität, Schlafqualität oder allgemeine Gesundheit zu tracken.
Wie wichtig es ist, Mental-Health-Probleme offen zu thematisieren und entsprechende Hilfe anzubieten, versteht sich von selbst. Führungskräfte, die Tech-Burnout vorbeugen wollen, können verschiedene Maßnahmen ergreifen - beispielsweise auf Mikromanagement zu verzichten.
10. Geschäftssinn stärken
Die Developer Experience zu optimieren, ist nicht nur eine Sache von Tools, Technologien, Prozessen, Zusammenarbeit und Kultur. Vor allem verbessert sie sich dramatisch, wenn Business Stakeholder und Endbenutzer die Innovationskraft und Bemühungen des Dev-Teams zu schätzen wissen.
Eine Möglichkeit, diese Wertschätzung greifbar zu machen, besteht darin, Entwickler zu ermutigen, ihren Geschäftssinn zu erweitern. Zu verstehen, wie das Unternehmen Geld verdient, warum die Kunden auf dessen Produkte und Services schwören und wie die unterschiedlichen Abteilungen die entwickelten Technologien einsetzen, kann enorme Motivation entfachen. (fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.