Eine gute Developer Experience
(developerexperience.io)Good Developer Experience
- TL;DR
Vergessen Sie nicht, Entwickler glücklich zu machen und dieses Glück zu erhalten.
# Was ist eine gute Developer Experience (DX)?
Developer Experience bezeichnet die Erfahrung, die Entwickler bei der Nutzung oder Entwicklung eines Produkts machen.
In vielen Unternehmen hat sie jedoch eine niedrigere Priorität als die UX (User Experience). Auch Entwickler sind Nutzer und verwenden Produkte.
Ihre Zufriedenheit und ihr Wohlbefinden sind für den Erfolg eines Projekts äußerst wichtig. Glückliche Entwickler entwickeln hervorragende Software und verlassen das Team mit geringerer Wahrscheinlichkeit.
Wir definieren eine gute Developer Experience anhand der folgenden vier Elemente.
-
Eine passende Architektur
Ist die Architektur zu einfach, leidet man später darunter; ist sie zu komplex, schmerzt sie schon jetzt.
Die Architektur sollte unter Berücksichtigung des Projekts und der Teamgröße gewählt werden. Eine gute Architektur ist schwer kaputtzubekommen, hat kurze Feedback-Zyklen und ist widerstandsfähig. -
Gute Tools
Automatisierung wird überall dort empfohlen, wo sie möglich ist. Wiederkehrende Aufgaben sind ermüdend. -
Prozesse, die die Zeit nach der Entwicklung ergänzen
Diese Prozesse sollten wie automatisierte Checklisten funktionieren und konsistente Schritte bereitstellen. Definierte Prozesse helfen beim Training des Teams.
Wenn das Unternehmen groß genug ist, nutzen Sie Prozesse für QA, Deployment, Feedback, Onboarding usw. -
Eine nicht schädliche Teamkultur
Definieren Sie den Zweck des Unternehmens. Geld zu verdienen sollte nicht das einzige Ziel sein.
Kultur ist die wichtigste Brainware (Software, die im Kopf läuft), die Sie in einem Unternehmen und Team installieren können.
Jede Entscheidung, die Entwickler treffen, wird durch die installierte Brainware gefiltert.
Wenn sie mit dieser Brainware nicht einverstanden sind, ignorieren sie sie.
# Warum eine gute Developer Experience notwendig ist
## Teams mit einer guten Developer Experience sind produktiver und zeigen folgende Eigenschaften:
-
Ein Gefühl für Wirkung
Sie verstehen, dass es nicht nur darum geht, Geld zu verdienen. Sie wissen, dass ihre Arbeit wichtig ist und das Leben anderer verbessert. -
Ownership und Verantwortungsbewusstsein
Sie tragen Verantwortung für den Erfolg. Jedes Teammitglied sollte sich für den Erfolg des Unternehmens mitverantwortlich fühlen. -
Gemeinsame Ziele
Das Team, die Abteilung und das gesamte Unternehmen verfolgen gemeinsame Ziele. -
Freundlichkeit und Ehrlichkeit
Wir nennen das eine „Hey-bro“-Kultur. Wir betonen Aufrichtigkeit bei großem Respekt. -
Toleranz gegenüber Fehlern
Entwickler sollten mutig sein und Risiken eingehen. Risiken sollten jedoch immer kalkuliert sein, und Entwickler sollten wissen, wie viele Probleme jede Aufgabe verursachen kann.
## Merkmale einer Kultur mit schlechter Developer Experience:
-
Fingerzeigen
Teammitglieder geben einander die Schuld für fehlerhafte Arbeit. Das ist sehr schädlich, kommt aber häufig vor. -
Harte Bestrafung von Fehlern
Zum Beispiel ein Vorgesetzter, der sagt, dass man entlassen werden könnte, wenn man eine Frist nicht einhält. -
Dauerhafter Crunch und kontinuierliche Überlastung des Teams
-
Feindseligkeit und Unsicherheit
Ungesunder Wettbewerb zwischen Teams. (Zum Beispiel: Diese Person ist besser als ich und wird deshalb befördert.) -
Verwässerte Verantwortung
In großen Unternehmen kann es sich so anfühlen, als würde niemand Verantwortung übernehmen. Es braucht Mut, zu sagen: „Tut mir leid, ich habe es vermasselt.“ Es ist wichtig, Verantwortung übernehmen zu können.
# Probleme, die eine gute Developer Experience lösen kann
- Aufbau von Wissen
- Falscher Product-Market-Fit
- Unmotivierte Teams
- Die Denkweise „Nicht mein Problem“
- Gescheiterte Produkte
- Unzufriedene Kunden
- Abkopplung zwischen Business und IT
- Schädliche Teamkultur
- Schlechte Code-Qualität
- Steigende Kosten
- Sinnlose Arbeit
# Wie man eine gute Developer Experience umsetzt
Mitte der 1980er Jahre entwickelte Dr. Martin Barnes das „Scope Triangle“. Es zeigt die Beziehung zwischen drei grundlegenden Kräften.
Zeit, Geld, Qualität
Dieses Dreieck bedeutet, dass man zur Steigerung der Qualität Geld oder Zeit anpassen muss. Wir glauben jedoch, dass die Realität nicht so funktioniert. Zu diesem Dreieck muss man emotionale Kosten hinzufügen.
Wenn Entwickler lange bleiben müssen, um ihre Arbeit abzuschließen, investieren sie nicht nur Zeit. Ein weiterer Teil dieser Investition sind emotionale Kosten. Eine hervorragende Developer Experience hilft dabei, diese emotionalen Kosten unter Kontrolle zu halten. Wenn Sie Entwickler glücklich machen wollen, halten Sie die emotionalen Kosten niedrig.
# Häufige Fallstricke bei einer guten Developer Experience
- Entwicklern zu früh zu viele Informationen geben.
- Entwicklern zu wenige Informationen geben, wenn sie mehr Informationen benötigen.
- Ein übermäßiger Einsatz von Prozessen kann zu einer Denkweise führen, in der „alles passend gemacht wird“.
- Tendenz zum Overengineering
- Agile = eine Ausrede, Entwicklern noch mehr Arbeit aufzubürden
1 Kommentare
Danke für die Übersetzung!