01 — Warum DevOps

Teil A — Warum überhaupt. Zurück zur Übersicht.

Lernziel

Nach diesem Kapitel kannst du erklären, welches konkrete organisatorische Problem DevOps löst, was ein Wertstrom ist und warum Übergaben zwischen Abteilungen teuer sind. Du kannst außerdem drei verbreitete Missverständnisse über DevOps benennen.

1.1 Zwei Abteilungen, zwei Zielvorgaben

Stell dir zwei Teams vor, die beide hervorragende Arbeit leisten und sich trotzdem gegenseitig blockieren.

Die Entwicklung wird daran gemessen, wie viele Funktionen sie liefert. Ihr Erfolg ist Veränderung. Je mehr sie ausliefert, desto besser ihre Bilanz.

Der Betrieb wird daran gemessen, wie stabil die Systeme laufen. Sein Erfolg ist Beständigkeit. Und die größte Einzelursache für Störungen ist — statistisch belegbar — die Veränderung.

Beide Teams verhalten sich also völlig rational, wenn sie das jeweils andere ausbremsen. Die Entwicklung wirft Änderungen über den Zaun, der Betrieb baut immer höhere Zäune. Man hat dafür einen Namen gefunden: die Mauer der Verwirrung.

   ENTWICKLUNG                    │                    BETRIEB
                                  │
   "Bei mir lief es."             │   "Dann lass es doch
                                  │    bei dir laufen."
   Ziel: Veränderung              │   Ziel: Stabilität
   Erfolg: neue Funktionen        │   Erfolg: keine Störung
   Zeithorizont: bis zum Release  │   Zeithorizont: die nächsten Jahre
                                  │
              ──── Änderungen ───►│
              ◄─── Beschwerden ───│
                                  │
                            die Mauer

Das Bemerkenswerte daran: Es gibt keinen Schuldigen. Niemand ist faul, niemand ist böswillig. Das Problem steckt in der Zielvorgabe, nicht in den Menschen. Wer das verstanden hat, hat die halbe Miete — denn jeder Lösungsversuch, der auf „die Kollegen müssen sich mal zusammenreißen„ hinausläuft, ist damit schon widerlegt.

1.2 Der Wertstrom

Der Wertstrom ist der gesamte Weg einer Idee bis zu dem Moment, in dem ein Kunde etwas davon hat. Bei Software heißt das: von „jemand hat einen Wunsch“ bis „die Änderung läuft in Produktion„.

Interessant ist dabei weniger die Summe der Arbeitszeit als das Verhältnis zwischen Arbeiten und Warten. Ein realistisches Beispiel:

Schritt Bearbeitungszeit Wartezeit davor
Anforderung aufnehmen 2 h 5 Tage
Entwickeln 6 h 3 Tage
Code Review 1 h 4 Tage
Testumgebung anfordern 15 min 9 Tage
Testen 4 h 2 Tage
Änderungsantrag stellen 1 h 14 Tage bis zum nächsten CAB
Ausrollen 3 h 6 Tage bis zum Wartungsfenster
Summe etwa 2 Arbeitstage etwa 43 Tage

Die eigentliche Arbeit macht keine fünf Prozent der Durchlaufzeit aus. Der Rest ist Warten — auf Freigaben, auf Umgebungen, auf Termine, auf andere Menschen.

Daraus folgt die vielleicht wichtigste Erkenntnis dieser Unterlage: Wer schneller werden will, muss nicht schneller arbeiten. Er muss die Wartezeiten beseitigen.

Ein Entwickler, der doppelt so schnell programmiert, verkürzt die Durchlaufzeit im obigen Beispiel von 45 auf 44,6 Tage. Ein automatisch bereitgestelltes Testsystem spart neun Tage. Das ist der Unterschied zwischen Optimierung an der falschen und an der richtigen Stelle.

1.3 Warum Übergaben so teuer sind

Jede Übergabe zwischen zwei Teams kostet mehr, als sie auf dem Papier sollte:

Bei sieben Übergaben von der Idee bis zur Produktion — was in großen Organisationen keineswegs viel ist — potenziert sich das. Die Arbeit ist irgendwann fertig; das Warten nicht.

Man kann sich das wie die Bearbeitungswege einer Verwaltung vorstellen, in der jeder Antrag in dreifacher Ausfertigung an eine andere Stelle weitergereicht wird, wobei mindestens eine Ausfertigung stets im Keller landet. Wer die Anhalter-Bücher kennt, weiß, dass die Umgehungsstraße dann trotzdem gebaut wird — nur eben ohne dass jemand vorher davon erfahren hätte.

1.4 Was DevOps ist — und was nicht

Der Begriff entstand 2009. Auf der Velocity-Konferenz zeigten zwei Mitarbeiter von Flickr, dass ihr Unternehmen mehr als zehnmal am Tag ausliefert — zu einer Zeit, als vierteljährliche Releases als ambitioniert galten. Wenige Monate später organisierte Patrick Debois in Gent die ersten devopsdays. Das Kunstwort aus Development und Operations blieb hängen.

DevOps ist:

DevOps ist nicht:

