Wissen Sie, was DPE ist?

Gerónimo
Gerónimo
Fractional CTO
3 Min. Lesezeit

DPE steht für Developer Productivity Engineering und ist der Name einer neuen Disziplin, die darauf abzielt, die Produktivität von Entwicklern durch Automatisierung, Observability und Werkzeugverbesserung zu steigern.

Die Arbeit eines Entwicklers beim Programmieren besteht aus drei Phasen: Code -> Build -> Test. Der Entwickler wiederholt diese Sequenz Dutzende oder sogar Hunderte Male am Tag. Und in vielen Fällen können die Build- und Testphasen im Minutenbereich liegen. Zum Beispiel: Wenn der Build einer Anwendung 5 Minuten dauert und der Entwickler 10 Builds pro Tag durchführt, sind das 50 Minuten Wartezeit pro Tag für den Entwickler. Ebenso kann die Testphase die Wartezeit des Entwicklers erhöhen. Multiplizieren Sie das mit der Anzahl der Entwickler in einem Unternehmen, und die Kosten sind erheblich.

Dies ist ein bekanntes Problem in vielen großen Unternehmen, die seit Jahren ganze Teams und Abteilungen haben, die sich damit beschäftigen. Ich erinnere mich, als ich vor mehr als zehn Jahren bei Amadeus arbeitete, gab es ein Dev-Support-Team, das für die Entwicklung und Optimierung der Werkzeuge zuständig war, die wir Entwickler für Builds und andere Entwicklungsaufgaben nutzten. Und seit einigen Jahren spricht die Branche über die Developer Experience (oder DevEx), die den Fokus darauf legt, wie die Erfahrung der Softwareentwicklung verbessert werden kann und damit das Unternehmensergebnis.

In kleineren oder technologisch weniger reifen Unternehmen hängt es jedoch weitgehend von der Zeit ab, die jeder einzelne Programmierer investiert, wie optimiert die Entwicklungsumgebung und -erfahrung ist. Persönlich habe ich enorme Unterschiede in den Werkzeugen und der Entwicklungsumgebung zweier Programmierer im selben Team gesehen, die zu Stunden an Produktivitätsunterschied pro Woche führten. Das wäre das Äquivalent dazu, einigen Programmierern einen viel langsameren PC zu geben, zum Beispiel.

DPE schlägt eine Reihe von Techniken und Praktiken vor, die angewendet werden können, um die Produktivität des gesamten Teams zu verbessern.

  • Build Caches (lokal und remote): Vergangene Builds nutzen, um neue Builds zu beschleunigen.

  • Distributed Test Execution: Ermöglicht die parallele und verteilte Ausführung von Tests auf einer dedizierten Infrastruktur, wodurch die Zeit erheblich reduziert wird.

  • Predictive Test Selection: Anstatt alle Tests auszuführen, werden nur die relevanten Tests basierend auf dem geänderten Code ausgeführt.

  • Monitoring: Ermöglicht die Extraktion von Produktivitätsmetriken, die Erkennung von Problemen, die Anwendung globaler Optimierungen und die Messung von Verbesserungen.

Diese Techniken werden nicht nur in der lokalen Umgebung angewendet, sondern auch zur Verbesserung der CI/CD- und Testinfrastruktur. Sie ermöglichen Gewinne und Zeiteinsparungen über den gesamten Softwareentwicklungszyklus hinweg.

Ich denke, dass die Benennung dieser Disziplin der erste Schritt ist, um ihr Sichtbarkeit zu verleihen, darüber zu sprechen und sie zu demokratisieren. So wie DevOps zu einem Eckpfeiler jedes Softwareunternehmens geworden ist, kann DPE der nächste Schritt zu einer produktiveren Entwicklungsumgebung sein, die die Time-to-Market verkürzt, die Softwarequalität erhöht, die Zufriedenheit der Entwickler (und deren Bindung) steigert und letztlich zu zufriedeneren Kunden führt.

Wenden Sie es bereits in Ihrem Unternehmen an? Wenn Sie mehr erfahren und sehen möchten, wie Sie davon profitieren können, kann ich Ihnen helfen. Sie können mich hier kontaktieren.

cto devex dpe Produktivität Softwareentwicklung