Dominic Rösti 18.11.2020 20 min read

Ride the change – Erfolgsfaktoren für nachhaltiges DevOps

Ist DevOps bereits im Alltag angekommen? Haben wir mit DevOps etwas gewonnen oder erleben wir nur einen Hype? Was braucht es damit DevOps tatsächlich erfolgreich und nachhaltig grossartige Erlebnisse schafft und so Mehrwert für Mitarbeitende und Kunden generiert? Ein Blick durch die Lupe …

Warum DevOps?

 

In traditionellen IT-Strukturen treffen wir sehr oft auf siloartige Aufbauorganisationen. Personen und Rollen sind klar nach Aufgabengebiet getrennt organisiert und werden entsprechend eingesetzt. Produktionsabläufe und -Prozesse verlaufen hingegen nicht selten quer dazu. Dies hat zwar den Vorteil, dass für jeden Teil der Produktion ein ganz spezifischer Bereich verantwortlich ist, welcher sich stark fokussieren und spezialisieren kann, anderseits führt das Management der vielen Schnittstellen zu hohen zusätzlichen Aufwänden.  

Besonders anfällig ist der Übergang von der Entwicklung (DEVelopment) zum Betrieb (OPerationS). Dieser ist umso kritischer, da die Anforderungen von Mitarbeitenden, Kunden und Endbenutzern an die jeweiligen Bereiche häufig diametral auseinanderliegen. Die Entwicklung soll in möglichst kurzer Zeit, topaktuelle und benutzerfreundliche Services und Produkte realisieren und auf den Markt bringen. Dazu braucht es ein Höchstmass an Dynamik, neuste Technologie und Arbeitsweisen, welche rasch Ergebnisse liefern. Klassische Teile der Entwicklung, wie etwa das Dokumentieren kommen dabei häufig zu kurz. Der Betrieb hingegen hat die Aufgabe dem Anwender jederzeit ein störungsfreies Erlebnis zu garantieren und sucht deshalb Stabilität, Verlässlichkeit und Vorhersehbarkeit. Er arbeitet deshalb gerne mit bekannten, robusten und etablierten Technologien und erwartet gut dokumentierte Lösungen.

 

Diese Gegensätze führen oft dazu, dass DEV und OPS sich möglichst wenig miteinander auseinandersetzen wollen. Ergebnisse werden von der Entwicklung ohne entsprechende Erklärungen oder Instruktionen «über den Zaun» an den Betrieb geworfen. Dieser soll anschliessend selbständig einen sicheren und stabilen Betrieb garantieren. Wie? Nicht mein Problem! DevOps hat deshalb klar den Anspruch, traditionelle Handlungsformen, Strukturen und Herangehensweisen aufzubrechen und zu modernisieren und somit den Graben zwischen DEV und OPS zu schliessen.

 

Die Schlüssel-Erfolgsfaktoren für DevOps

 

Viele IT-Organisationen haben sich in den letzten Jahren mit dem DevOps-Ansatz auseinandergesetzt und versucht sich in diese Richtung zu entwickeln – Einige mit Erfolg. Viele haben aber die gesetzten Ziele bei DevOps heute (noch) nicht erreicht, wie die Resultate von repräsentativen Umfragen zeigen. Was braucht es denn wirklich für den erfolgreichen Einsatz von DevOps damit es nicht nur beim Buzz-Word bleibt?

 

Der Komplexität von traditionellen Organisationen sind wir in der Vergangenheit mit nicht weniger komplexen Strategien und Prozessen begegnet. Diese hatten aber eher das Ziel die Symptome in den Griff zu bekommen anstelle der Umsetzung von grundlegenden Veränderungen, die dringend notwendig gewesen wären. Welche Veränderungen sind also zielführend, um eine Organisation in unserem immer schnell lebigeren Ökosystem effizient und erfolgreich zu machen? Folgende Grundelemente einer Organisation gilt es im Zusammenhang mit DevOps zu berücksichtigen: den Menschen, die Kultur und die Technologie.

                                                                                                                                                                                                                             

Agilität

