Einer unserer wichtigsten Grundsätze bei Xpirit lautet"Menschen zuerst". Und das bedeutet wirklich, dass die Menschen bei allem, was wir tun, immer an erster Stelle stehen. Das bedeutet weder, dass Geld und Aktionäre gleich wichtig sind, noch dass wir eine Art Gleichgewicht finden müssen. Es bedeutet, dass die Menschen immer an erster Stelle stehen! Und das gilt nicht nur für unsere eigenen Mitarbeiter, sondern auch für die Menschen, die für unsere Kunden arbeiten.
Aus dieser menschenzentrierten Kultur hat sich entwickelt, dass uns die Produktivität der Entwickler sehr am Herzen liegt. In mehr als zwanzig Jahren Erfahrung in der Zusammenarbeit mit Entwicklern habe ich gesehen, was es mit ihnen macht, ob sie sich produktiv oder unproduktiv fühlen. Ich habe erlebt, wie Mitarbeiter Unternehmen verlassen haben, weil sie sich nicht produktiv fühlten, und ich habe gesehen, wie Teams nach der Einführung von DevOps-Tools und -Techniken aufblühten und wie sehr sich die Mitarbeiter freuten, wenn sie sich nach einer langen Zeit der Unproduktivität produktiv fühlten. Satya Nadella, der CEO von Microsoft, sagte einmal auf einer Konferenz, dass er die Produktivität der Entwickler immer den Funktionen für die Endbenutzer vorziehen würde, da die Produktivität der Entwickler allen zugute kommt und langfristig die Bereitstellung von Funktionen erhöht. Dies zeigt, wie wichtig die Entwicklerproduktivität für Unternehmen wie Microsoft ist.
"Wenn ein Ingenieur zwischen der Arbeit an einer Funktion und der Arbeit an der Entwicklerproduktivität wählen muss, dann wählen Sie immer die Entwicklerproduktivität" - Satya Nadella
Die Vorteile einer verbesserten Entwicklerproduktivität
Die Frage ist: Was wird passieren, wenn Ihre Entwickler nicht produktiv sind und mit alten Technologien und Prozessen arbeiten müssen? Die guten Entwickler werden höchstwahrscheinlich früher oder später gehen. Dann bleiben diejenigen übrig, die sich nicht darum kümmern oder nicht so leicht einen anderen Job finden. Dies wird Ihre gesamte Produktivität weiter verringern.
Im Krieg der Talente, in dem jeder Ingenieur jederzeit einen neuen Job bekommen kann, ist ein produktives Umfeld entscheidend und ein sehr wichtiger Faktor für Menschen, die von intrinsischer Motivation angetrieben werden - die Talente, die Sie suchen.
Dieses Rad kann sich in zwei Richtungen drehen: Ein produktives Umfeld mit einer hohen Entwicklungsgeschwindigkeit und -zufriedenheit wird Ihnen helfen, Talente anzuziehen und zu halten. Dies wird die Geschwindigkeit und Produktivität Ihrer Entwickler erhöhen und weitere gute Ingenieure anziehen. Wenn Ihr Umfeld nicht produktiv ist, werden gute Mitarbeiter das Unternehmen verlassen und die Entwicklungsgeschwindigkeit wird weiter sinken, was andere gute Ingenieure davon abhält, bei Ihnen einzusteigen.
Abbildung 1 - Geschwindigkeit der Entwickler und der Kampf um Talente
Und die höhere Produktivität und Qualität der Mitarbeiter führt zu besserer und zuverlässigerer Software, die schneller ausgeliefert wird. Dies führt zu schnelleren Feedbackschleifen und lässt Sie die richtigen Dinge bauen. Am Ende erreichen Sie eine höhere Kundenzufriedenheit, was Ihnen wiederum hilft, neue Talente zu gewinnen.
Abbildung 2 - Beschleunigung und Kundenzufriedenheit
Im April 2020 veröffentlichte McKinsey seine Forschungsstudie über den Developer Velocity Index (DVI) (Srivastava S. & Trehan K. & Wagle D. & Wang J., 2020). Es handelt sich um eine Studie, die unter 440 großen Unternehmen aus 12 Branchen durchgeführt wurde und 46 Faktoren in 13 Bereichen berücksichtigt. Die Studie zeigt, dass die Unternehmen im obersten Quartil des DVI die anderen Unternehmen in ihrem Markt um das Vier- bis Fünffache übertreffen. Nicht nur bei der allgemeinen Unternehmensleistung - Unternehmen im obersten Quartil erzielen zwischen 40 und 60 % höhere Werte in
- Innovation,
- Kundenzufriedenheit,
- Markenwahrnehmung und
- Talentmanagement.
Die Erkenntnisse stimmen mit den Ergebnissen des DORA State of DevOps Report überein - gehen aber noch einen Schritt weiter, indem sie die Geschäftsergebnisse hinzufügen. Der DevOps Report 2019 stellt fest, dass die Elite-Performer mit den Low-Performern verglichen wurden:
- Schnellere Wertschöpfung: Sie haben eine 106-mal kürzere Vorlaufzeit von der Zusage bis zur Bereitstellung.
- Höhere Stabilität und Qualität: Sie erholen sich 2.604 Mal schneller von Zwischenfällen und haben eine 7 Mal niedrigere Ausfallrate bei Änderungen.
- Höherer Durchsatz: Sie führen 208 Mal häufiger Codebereitstellungen durch.
Leistungsstarke Unternehmen zeichnen sich nicht nur durch einen hohen Durchsatz und Stabilität aus, sondern sind auch innovativer, haben eine höhere Kundenzufriedenheit und eine bessere Unternehmensleistung.
Abbildung 3 - Vorteile einer verbesserten Entwicklerproduktivität
Angesichts dieser Untersuchungen und der Priorität, die Unternehmen wie Microsoft und Google der Produktivität von Entwicklern einräumen, liegt es auf der Hand, dass die Produktivität von Entwicklern für alle Unternehmen, die auf Softwareentwicklung angewiesen sind, oberste Priorität haben sollte.
Der Einfluss der Entwicklungs-Toolchain auf die Produktivität
Es gibt zahlreiche Faktoren, die die Produktivität von Entwicklern beeinflussen. Die wichtigsten neben den Menschen sind:
- Kultur
- Prozesse
- Toolchain
Eine vertrauensvolle und experimentierfreudige Entwicklungskultur, in der die Mitarbeiter experimentieren und Fehler machen dürfen, hat einen starken Einfluss auf die Produktivität der Entwickler. Aber es ist schwierig, diese Kultur zu beeinflussen oder zu ändern. Sie können nicht einfach ein paar Werte auf eine PowerPoint-Folie schreiben. Die Unternehmenskultur ist das Ergebnis des Systems, und Sie müssen das gesamte System ändern, um die Kultur zu ändern. Die Pflege einer guten Kultur sollte eine kontinuierliche Aufgabe sein, aber sie ist nicht geeignet, um kurz- oder mittelfristig Ergebnisse zu erzielen.
Bleiben noch Prozesse und die Toolchain. Sie gehen Hand in Hand. Sie können die besten Tools haben - wenn Ihre Prozesse langsam und schwerfällig sind, wird die Produktivität Ihrer Entwickler gering sein. Aber Sie können noch so gute Prozesse haben und DevOps auf ganzer Linie betreiben - wenn Sie keine Toolchain haben, die das unterstützt, wird die Produktivität trotzdem niedrig sein. Prozesse und die Toolchain sind also die entscheidenden Faktoren, um die Produktivität der Entwickler kurz- und mittelfristig zu steigern.
Governance und Prozesse
Das Problem mit der Entwicklungstoolchain ist, dass sie sehr unbeständig ist. Ich habe schon erlebt, dass IT-Abteilungen DevOps-Tools (einschließlich Build-Umgebungen) installieren und erwarten, dass sie wie ein Mailsystem funktionieren: Einmal installieren und jahrelang fast ohne Änderungen außer Patches betreiben. Aber die vielen Anfragen der Entwicklung, neue Tools und Add-Ins zu installieren und verschiedene Versionen zu verwalten, haben das Team in die Knie gezwungen. Dies führt normalerweise zu einem von zwei Szenarien:
- Der wilde Westen der Entwickler: Die Entwickler dürfen alles machen. Sie erhalten bei Bedarf Administratorrechte und sind mehr oder weniger selbst für die Tools verantwortlich. Das Problem bei diesem Ansatz ist, dass es oft auch keine Abstimmung zwischen den Entwicklungsteams gibt. Jedes Team verwendet die Tools, die es möchte, und es gibt keinen gepflegten Standard. Das macht das Onboarding schwierig und die Zuordnung von Teams zu Produkten nicht flexibel.
- Die IT-Burg: Die IT-Abteilung stellt ein Minimum an Werkzeugen zur Verfügung und ist der Torwächter zur Produktion. Anfragen von Entwicklern werden meist ignoriert oder abgelehnt. Dieser Ansatz führt normalerweise zu Schatten-IT und Build-Servern unter den Schreibtischen der Entwickler.
Das ist natürlich eine Übertreibung und eine grobe Vereinfachung. Aber ich bin sicher, dass einige Leser ihr Unternehmen in einem der beiden Extreme wiedererkennen werden.
Eine gute Entwicklungs-Toolchain muss in das richtige Maß an Governance eingebettet sein. Geben Sie den Teams die Freiheit zu experimentieren - aber sorgen Sie für einen gemeinsamen Standard, der dokumentiert ist, und bieten Sie Schulungen und Anleitungen an.
Es ist in Ordnung, wenn ein Team Angular verwenden möchte, auch wenn der aktuelle Standard React ist. Dafür mag es gute Gründe geben. Aber die Entscheidung sollte eindeutig sein. Die Pflege von zwei UI-Frameworks und die Bereitstellung von Anleitungen, wann welches zu verwenden ist, erhöht die Komplexität und ist daher teuer.
Ein guter Governance-Prozess sollte folgendermaßen aussehen:
- Entwickler können jederzeit Ressourcen anfordern, um mit neuen Werkzeugen zu experimentieren. In der Cloud-Ära sollte dies größtenteils ein Self-Service und auf Abruf sein.
- Wenn das neue Tool vielversprechend ist, muss es mit den anderen Entwicklungsteams und dem Team, das die gemeinsamen Ressourcen bereitstellt, abgestimmt werden. Soll das Tool in die Standard-Toolchain aufgenommen werden? Sollte es unterstützt werden? Sollte die Verwendung abgelehnt oder als Ausnahme behandelt werden? Am Ende wird es eine Entscheidung sein, die alle Teams betrifft!
- Wenn das Tool zur Standard-Toolchain hinzugefügt wird, muss die Dokumentation aktualisiert werden. Es sollte auch eine Schulung für die anderen Teams und eine aktualisierte Onboarding-Schulung und/oder Dokumentation geben.
Abbildung 4 - Beispiel für einen Governance-Prozess für die Toolchain
In-Sourcing oder Outsourcing
Aufgrund der großen Auswirkungen auf die Geschwindigkeit der Entwicklung und damit auf das Geschäftsergebnis ist die erste Reaktion normalerweise der Versuch, die Toolchain auszulagern und den gesamten Prozess selbst zu verwalten. Und ich denke, das ist absolut berechtigt, wenn Sie die Ressourcen und das Wissen dazu haben.
Aber - wie ich bereits erwähnt habe - eine Entwicklungs-Toolchain ist kein weiteres Mailsystem, das Sie installieren und ausführen. Wenn Sie nicht über die nötigen Ressourcen verfügen, um sie gut zu verwalten, ist es besser, wenn Sie jemanden damit beauftragen, der sich auf dieses Thema spezialisiert hat.
Am Ende wird sich eine gute Entwicklungstoolchain auf die Leistung Ihres Unternehmens auswirken - aber sie wird keine direkten Auswirkungen auf Ihre Kunden haben. Wenn Sie das Unternehmen wechseln würden, das den Service anbietet, würden Ihre Kunden dies wahrscheinlich nicht bemerken.
Deshalb bieten wir die komplette Entwicklungs-Toolchain als Managed Service an. Wir nennen es den Managed DevStack. Wir können ihn in einem regionalen Rechenzentrum hosten, um eine vollständige Datenresidenz zu ermöglichen. Das Angebot umfasst den kompletten DevStack - einschließlich Build-Umgebungen - und den Governance-Prozess zur Verwaltung von Änderungen. Ich denke, dies ist eine gute Option, wenn Sie nicht über die Ressourcen oder die Erfahrung verfügen, um es selbst zu hosten.
Wenn Sie es selbst veranstalten möchten, können wir Ihnen auch bei der Einrichtung des Prozesses, der Dokumentation und den Schulungen helfen.
Fazit
Die Auswirkungen einer guten Entwickler-Toolchain sind enorm. Sie hat einen direkten Einfluss auf die Produktivität der Entwickler und ist dafür verantwortlich, ob Ihre Entwicklung beschleunigt oder verlangsamt wird. Sie hat einen massiven Einfluss auf Innovation, Kundenzufriedenheit, Markenwahrnehmung und Talentgewinnung.
Aber der Aufbau und die Pflege einer gesunden Toolchain ist nicht einfach. Es erfordert eine Menge Aufwand, Erfahrung und einen fein abgestimmten Governance-Prozess. Es ist besser, sich Hilfe zu holen - oder sie als guten Managed Service in Anspruch zu nehmen - als selbst eine schlechte Toolchain zu erstellen.
Weitere Lesungen:
- Srivastava S., Trehan K., Wagle D. & Wang J. (April 2020). Entwickler-Geschwindigkeit: Wie Software-Exzellenz die Unternehmensleistung steigert.
- Forsgren N., Smith D., Humble J., Frazelle J. (2019). DORA State of DevOps Bericht
- Brown A., Stahnke M. & Kersten N. (2020). 2020 State of DevOps Bericht
- Forsgren N., Humble, J., & Kim, G. (2018). Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations (1st ed.) [E-Book]. IT Revolution Press.
Verfasst von

Michael Kaufmann
Contact