Missverständnis Warum es falsch ist
„Wir richten ein DevOps-Team ein“ Dann gibt es drei Silos statt zwei. Die Mauer wandert nur.
„DevOps ist Jenkins„ (oder GitLab, oder Kubernetes) Werkzeuge unterstützen die Arbeitsweise. Sie erzeugen sie nicht.
„DevOps heißt, dass Entwickler den Betrieb machen“ Es heißt geteilte Verantwortung, nicht verschobene.
„DevOps ersetzt ITIL„ Beide beantworten unterschiedliche Fragen. Siehe Kapitel 17.
„DevOps bedeutet, ohne Tests direkt in Produktion“ Das Gegenteil ist der Fall — mehr Tests, nur automatisiert.

Das teuerste Missverständnis ist die DevOps-Stellenausschreibung. Wer „einen DevOps„ sucht, sucht in Wahrheit meist einen Automatisierungsingenieur — und benennt damit eine Arbeitsweise in eine Person um. Das Ergebnis ist regelmäßig eine einzelne Person, die zwischen zwei unveränderten Abteilungen aufgerieben wird.

1.5 Das Fallbeispiel: KFZ-Rechner

Ab hier begleitet uns durchgehend dieselbe Anwendung.

Ausgangslage. Der KFZ-Rechner ist ein kleiner Webdienst, der aus Fahrzeugtyp, Alter und Schadenfreiheitsklasse eine Prämie errechnet. Er besteht aus etwa 400 Zeilen Python und läuft seit drei Jahren.

Merkmal Zustand heute
Quellcode ein Ordner auf dem Notebook eines Kollegen, dazu ein ZIP-Archiv auf einem Netzlaufwerk
Test manuell, „einmal durchklicken“
Auslieferung Dateien per SCP kopieren, Dienst neu starten
Häufigkeit etwa alle zwei Monate
Wartungsfenster Samstag, 4 Stunden
Rollback Sicherung zurückspielen, Dauer unbekannt
Überwachung ein Kollege ruft morgens die Seite auf
Dokumentation eine Wiki-Seite von 2022

Nichts davon ist ungewöhnlich. Genau so sehen sehr viele gewachsene Anwendungen aus, und meistens funktionieren sie sogar — bis sie es nicht mehr tun.

Zielzustand am Ende dieser Unterlage. Der Code liegt in Git, jede Änderung wird automatisch getestet, gebaut und containerisiert, mehrmals täglich ohne Wartungsfenster ausgeliefert, überwacht, und ein Rollback dauert unter einer Minute.

Wir kommen dorthin in neunzehn kleinen Schritten. Nicht in einem großen.

1.6 Lab: Den eigenen Wertstrom aufzeichnen

Für dieses Lab brauchst du keinen Rechner, sondern Papier.

  1. Wähle eine echte Änderung, die zuletzt in Produktion gegangen ist.
  2. Zeichne jeden Schritt vom ersten Wunsch bis zum Produktivgang auf — auch die, die dir selbstverständlich erscheinen.
  3. Notiere je Schritt zwei Zahlen: die reine Bearbeitungszeit und die Wartezeit davor.
  4. Markiere jede Übergabe an eine andere Person oder Abteilung mit einem Kreuz.
  5. Rechne aus: Bearbeitungszeit geteilt durch Gesamtdauer. Das ist deine Flow-Effizienz.

Werte zur Einordnung: Unter 5 Prozent ist üblich. Über 25 Prozent ist bereits sehr gut. Wer 100 Prozent herausbekommt, hat vermutlich falsch gemessen.

Mach das Lab wirklich. Diese eine Zeichnung erklärt in fünf Minuten mehr über die eigene Organisation als jede Schulungsfolie — und sie liefert dir die Argumente, mit denen du später Verbesserungen begründen kannst. Wer mit „wir sollten mal agiler werden„ in eine Besprechung geht, wird höflich angehört. Wer mit „unsere Testumgebung kostet uns neun Wartetage pro Änderung“ hineingeht, wird gehört.

1.7 Anti-Pattern

Anti-Pattern Woran man es erkennt Was stattdessen hilft
Das DevOps-Team Eine neue Abteilung mit neuem Namen, alte Übergaben Verantwortung in die bestehenden Teams verlagern
Werkzeug zuerst „Wir führen jetzt GitLab ein, dann wird alles gut„ Erst den Engpass finden, dann das Werkzeug wählen
Lokale Optimierung Ein Team wird doppelt so schnell, die Durchlaufzeit bleibt gleich Den gesamten Wertstrom betrachten
Kennzahl ohne Zweck Deployment-Frequenz steigt, Störungen auch Immer paarweise messen, siehe Kapitel 15
Kultur per Rundmail Ein Poster mit Werten hängt im Flur Anreize und Zielvorgaben ändern

1.8 Reflexionsfrage

Wie lange dauert es in deinem Betrieb von der fertigen Codeänderung bis zum Produktivgang — und welcher einzelne Schritt darin ist der längste?

Wenn die Antwort „das weiß ich nicht“ lautet, ist das keine Wissenslücke, sondern schon der erste Befund.


Weiter mit Kapitel 02 — Kultur und Prinzipien