Der wichtigste Faktor dabei überhaupt ist der Mensch (nicht zu verwechseln mit der «menschlichen Ressource»). Wie bereits Peter Drucker treffend festgehalten hat: Zitat «culture eats strategy for breakfast». Das Konsumverhalten hat sich nachhaltig verändert, wir möchten Dienstleistungen jederzeit, an dem Ort an dem wir uns gerade befinden und ohne Einschränkungen nutzen können und dabei nur bezahlen, was wir tatsächlich verbrauchen. Dieses Verhalten führt dazu, dass auch die Anforderungen an unsere Zusammenarbeit nicht mehr statisch sind. Sie ändern sich sehr schnell und erfordern eine Kultur die darauf reagieren und damit umgehen kann. Grundlage einer jeden Kultur ist ihr gemeinsames Wertesystem. Die Agilität liefert dabei einige gute Prinzipien und zeigt auf, wo wir Werte anders gewichten können. Starre Prozesse, Pläne und Dokumentationen werden immer weniger relevant. Viel essenzieller ist es darum sehr eng zusammenzuarbeiten, sich regelmässig und in kurzen Intervallen auszutauschen und sich gemeinsam neu auszurichten. Dies sowohl innerhalb der eigenen Organisation wie auch in der Interaktion mit allen anderen Anspruchsgruppen. Dies schafft einerseits Transparenz und verhilft andererseits zu Einsichten, die die Grundlage bilden, um Fehler, Konsequenzen und Hindernisse früh zu erkennen und darauf reagieren zu können. Letztlich ermöglicht uns diese Handlungsweise die stetige Veränderung zu unserem Vorteil zu nutzen.

Die Wandlung des Wertesystems betrifft ebenfalls die Leadership. Traditionelle Führungsstile beinhalten meist, dass wichtige Entscheidungen nur sehr weit oben in einer Hierarchie, anhand einer oft ungenügenden Informationslage getroffen werden. Die aus einem Entscheid abgeleiteten Aufgaben werden anschliessend delegiert. Das Potential der einzelnen Mitarbeitenden für die Herbeiführung einer optimalen Entscheidung bleibt so ungenutzt. Wenn Entscheidungen dort getroffen werden, wo sich die Informationen wirklich befinden, nämlich bei den einzelnen Mitarbeitenden oder in den Teams, schlagen wir zwei Fliegen auf einen Schlag. Wir stellen sicher,  dass Entscheidungen durch das Nutzen des vollen Potentials (Schwarmintelligenz) effektiv sind und fördern gleichzeitig die Erfahrung und Entwicklung der Mitarbeitenden. Ein Mensch der Verantwortung erhält und diese auch nutzen kann und will, bewegt sich weiter oben in der Maslow'schen Bedürfnis Pyramide.  Er wird durch den stärkeren intrinsischen Antrieb effizienter und gleichzeitig daran wachsen. Eine starke Servant-Leadership (Führung als Dienstleistung) trägt somit erheblich zur Förderung und Entwicklung eines Teams oder der ganzen Organisation bei.

Ein ähnlicher Trend lässt sich übrigens auch in der Technologie beobachten: Mit Edge-Computing werden Informationen an dem Ort verarbeitet, an dem sie entstehen. 

 

Engineering

Das angesprochenen Silodenken und komplexe Schnittstellen existieren meist nicht nur zwischen DEV und OPS sondern sind in der gesamten Organisation anzutreffen. Umso wichtiger ist es, dass bei Veränderungen die gesamten Abläufe und Lebenszyklen mit einbezogen werden. Agile Frameworks fokussieren oft nur auf die iterative Entwicklung einer Lösung. Daraus resultiert regelmässig ein potenziell lieferbares Produkt-Inkrement, welches durch ein End-zu-End verantwortliches Team hergestellt wird.  Die Weiterentwicklung dieses Gedankens führt dazu, dass weitere Schritte des Produktionsablaufes integriert werden, wie zum Beispiel die kontinuierliche Integration (Continuous Integration), Veröffentlichung (Continuous Delivery) und Bereitstellung (Continuous Deployment). Konsequent umgesetzt hat DevOps den Anspruch, die End-zu-End-Verantwortlichkeit über die gesamte Breite bis hin zum nachgelagerten Betrieb und der Überwachung zu spannen. Ganz nach dem Motto: «you build it, you run it».

Diese Gesamtverantwortlichkeit (Ownership) bei DevOps führt dazu, dass kaum mehr schwierige Übergaben an den Schnittstellen organisiert werden müssen. Und noch fast wichtiger, sie führt zu einem kontinuierlichen und so nachhaltigen Feedback-Loop. Die Erkenntnisse aus dem Betrieb und Monitoring laufen direkt und unmittelbar dort zusammen, wo die Lösung entwickelt wurde und tragen so zur kontinuierlichen Verbesserung bei. Wichtig dabei ist, dass sich neben der Zusammenarbeit auch die Mitarbeitenden weg von einer einzelnen Spezialisierung hin zu einem Profil mit einem breiteren Spektrum an Fähigkeiten entwickeln. Optimalerweise erarbeiten sich Mitarbeitende eine Tiefe in mehreren Themengebieten (Comb-Shaped). So kann das gleiche Team flexibel die verschiedensten strukturierten Vorhaben umsetzen, ohne seine Zusammensetzung jeweils anpassen zu müssen. 

 

