DevOps eine Frage der Kultur?
DevOps ist das breit eingesetzte Schlagwort für eine weitreichende Transformation der IT-Organisation in Unternehmen. Allerdings wird DevOps, je nach Kontext, für diverse Teilaspekte dieser Transformation verwendet. Diese Teilaspekte können organisatorische Änderungen, Einführung neuer Prozesse oder sogar Einführungen einzelner Tools sein. Im Rahmen einer kurzen Artikel-Reihe zu DevOps werden wir die verschiedenen Aspekte beleuchten und Erfahrungen teilen. In diesem ersten Artikel widmen wir uns dem Kernaspekt von DevOps: Einer neuen Kultur in der IT.
Nicht erst durch die Corona-Pandemie hat sich gezeigt, dass die Fähigkeit innerhalb kürzester Zeit auf veränderte Rahmenbedingungen zu reagieren zunehmend ein kritischer Erfolgsfaktor für den unternehmerischen Erfolg ist. In einer immer weiter digitalisierten und datengetriebenen Wirtschaft und Verwaltung bedeutet dies nicht selten, Software-Lösungen innerhalb kürzester Zeit zu ändern oder neu einzuführen.
DevOps bringt viele Vorteile für die IT-Abteilung sowie ganze Organisation mit sich. Beispiele für den Bedarf an rascher und agiler Bereitstellung von neuen oder sich ändernden Funktionalitäten in Software-Lösungen sind insbesondere:
- Umsetzung neuer, digitaler Geschäftsmodelle, welche beispielsweise zusätzliche Individualisierungen von Produkten durch die Kunden über die digitalen Verkaufskanäle erlauben
- Weiterentwicklung und Skalierung von Online-Vertriebs-Plattformen (z.B. Webshops)
- Rasche Reaktion auf Kundenfeedback und Implementierung von geänderten Anforderungen
- Bereitstellung von kundenzentrierten und schlanken Anwendungen wie Mobile Apps für die Endkund*innen von Unternehmen oder für die Einwohner*innen von Gemeinden und Kantonen
- Integration und Adoption von Kollaborations-Lösungen in die bestehenden Geschäftsprozesse und Abläufe innerhalb einer Organisation
- Nutzung von neuen Fähigkeiten zur Auswertung und Aggregation von Daten durch Machine Learning (ML) bis hin zu Artificial Intelligence (AI) sowie die Implementierung von datengetriebenen Services
Die Umsetzung dieser unterschiedlichen Bedürfnisse stellen sowohl die Prozesse und Organisation der Softwareentwicklung wie auch die Rahmenbedingungen des IT-Betriebes in einer Organisation vor neue Herausforderungen.
Im Bereich der modernen Softwareentwicklung haben sich aus diesen Gründen in den letzten Jahren agile Methodiken zum de-facto Standard und sogar zunehmend zur modernen Unternehmensführung entwickelt. Einen Nährboden für diese Entwicklung boten in der IT das Aufkommen und die breite Adaption von Container-Technologien sowie das immer grössere werdende Angebot innovativer Technologien durch die Cloud-Anbieter und Open-Source Communities.
Durch die agilen Methodiken sind nicht nur die effektiven Entwicklungsprozesse der Software, sondern auch deren Betrieb tangiert. Durch die rasche und iterative Weiterentwicklung der Lösungen ist es zunehmend weniger möglich, eine klassische «Betriebsübergabe» an den IT-Betrieb durchzuführen und die produktiv-gesetzten Lösungen längere Zeit unverändert und statisch zu betreiben. Die agilen Methodiken beeinflussen dadurch nicht nur die effektiven Softwareentwicklungsprozesse, sondern durchdringen die gesamte IT-Organisation.
Das Fundament hierfür bietet eine grundlegend veränderte Kultur, die Komponente, welcher in Unternehmen letztlich am schwersten zu transformieren ist. Erst mit einer veränderten Kultur können die Umstellung der Methoden, vom Betriebsmodell bis hin zur Frequenz einzelner Software-Releases, sowie die Einführung neuer Tools und Technologien ihre volle Wirkung entfalten.
Nicht ohne Grund formulierte Peter Drucker die vielzitierte Aussage «culture eats strategy for breakfast». Das Verändern klassischer Firmenkulturen, insbesondere auch im Hinblick auf die Führungs- und Fehlerkulturen ist ein langwieriger Prozess und benötigt intensives Engagement insbesondere auch auf Leadership-Ebene.
Dennoch lohnen sich die Anstrengungen nicht nur wegen der Vorteile, die durch DevOps und Cloud-Native Applikationen erreicht werden können, sondern letztlich auch im Wettstreit um qualifizierte IT-Spezialisten. Die Unternehmenskultur spielt bei der Job-Wahl für junge Talente schliesslich eine wesentliche Rolle, oft sogar noch vor finanziellen Überlegungen.
Die zentralen Aspekte einer DevOps-Kultur sind aus unserer Sicht die IT-Organisation selbst, Leadership, die Befähigung der Mitarbeitenden sowie eine bewusste Fehlerkultur.
Die Organisation innerhalb der IT, gibt den Rahmen für die Entfaltung der Teams vor. Hier erfolgt bei der Orientierung nach DevOps Prinzipien eine, als «shift-left» bezeichnete Verschiebung der Verantwortung von Betriebsteams zu Entwicklungsteams. Diese namensgebende Verschmelzung von Entwicklung (Development) und Betrieb (Operations) von Applikationen zu ganzheitlich verantwortlichen DevOps Teams bedeutet jedoch nicht, dass keine Betriebsteams mehr benötigt werden! Ganz im Gegenteil treten an ihre Stelle zunehmend sogenannte Site-Reliability-Engineering (SRE) Teams mit einem breiten Aufgabenspektrum und hoher Spezialisierung. Der von Google geprägte Begriff Site-Reliability-Engineering, kurz SRE genannt beschreibt den Ansatz auch Kernaufgaben des IT-Infrastruktur-Ansatzes durch Methodiken aus der Softwareentwicklung zu automatisieren und effizienter zu gestalten. Infrastructure-as-Code (IaC) ist hierzu beispielsweise ein Kernelement. Gerade bei der Verwendung von Cloud-Services werden solche Herangehensweisen an den Betrieb, beziehungsweise an die Bereitstellung der IT-Infrastruktur optimal unterstützt.
Ein weiterer Kernaspekt einer auf DevOps ausgerichteten Kultur ist die Führung beziehungsweise der Leadership der Organisation. Die Organisationsform muss aktiv vorgelebt werden und die Verantwortung für die Entwicklung und den Betrieb der Software aktiv in die Hände der DevOps Teams gelegt werden. Klassische Ansätze der Linienführung, etwa in der Priorisierung von Features zeigen bei der Verwendung von Scrum, SAFe oder anderen agilen Vorgehensweisen, theoretisch keine Wirkung mehr. Die Betriebsverantwortung verschiebt sich somit von den klassischen IT-Betriebsteams, die einen reinen Fokus auf den produktiven Betrieb von fertig entwickelten Software-Lösungen haben zu den DevOps Teams, welche neben dem produktiven Betrieb auch die ständige Weiterentwicklung von Lösungen verantworten. Diese Verschiebung von Verantwortung muss dabei über alle Verantwortungs-Stufen einer IT-Organisation hinweg nicht nur akzeptiert, sondern aktiv gefördert und vorgelebt werden. Dieser «Lean Agile Leadership» benötigt ein fundamentales Umdenken auf allen Ebenen einer Organisation, damit der entsprechende Kulturwandel erst möglich wird.
Eng verwandt mit dem Aspekt der Leadership ist auch die organisatorische und fachliche Befähigung der Mitarbeitenden. Organisatorisch bedeutet dies, dass die DevOps Teams tatsächlich die Möglichkeit haben Entscheidungen selbstständig beziehungsweise in direkter Absprache mit ihren jeweiligen Business-Vertretern zu treffen. Hier ergibt sich auch eine direkte Veränderung der Mitwirkung der Business-Vertreter bzw. Fachvertreter, welche wesentlich kontinuierlicher in den Prozess der Softwareentwicklung eingebunden werden als bei der klassischen Softwareentwicklung.
Mit dem breiteren Aufgabenspektrum der DevOps und SRE Teams rückt jedoch auch die inhaltliche Befähigung im Sinne der Ausbildung der Mitarbeitenden in den Fokus. Hier stellt die Geschwindigkeit der Innovation in der Softwareentwicklung eine grosse Herausforderung dar. Nur mit kontinuierlicher Ausbildung der Mitarbeitenden kann sichergestellt werden, dass die technologischen Innovationen auch adaptiert werden können.
Es wird also klar, dass dem kulturellen Aspekt von DevOps in einer Organisation, welche nachhaltig und erfolgreich die DevOps Arbeitsweise nutzen möchte, einen hohen Stellenwert eingeräumt werden sollte.
Da erfahrungsgemäss DevOps in vielen Organisationen als bottom-up Initiativen innerhalb von einzelnen Teams oder Bereichen startet, können sich Situationen ergeben, in denen die DevOps-Kultur nur lokal innerhalb dieser Bereiche oder Teams etabliert ist. Dieser Umstand sollte genutzt werden, in dem die positiven Erfahrungen und auch Lessons-Learned dieser Teams oder Bereiche strukturiert gesammelt und im Idealfall bereits als Vorlage für weitere Bereiche der Organisation genutzt werden.
Dabei ist ein kritischer Erfolgsfaktor, dass die Akzeptanz sowie die Förderung der kulturellen Aspekte von DevOps auch top-down vorgelebt und glaubwürdig kommuniziert werden anstelle einer Bekämpfung leicht veränderter Vorgehensweisen. Oft entwickeln die eigenverantwortlichen Teams eine jeweils leicht unterschiedliche Herangehensweise an die neu an sie herangetragenen Herausforderungen. Hier hilft es sehr einige Zeit nach der Etablierung von DevOps Prinzipien ein Review ihrer Effektivität vorzunehmen und nach der zurückliegenden grossen Umstellung zu beginnen Details zu adjustieren.
Es ist schliesslich klar zu bedenken, dass DevOps nicht mit Chaos in der Softwareentwicklung gleichgesetzt werden sollte. Ganz im Gegenteil benötigt die erfolgreiche agile Zusammenarbeit oft wesentlich mehr Prozesse und methodischen Unterbau als eine klassisch hierarchische Struktur. Schlussendlich müssen alle Betriebsprozesse, bis hin zu klassischen ITSM Prozessen wie Incident- und Problem-Management neu gedacht und gelebt werden – einschliesslich allfälliger Revisionssicherheit. Zudem wirkt sich die Transformation der Kultur hinsichtlich DevOps auch stark auf die Methodiken aus, wie Software entwickelt und betrieben wird. Auf diese methodischen Aspekte von DevOps wollen wir in unserem nächsten Artikel eingehen.
Wenn Ihnen der Artikel gefallen hat, würden uns als Eraneos Group sehr freuen Ihre Initiativen, Erfolgserlebnisse aber auch Herausforderungen im Zusammenhang mit der Etablierung und Nutzung von DevOps in Ihrer Organisation tiefergehend zu diskutieren. Dabei unterstützen wir Sie gerne mit unserer Erfahrung und Expertise im Themenfeld von DevOps und der agilen Transformation.