Schriftliche DevOps-Schulung
Wie verbessern Sie Ihren DevOps-Arbeitsfluss?
Bei DevOps bezeichnet Flow den gesamten Ablauf der Softwareerstellung von der Idee bis zum lauffähigen Code in Ihren Produktionssystemen. Sie und Ihre DevOps-Teams bauen einen verlässlichen, gleichmäßigen und schnellen Arbeitsfluss auf und erhalten ihn. So erreichen und übertreffen Sie die Ziele Ihrer Organisation und setzen sich in Ihrem Markt gegen andere Produkte und Dienste durch.
Legen Sie einen Auftrag für Ihre DevOps-Transformation fest
Sobald Ihr DevOps-Team steht, braucht es einen Auftrag. Ein gemeinsamer Auftrag hilft dem Team, richtig zu arbeiten. Ohne ihn kann es kritische Aufgaben nicht priorisieren und entscheidende Hindernisse kaum von Nebentätigkeiten unterscheiden. Der Auftrag sollte anspruchsvoll und überzeugend sein, zugleich aber in einem festgelegten Zeitraum erreichbar bleiben.
Der Auftrag sollte zu Ihrem DevOps-Team passen. Er orientiert sich an den Eigenschaften, Herausforderungen und Zielen Ihrer Organisation bei der Betreuung interner und externer Kunden, die mit dem Team zusammenarbeiten.
Mögliche Aufträge zum Start Ihrer DevOps-Transformation sind:
- Die durchschnittliche Durchlaufzeit vom Code-Check-in bis zur Live-Produktion in 3 Monaten um 75 % senken.
- Die durchschnittliche Durchlaufzeit von der Anforderung bis zur Live-Produktion in 6 Monaten um 33 % senken.
- Die Anzahl der Produktionsvorfälle in 12 Monaten um 50 % senken.
Was ist ein Wertstrom und wer wirkt an Ihrem Wertstrom mit?
Um Ihre Arbeit zu verbessern, müssen Sie Ihren Wertstrom kennen. In der IT ist ein Wertstrom die Abfolge von Tätigkeiten, die nötig sind, um ein bestimmtes Softwareprodukt oder einen Dienst zu entwerfen, zu erstellen und zu betreiben. Er erfasst auch die Menschen, das Wissen, die Hilfsmittel und das Material, die den Ablauf ermöglichen.
In einer komplexen Organisation kann niemand einen durchgängigen Wertstrom allein vollständig erfassen. Beteiligen Sie daher alle Mitglieder des DevOps-Teams, Stakeholder, Anbieter und Kundenvertreter, nach Möglichkeit auch die Kunden selbst.
Mit einer Wertstromkarte Verbesserungspotenzial erkennen
Mit einer Wertstromkarte stellen Sie und Ihr DevOps-Team dar, wie ein typischer Arbeitsvorgang in Entwicklung und Bereitstellung abläuft. Dabei geht es nicht darum, jeden Arbeitsschritt umfassend zu dokumentieren. Sie wollen den typischen Ablauf gut genug verstehen, um größere Ineffizienzen, Engpässe, Probleme und Verschwendung von Zeit und Ressourcen zu erkennen.
Wenn Entwicklungs- und Betriebsingenieure zum ersten Mal gemeinsam eine Wertstromkarte erstellen, erfahren Betriebsingenieure oft erstmals, wie falsch konfigurierte Datenbankserver ohne Tablespaces die Entwicklungsarbeit beeinträchtigen. Umgekehrt erkennen Entwickler häufig erstmals die Folgen, wenn sie Software ohne eingebaute Überwachung und ohne Vorkehrungen für Verfügbarkeit, Testbarkeit und Konfiguration liefern.
-
Definieren
Die Arbeit anfragen, genehmigen, präzisieren, freigeben und analysieren.
-
Bereitstellen
Die Änderung entwerfen, prüfen, programmieren, testen und bereitstellen.
-
Verbessern
Arbeitszeiten, Wartezeiten und Nacharbeitsschleifen im gesamten Wertstrom vergleichen.
Bauen Sie Übergaben, Engpässe und Verschwendung so weit wie möglich ab
Übergaben, Verschwendung und Engpässe sind wichtige, oft übersehene Effizienzfaktoren. Die Übergabe einer Aufgabe an ein anderes Team erfordert Benachrichtigungen, Anfragen, Terminplanung, neue Prioritäten und die Lösung von Konflikten.
Bei jeder Übergabe zwischen Teams gehen Informationen verloren. Zudem verlängert sie die Gesamtdurchlaufzeit des Wertstroms.
So gehen Sie diese Probleme an:
- Hinterfragen Sie, wie lange jede Übergabe dauert. Im obigen Beispiel dauert es etwa 80 Stunden, bis das Deployment-Team erfolgreich getesteten Code übernimmt. Warum dauert es so lange? Lässt sich das automatisieren? Natürlich.
- Beseitigen Sie die Verschwendung durch wiederholte Übergaben. Im Beispiel gibt das Testteam 65 % der Funktionen an die Entwicklung zurück. Manche Fehlerkorrekturen müssen bis zu 3-mal geliefert werden, bis die Tester sie freigeben. Könnten Entwicklung und Test enger zusammenarbeiten und die Iterationen beschleunigen? Die hohe Fehlerzahl zeigt außerdem, dass im Entwicklungsteam etwas nicht optimal läuft. Ermitteln und beheben Sie die Ursachen dieser Qualitätsprobleme.
- Hinterfragen Sie Übergaben und bauen Sie sie nach Möglichkeit ab. Im obigen Beispiel dauert es nach der Verfeinerung einer Anforderung 320 Stunden, bis die zuständige Stelle sie bearbeitet und freigibt. Warum brauchen Sie diese Freigabestelle? Welchen Nutzen bringt sie für den Wertstrom? Hat sie genügend Informationen und Überblick, um gut zu entscheiden? Warum arbeitet sie nicht direkt im Team für die Anforderungsverfeinerung mit? Dann weiß sie besser, was sie freigibt, und eine zeitaufwendige Übergabe von 320 Stunden entfällt. Solange Engpässe und Hürden den Arbeitsfluss bremsen, können Sie von DevOps wenig erwarten.
Mit DevOps sollen Sie solche Fragen stellen und den Status quo hinterfragen. Natürlich wird sich nicht jeder in Ihrer Organisation darüber freuen. Darauf sind Sie vorbereitet.
Machen Sie Ihren Arbeitsfluss für alle sichtbar
Damit Ihre Arbeit von links nach rechts fließt und Ihre DevOps-Organisation ihre Ziele erreicht, brauchen Sie Werkzeuge und Mechanismen, die den Fluss sichtbar machen. In der IT reicht ein Mausklick, um eine Aufgabe von einem Team an das nächste im Wertstrom zu geben. Wegen unvollständiger Arbeit, nicht abgestimmter Abhängigkeiten und Missverständnissen wandert sie im Alltag jedoch oft zwischen Teams hin und her. So geht es einen Schritt vor und zwei zurück. Wenn die Arbeit überhaupt vorankommt, dann zu langsam.
Machen Sie den Fluss deshalb für alle sichtbar, auch über Ihr eigenes Team hinaus. DevOps nutzt Product Backlog, Sprint Planning Backlog und Kanban-Boards, um Arbeitsabläufe zu visualisieren. Die Boards sollten neben den Aufgaben Ihres Teams den gesamten Ablauf von der Produktidee über den Betrieb und die Wartung bis zur Außerbetriebnahme zeigen. So erkennen alle schnell, wenn Arbeit stockt. Dann tragen alle gemeinsam Verantwortung dafür, Hindernisse zu beseitigen und einen kontinuierlichen, erfolgreichen Arbeitsfluss zu ermöglichen.
-
Entwurfsboard
Die Entwurfsarbeit durchläuft sichtbare Statusstufen.
-
Entwicklungsboard
Die Teams sehen laufende Arbeiten und bringen Aufgaben zum Abschluss.
-
Betriebsboard
Das Betriebsteam sieht eingehende Aufgaben und ihren aktuellen Status.
Begrenzen Sie Paketgröße und laufende Arbeit
Eine Studie der Stanford University ergab, dass Multitasking weniger produktiv ist, als jeweils eine Aufgabe zu bearbeiten. Menschen, die regelmäßig mit mehreren elektronischen Informationsströmen gleichzeitig konfrontiert sind, konnten sich außerdem weniger gut konzentrieren, Informationen abrufen und zwischen Aufgaben wechseln als Personen, die eine Aufgabe nach der anderen erledigten.
Für Ihr Team bedeutet das: Reduzieren Sie parallele Arbeit und begrenzen Sie den Umfang einzelner Code-Lieferpakete. Beispielsweise kann Ihr Team höchstens 6 Entwicklungsaufgaben gleichzeitig bearbeiten, um ständige Kontextwechsel zu vermeiden und sich auf die aktuelle Arbeit zu konzentrieren. Alternativ können Sie Aufgaben mit Story Points auf Basis der Fibonacci-Zahlen schätzen (0, 1, 2, 3, 5, 8, 13, 21, 34, …). Ihr DevOps-Team bearbeitet dann je Zeitraum (Sprint) höchstens eine bestimmte Gesamtzahl an Story Points (Velocity).
Kleine Lieferpakete verbessern Qualität und Produktivität. Sie helfen auch, Ursachen schneller zu ermitteln und Probleme zu beheben. Sobald eine Aufgabe fertig ist, checken Sie sie in das gemeinsame Code-Repository ein, prüfen sie mit Ihrer Continuous-Integration-Plattform und bringen sie dann in Produktion. In kleinen Lieferpaketen lassen sich verursachte Produktionsprobleme leichter erkennen und gegebenenfalls einfacher zurücknehmen. Außerdem kann Ihr Team durch kontinuierliche Lieferungen in Produktion dauerhaft stolz darauf sein, zum Auftrag Ihrer Organisation beizutragen. Vergleichen Sie das mit der Stimmung, Motivation und den technischen Schwierigkeiten von Teams, die 8 Monate programmieren, ohne eine einzige Zeile Code in Produktion zu bringen.
Verwenden Sie 20 % Ihrer Zeit für den Abbau technischer Schulden
Wenn Ihre Organisation keine Zeit zum Abbau technischer Schulden einplant und immer neue Behelfslösungen aufeinander aufbaut, verbringen irgendwann alle Ingenieure ihre gesamte Zeit mit Fehlerbehebung. Im Vergleich zu finanziellen Schulden heißt das: Ihre Organisation zahlt nur noch Zinsen.
FAZIT
In diesem Kapitel haben wir erläutert, was Wertstrom und Arbeitsfluss bei DevOps sind, warum sie wichtig sind und wie Sie die Arbeit durch den Wertstrom fließen lassen.