Automation

Die Digitalisierung erzielt nach wie vor auch in der bereits digitalisierten Branche Effekte. Durch Standardisierung und Modularisierung von Lösungen lassen sich Produktionsabläufe wie auch die daraus resultierenden Produkte und Services automatisieren. Die gezielte Parametrierbarkeit ermöglicht es anhand dieser Standards individuell zugeschnittene, qualitativ hochstehende Lösungen zu produzieren. Diese sind optimal auf die Bedürfnisse der Kunden und Endbenutzer zugeschnitten (Individualisierung durch Standardisierung). Durch konsequentes Identifizieren und Automatisieren von Standards werden einerseits kürzere Durchlaufzeiten erreicht, andererseits kann das Potential von hochqualifizierten Teams für höherwertige Aufgaben genutzt werden. Teams müssen sich also weniger mit repetitiven Aufgaben auseinandersetzen, sondern können sich darauf fokussieren spannende neue Lösungen zu erarbeiten.

Gleich wie sich die Anforderungen an uns selbst stets verändern, verändern sich auch die Anforderungen an die Verfügbarkeit, Skalierbarkeit, Elastizität und Resilienz einer Lösung. Diese Anpassungen können nicht mehr manuell durchgeführt werden. Nur eine konsequente Automation erlaubt es hier schnell genug und proaktiv agieren zu können und somit ein maximales Benutzererlebnis zu erzeugen.

Die Grundlage hierzu ist die konsequente Umsetzung von Lösungen als Code (Infrastructure as Code, Configuration as Code). Einmal als Code-Fragment in der Quellcode-Bibliothek (Repository) abgelegt, lassen sich die Lösungsbausteine per Pipeline (Job Automation) jederzeit in gleicher Qualität generieren, verifizieren, veröffentlichen, auf der Zielumgebung bereitstellen oder in Überwachungs-Prozesse integrieren. 

Das Quellcode Repository wird somit zu einer der wichtigsten und zentralsten Komponenten. Die Pipeline Automation ermöglicht es die Hauptaspekte von Sicherheit, Compliance und Qualität automatisch zu prüfen. Dies erfolgt durch Vorgaben, die bereits in der Pipeline hinterlegt sind und automatisch geprüft werden. Konsequentes Staging stellt sicher, dass alle Aspekte in einer entsprechenden Test-Umgebung End-zu-End geprüft und verifiziert werden. Erst danach wird eine Änderung auf die produktive Umgebung ausgerollt. Dieser Ansatz ermöglicht es auch unseren Partnern, Kunden und Endbenutzern automatisierte Services direkt zur Verfügung zu stellen. Ein Beispiel dazu ist das automatische Erzeugen eines neuen Benutzers über ein Service Portal oder das automatische Skalieren von Lösungen während der Laufzeit.

 

Ride the Change

 

Fazit: Worum geht es bei DevOps im Kern?  Bei DevOps geht es um Produktivität wie flexibel und schnell können wir dem Mitarbeitenden, dem Partner, dem Kunden oder dem Endbenutzer einen Mehrwert bereitstellen. Produktivität ist die Schnittmenge von Effektivität und Effizienz, sprich «das Richtige richtig tun». Das heisst mit DevOps müssen wir die gesamte Organisation und alle Aspekte der Arbeitsabläufe berücksichtigen. Diese umfassen sowohl den Menschen, die Kultur wie auch die Technologie. Produktionsabläufe werden produktiver, wenn Sie gradlinig, End-zu-End und frei von Engpässen und Schnittstellen sind. Menschen werden produktiver, wenn Sie anhand gemeinsamer Werte zusammenarbeiten und sich dabei selbst verwirklichen können. Anforderungen ändern sich immer schneller. Was heute gilt ist bereits morgen anders. Das Wichtigste überhaupt bei DevOps ist daher das gemeinsame Anpassen gezielt und schnell. Jede Organisation ist individuell. Ein gemeinsam erarbeitetes Wertesystem und ein gemeinsam erarbeitetes und weiterentwickeltes Framework bilden die nötige Basis um diesen Veränderungen zu begegnen… «ride the change»!

 

wave-1246560_1920

 

«DevOps is the union of humans, culture and technology, that enables continuous delivery of value to the end users.»