In über 50 Prozent der Unternehmen verbringen Softwareentwickler:innen gerade einmal 30 bis 40 Prozent ihrer Zeit mit der Entwicklung von Features (State of DevOps 2018; 2019). Konzepte wie DevOps und Continuous Delivery lösen zwar spezifische Probleme und tragen dazu bei die Zeit für wertschöpfende Aktivitäten zu erhöhen, sind aber nicht die einzig ausschlaggebenden Faktoren in der Softwareentwicklung, die einen positiven Einfluss auf Ihre Unternehmensleistung haben. Auch die Verbesserung der Nutzererfahrung (“User Experience”) von Entwickler:innen ist ein essentieller Baustein, um deren Effektivität zu verbessern. In diesem Artikel gehen wir auf die Gründe für eine gute “Developer Experience” ein und nennen Ansatzpunkte wie Sie Ihre Entwickler:innen - und damit auch Ihr Unternehmen - erfolgreicher machen können.
Developer Experience (DX) umfasst alle Aspekte der Interaktion von Entwickler:innen mit dem Unternehmen, dessen Tools und Systemen
Wie sieht eine schlechte Developer Experience aus?
Den Einfluss einer schlechten Developer Experience beobachten wir in verschiedenen Technologielandschaften und quer durch alle Branchen. Eine Hauptursache für eine schlechte Developer Experience: Entwickler:innen werden nicht als Kunden betrachtet. Ohne die Perspektive der Entwickler:innen einzunehmen und ohne “Customer Research” ist es unklar, ob ein Produkt oder Dienstleistung für seine Anwender:innen nützlich ist. Anstatt die realen Probleme von Entwickler:innen zu lösen, laufen die Produkte Gefahr, die Komplexität für die Entwicklungsteams unnötig zu erhöhen. Letztendlich erhöht sich die Time-to-Market für Software, wenn Entwickler:innen an schlechte Developer Experiences gebunden sind. Während einige dieser Experiences domänen- und kontextspezifisch sind, lassen sich doch wiederkehrende Muster in ihnen erkennen:
- Nicht-automatisierbare (GUI) Schnittstellen bereitgestellter Tools und Systeme binden Entwickler:innen an manuelle, nicht wertschöpfende Aktivitäten. Um eine effiziente, zuverlässige und kontinuierliche Softwarebereitstellung zu gewährleisten, sind Entwickler:innen darauf angewiesen, Aufgaben zu automatisieren und Tools zu integrieren.
- Hardware und Infrastruktur sind oft knapp und schwer zu bekommen, insbesondere in frühen Projektphasen oder Projekten mit neuen Technologien. Die mangelnde Verfügbarkeit solcher produktionsnahen Umgebungen führt zu langen Feedbackzyklen, hemmt das Experimentieren und wirkt sich negativ auf die Softwarequalität aus.
- Mühsame Einarbeitung und Einrichten kostet wertvolle Zeit, bis die erste Codezeile geschrieben und in die Produktion übernommen werden kann. Es ist nicht gerade förderlich für die Motivation, wenn sich Entwickler:innen durch einen Dschungel aus Tickets kämpfen müssen, um eine Lizenz oder Genehmigung zu erhalten. Kommen dann noch neue Teammitglieder hinzu, erhöht sich der Zeitaufwand für nicht wertschöpfende Aktivitäten weiter.
- Fragmentierte Teamstrukturen führen zu ineffizienten Übergabe-Abhängigkeiten zwischen Teams. Das bekannteste Beispiel sind die Silostrukturen von Entwicklung und Betrieb. Dies gilt allerdings auch für andere Lücken im Entwicklungs- und Bereitstellungsprozess.
- Fehlende Befähigung zur Nutzung von APIs, Bibliotheken oder Plattformen erhöhen die kognitive Belastung eines Teams. Ohne Anleitung, Beispiele und einen gemeinsamen Wissensaustausch verschwendet jedes Team unnötige Zeit damit, herauszufinden, wie diese erweitert oder integriert werden können. Die übermäßige kognitive Belastung eines Teams führt zu unwirtschaftlichen Kontextwechseln und damit zu Verzögerungen und Qualitätsproblemen.
1. Abbildung: Fallbeispiel: Problempunkte von Entwickler:innen. Gesammelt im Kontext einer Cloud-Plattform und einer Automotive-Plattform
Sie verlieren Geld
Eine schlechte Developer Experience führt zu einer geringen Effektivität in der Entwicklung und Leistung Ihres Unternehmens. Die folgenden Beispiele zeigen, warum Sie in eine gute Developer Experience investieren sollten:
Eine schnelle Softwarebereitstellung beschleunigt die Time-to-Market
Einschränkungen und Probleme in der “Developer Journey” bieten eine Chance, die Softwarebereitstellung zu beschleunigen. In einem unserer Automotive-Projekte haben wir Folgendes festgestellt: Nicht verfügbare Hardware und manuelle Schritte im Testprozess führten bei den Entwickler:innen zu einem zwei- bis dreiwöchigen Testzyklus. Dazu gehörte das Warten auf einen freies Zeitfenster an einem Hardware-Prüfstand sowie die Notwendigkeit sich hierfür extra in ein anderes Gebäude begeben zu müssen
Da diese Aufgabe mehrmals pro Woche durchgeführt wird und eine zentrale Bedeutung für die Softwarequalität hat, war das Verbesserungspotenzial dieses Problems entsprechend hoch. Durch die Möglichkeit von Remote Updates und automatisierten Tests auf den Prüfständen konnte der Testzyklus von Wochen auf Stunden verkürzt werden. Die Entwickler:innen profitieren von einem vereinfachten und fließenderen Ablauf, der zu häufigeren Tests anregte. Durch die beschleunigte Softwarebereitstellung kann das Unternehmen dem Kunden die Software früher – und erhöhter Qualität – übergeben.
Flexibilität ermöglicht Experimentieren und wiederum Innovation
Ein Grund, warum Unternehmen auf eine Cloud-Infrastruktur umsteigen, liegt in der Flexibilität und einfachen Skalierbarkeit der Rechenleistung. Aber warum ist das so wichtig? Ein Faktor ist sicherlich das Potenzial von Kosteneinsparungen. Warum neue Serverkapazitäten für einen ganzen Monat mieten, wenn man nur einen Lasttest durchführen möchte, der in weniger als einem Tag erledigt werden kann?
Es gibt jedoch noch einen anderen – wahrscheinlich noch wichtigeren – Faktor, den eine Cloud-Infrastruktur bietet, und das ist Flexibilität. Teams können nicht nur “auf Knopfdruck” autoskalieren, sondern haben zudem eine große Auswahl an Diensten zur Verfügung. Diese Flexibilität bei der Nutzung von Out-of-the-Box-Services und einfach zu konsumierende APIs sind ein großer Anreiz, zu experimentieren und potenziell innovativ zu sein, ohne große Risiken einzugehen oder große, eventuell unrentable Investitionen zu tätigen.
Tech-Talente gewinnen und binden
Sind Sie motiviert, wenn Sie die meiste Zeit des Tages das Gefühl haben, unproduktiv zu sein, blockiert zu werden und warten zu müssen? Wahrscheinlich nicht. Auch für Entwickler:innen gilt das, was die meisten Menschen motiviert. Motivation erzeugt einen Fluss, der die Kreativität zum Wohle Ihres Unternehmens fördert
Eine Vielzahl an innovativen Unternehmen konkurrieren um Top-Tech-Talente. Unternehmen können es sich nicht mehr leisten, nicht in ein Umfeld zu investieren, das es Entwickler:innen ermöglicht, das zu tun wofür sie angetreten sind: großartige Software zu liefern, die Ihre Kunden begeistert.
Wie erreichen Sie eine gute Developer Experience?
Eine gute Developer Experience erfordert mehr als nur die Kluft zwischen Dev (Entwicklung) und Ops (Betrieb) zu überwinden und Tools für Continuous Delivery bereitzustellen. Wenn Sie die Effektivität Ihrer Entwickler:innen wirklich steigern und damit Ihre geschäftlichen Ziele schneller erreichen wollen, empfehlen wir die folgenden Ansätze:
- Übernehmen Sie eine Produktdenkweise für technische Produkte und Plattformen, die die Arbeit der Entwickler:innen erleichtern, anstatt sie zu behindern.
- Betrachten Sie die Developer Journeys ganzheitlich. So verstehen Sie deren Arbeitsabläufe, Kontaktpunkte als auch Einflüsse und identifizieren grundlegende Einschränkungen.
- Identifizieren und verkürzen Sie Feedback-Schleifen, um häufige Arbeitsabläufe zu verbessern und den Fortschritt kontinuierlich zu messen.
- Ermöglichen und ermutigen Sie zur Zusammenarbeit, um ineffiziente Silos zu beseitigen und gegenseitiges Verständnis zu fördern.
- Schaffen Sie eine Kultur, in der sich Teammitglieder sicher fühlen zu experimentieren und innovativ zu sein
Investieren Sie in die User Experience Ihrer Entwickler:innen
Eine schlechte Developer Experience verringert die Effektivität Ihrer Entwickler:innen. Eine gute Developer Experience hingegen sorgt dafür, dass Ihre Software schnell, zuverlässig und sicher in Produktion geht. Daher sollten Sie in Letzteres investieren. Wenn Sie die Perspektive der Entwickler:innen einnehmen, wird Ihr Unternehmen davon profitieren.
Sind Sie auf der Suche nach konkreten Maßnahmen, um die Developer Experience in Ihrem Unternehmen zu verbessern? Mehr dazu in Teil 2.
Hinweis: Die in diesem Artikel geäußerten Aussagen und Meinungen sind die der Autor:innen und spiegeln nicht zwingend die Position von Thoughtworks wider.