Ist mein Team erfolgreich? Wie ist unsere Performance? Durch die Einführung einer DevOps-Kultur lässt sich die Performance signifikant steigern und durch relevante KPIs messen. Der Begriff DevOps setzt sich dabei aus Development und Operations zusammen und legt den Fokus auf eine bessere Integration und Zusammenarbeit dieser Bereiche.
G. Kim, J. Humble, P. Debois und J. Willis haben in ihrem Buch DevOps Handbook drei Prinzipien herausgestellt, die DevOps als Organisationskultur und Mindset zusammenfassen, untermauern und sich aus dem Lean-Management[^1] ableiten. Auch das DevOps Research and Assessment program (DORA) beschäftigt mit Erfolgsfaktoren von Tech-Teams und führt dazu jährliche Studien mit Tech-Teams durch. Die Ergebnisse dieser Studien zeigen Zusammenhänge zwischen Arbeitsweise, Kultur und Performance auf und werden in jährlichen Reports[^2] veröffentlicht. Sie unterstreichen die Relevanz der drei Prinzipien, die im Folgenden erläutert werden.
Für jedes Prinzip gibt es eine Reihe von Maßnahmen, die in jedem Projekt sofort angewendet werden können, um die Performance des Teams zu steigern.
Die erste Maßnahme leitet sich aus einem der Lean-Prinzipien ab: (Business-)Value sollte möglichst schnell vom Erzeuger (also den Entwickler:innen) zum Kunden “fließen”. Aus den beiden Parteien leitet sich auch der Begriff DevOps ab, da das Dev-Team die funktionierende Software an das Ops-Team übergeben muss. Letzteres betreibt die Software, womit der Wert für den Kunden generiert wird.
Um das zu erreichen, müssen Arbeiten, die nicht zur Wertgenerierung beitragen, unterlassen oder zumindest auf ein notwendiges Minimum reduziert werden. Dies können nicht notwendige Dokumentationen oder manuelle Arbeitsschritte sein. Nicht-geteiltes Wissen bei einzelnen Teammitgliedern kann ebenfalls zu erheblichem Mehraufwand und langsameren Prozessen führen.
Um die Auswirkungen der Arbeit auf den Kunden zu verstehen und zu wissen, wie gut die Anwendung funktioniert, muss ein schnelles und automatisiertes Feedback möglich sein. So kann das Team schnell auf Probleme, aber auch auf das Feedback und Verhalten des Kunden reagieren. Um das zu erreichen, müssen Metriken über die Performance einer Anwendung gesammelt und dem Team automatisiert zur Verfügung gestellt werden. Über Alert-Mechanismen muss das Team über Probleme möglichst sofort informiert werden. Gleiches gilt für auftretende Fehler in der Anwendung. Ein weiteres Prinzip ist, dass immer erst eine Behebung aktueller Fehler stattfinden sollte, bevor neue Features entwickelt werden. Existierende Fehler können zu neuen Problemen führen. Nicht behobene Fehler verleiten außerdem das Team, um diese herum zu entwickeln und so ggf. neue Probleme und mehr Komplexität in die Anwendung zu bringen.
Ein weiteres und vermutlich das mit Abstand wichtigste Prinzip ist es, eine Kultur des Experimentieren und Lernens zu schaffen. In den DORA-Forschungen hat sich gezeigt, dass eine generative Kultur nach Westrum[^6] zu den besten Performance-Ergebnissen führt und außerdem die Gesundheit und Motivation der Teammitglieder fördert.
In der generativen Kultur wird Zusammenarbeit gefördert. Gibt es Probleme im Code, kommt es zu Bugs oder anderen Systemausfällen, so wird der Verursacher nicht beschuldigt, sondern es wird gemeinsam nach Lösungen gesucht. Es wird nicht geschaut, wer dafür verantwortlich ist, sondern wie das System verbessert werden kann, damit der Fehler nicht erneut passieren kann. Dafür können neue Test-Cases geschrieben oder andere Sicherheitsmaßnahmen eingebaut werden. In Post-Mortem-Meetings lässt sich nach der Behebung des Fehlers daraus lernen.
So entsteht ein positiver Kreislauf, der zu weniger Angst, mehr Mut zum Experimentieren, gemeinsamen Lernen und damit letztlich auch mehr Performance führt.
Die Performance eines Tech-Teams lässt sich mit verschiedenen Prinzipien massiv steigern. Die Maßnahmen zur Einhaltung der Prinzipien sollten nicht isoliert betrachtet werden, sondern greifen ineinander und bauen aufeinander auf. Eines der wichtigsten Prinzipien ist die Schaffung einer Kultur, in der ständiges Experimentieren und Lernen gefördert wird. Hierfür werden verschiedene technische und organisatorische Rahmenbedingungen benötigt, die durch DevOps-Maßnahmen erreicht werden können.
Im nächsten Beitrag beschäftigen wir uns damit, wie der Erfolg der umgesetzten Maßnahmen gemessen werden kann. Wir zeigen außerdem anhand von Beispielen und Zahlen auf, wie stark sich die Performance von Teams dadurch steigern lässt.
[^1] Lean Management Überblick
[^2] Die Reports
[^3][^4][^5] Principles Underpinning Devops
[^6][^7] Weiterführende Infos
[^8] Chaos Monkey