Eine effiziente DevOps-Toolchain ist entscheidend für die Produktivität von Entwicklern, hat aber ihren Preis. Erfahrt, wie ihr mit eurem DevOps-Budget den besten ROI erzielt.
Johan Abildskov
Johan has been a Continuous Delivery Consultant with Eficode Praqma since 2015. After achieving his BSc in Computing Science he spent his time teaching, coding, hacking and studying. He is an avid gamer and participates in tournaments whenever he has the time. He also plays the bass.
Eine effektive und hochoptimierte Organisation für Softwareentwicklung und -bereitstellung zu betreiben, ist eine anspruchsvolle Aufgabe. Mit zunehmender Automatisierung wird die DevOps-Toolchain umfangreicher, während Wartung und Support immer komplexer werden. Wartungsarbeiten belasten Entwicklungsteams erheblich und verringern ihre Effizienz bei der Bereitstellung deutlich. Das wird als „DevOps-Steuer“ bezeichnet und macht schätzungsweise rund 10 % der gesamten Teamarbeit aus.
Viele Entwicklungsteams haben eine „DevOps-Steuer“ von etwa 10 %. Das bedeutet, dass 10 % des Entwicklungsteams mit der Wartung der DevOps-Toolchain beschäftigt sind.“ Forrester (2019)
Lean-Softwareentwicklung
Als Softwareentwickler lassen wir uns oft vom Lean-Konzept der Verschwendung inspirieren. Wir möchten möglichst viel Zeit für wertschöpfende Aktivitäten aufwenden. Das ist sinnvoll, denn wir wollen Endanwendern den größtmöglichen Mehrwert für ihr Geld bieten. Verschwendende Tätigkeiten wie Übergaben und Nacharbeit möchten wir unbedingt minimieren, da sie keinerlei Mehrwert schaffen. Es gibt jedoch auch unterstützende Tätigkeiten oder Overhead, den wir nicht unbedingt auf null reduzieren können.
Man kann sagen, dass es ein richtiges Maß an Overhead gibt. Obwohl die meisten Entwickler wahrscheinlich argumentieren würden, dass die richtige Anzahl an Meetings null ist, würde ich sagen: Es sollte zwar keinen großen Teil des Wochenplans ausmachen, aber definitiv mehr als null sein.
Die Wertstromanalyse hilft dabei, den Arbeitsfluss in einer Organisation zu visualisieren und herauszufinden, wo sich Engpässe und Probleme optimieren lassen. Eine robuste DevOps-Toolchain kann dabei helfen, Engpässe und Verschwendung im Wertstrom zu beseitigen.
Schnelle, automatisierte Test-Suites, die bei jedem Commit ausgeführt werden, verhindern die Weitergabe von Fehlern und verkürzen die Feedbackschleife für Entwickler. So ermöglichen sie einen kontinuierlichen Fluss.
Integrierte Toolchains können Informationen und Kennzahlen austauschen, Transparenz schaffen und den Overhead der gefürchteten Statusmeetings reduzieren. Das kann die Produktivität der Entwickler steigern, weil es weniger Unterbrechungen und Kontextwechsel gibt.
Wir können Sicherheit, QA und Compliance nach links verlagern und Prüfungen für Lizenzen, Codequalität und bekannte Schwachstellen mit Tools wie Sonatype und JFrog X-ray in unsere Pipelines integrieren. So können unsere Entwickler Verantwortung für ihre Produkte übernehmen und sicher in Produktionsumgebungen deployen.
Und wenn wir schon von Produktionsumgebungen sprechen: Mit Terraform und Public-Cloud-Anbietern/Kubernetes können wir unsere Infrastruktur als Code verwalten. Das gibt Entwicklungsteams endlich vollständige End-to-End-Kontrolle und ermöglicht ihnen, ihre Wirkung auf Endanwender und letztlich den Mehrwert für Stakeholder zu maximieren.
Investiert euer Budget in das, was Kunden dazu bewegt, sich für euch zu entscheiden
In der Softwarebranche herrscht Fachkräftemangel. Es gibt nie genug qualifizierte Ingenieure, und wir investieren viel Aufwand in den Aufbau, die Gewinnung und die Bindung von Talenten in unseren Technologieorganisationen.
Das bedeutet, dass die Unternehmensleistung durch unsere Fähigkeit begrenzt wird, Endanwendern Mehrwert zu bieten. Leider investieren wir unverhältnismäßig viel Energie in Arbeit, die uns nicht von unseren Wettbewerbern unterscheidet. Das wird üblicherweise als Fokus auf den Kontext statt auf das Kerngeschäft bezeichnet und ist einer der wichtigsten Treiber für die Migration zu Cloud Computing. Die Entwicklung und Modernisierung von Infrastruktur und Netzwerken gehört schlicht nicht zu den Alleinstellungsmerkmalen des Kerngeschäfts – auch wenn diese Bereiche in den letzten Jahren zu Standardleistungen geworden sind.
Dasselbe gilt für die Wartung unserer DevOps-Toolchains mit Jira-Instanzen, Jenkins-Mastern und Kubernetes-Clustern. Leider sehen wir viele „DevOps“- oder Tool-Teams, die über eine umfangreiche Tool-Landschaft zu dünn verteilt sind. Das führt zu Toolchains, die weder gewartet noch optimiert werden. Den meisten Unternehmen fehlen schlicht die Kapazitäten, um bei Release Notes, Sicherheitslücken und Best Practices auf dem neuesten Stand zu bleiben. Mit der Zeit häufen sich diese Probleme an und ihre Behebung wird riskanter und teurer.
Am ärgerlichsten ist, dass wir immer Zeit für etwas aufwenden werden, das unsere Endanwender nie sehen oder erleben. Die gute Nachricht: Wir können unsere Toolchain an Experten auslagern, die sich um DevOps-Tools kümmern – ähnlich wie wir Infrastruktur an Public-Cloud-Anbieter wie AWS, Azure oder Google Cloud auslagern.
Beispiele dafür sind cloudgehostetes Circle-CI oder GitHub. Unsere eigene Eficode ROOT DevOps-Plattform integriert alle eure DevOps-Tools in einem Managed Bundle, das entweder on-premises oder in der Cloud gehostet wird.
Fragt euch also: Seid ihr damit zufrieden, wofür eure DevOps-Steuer verwendet wird? Oder könntet ihr mehr für euer Geld bekommen, wenn ihr euren Kontext auslagert?
- DevOps
- Eficode ROOT
Subscribe to our newsletter
Related blogs