Dieser Artikel wurde von unserem DevOp Garrit Franke verfasst und am 11.12.2023 auf Golem.de veröffentlicht.
DevOps ist ein Ansatz, der die Zusammenarbeit zwischen den namensgebenen Entwicklungs- (Development) und Betriebs-Abteilungen (Operations) verbessern soll, um Software schneller, zuverlässiger und effizienter bereitzustellen. Dabei geht es darum, die traditionellen Silos zwischen diesen und anderen Bereichen zu überwinden und eine gemeinsame Kultur und Sprache zu schaffen. Ein fundamentaler Aspekt von DevOps ist, den Fluss von Arbeit in einem Projekt stetig am Laufen zu halten. In diesem Artikel geht es um eben diesen Wertestrom und darum, wie wir Hindernisse identifizieren und beseitigen können, die den Wertestrom beeinträchtigen.
Was genau ist ein Wertestrom?
Stellen wir uns ein Fließband in einer Fabrik vor, auf dem unterschiedliche Teile eines Produkts montiert werden. Im ersten Segment werden die Grundkomponenten zusammengesetzt, am nächsten die Elektronikteile hinzugefügt, und so weiter. Selbst wenn jedes Segment des Fließbands den spezifischen Auftrag perfekt erfüllt, könnten Probleme entstehen, wenn beispielsweise Teile nicht rechtzeitig eintreffen oder wenn es an einem anderen Übergang zu einem Stau kommt. Das Resultat sind Verzögerungen im gesamten Produktionsprozess.
So verhält es sich auch in anderen Arbeitsprozessen: Es ist nicht nur wichtig, dass die einzelnen Abteilungen oder Arbeitsphasen effizient arbeiten, sondern dass die Arbeitsphasen nahtlos ineinander übergehen. Dieser reibungslose Ablauf von Aufgaben durch ein System wird als “Wertestrom” bezeichnet.
Der Begriff Wertestrom stammt aus dem Kontext des Lean Manufacturing, einer Methodik, die darauf abzielt, die Reibung in der Produktion von physischen Gütern zu minimieren und den Wert für den Kunden zu maximieren. Im Lean Manufacturing repräsentiert der Wertestrom den Durchlauf von Aufgaben durch verschiedene Phasen und Teams. Obwohl Lean Manufacturing ursprünglich für die Fertigungsindustrie entwickelt wurde, haben viele seiner Prinzipien Einzug in die Softwareentwicklung und IT gehalten. Hierbei wird das Konzept nicht nur auf physische Produkte, sondern auch auf Softwareentwicklung und andere IT-Dienstleistungen angewendet.
Der Wertestrom im Kontext von DevOps
Der Wertestrom spielt in der IT besonders bei DevOps eine tragende Rolle. DevOps ist eine Kultur und Bewegung, die sich darauf konzentriert, die traditionellen Trennlinien zwischen Entwicklung (Development) und Betrieb (Operations) zu überwinden. Es ist nicht nur eine bloße Kombination dieser Bereiche, sondern ein Ansatz, der darauf abzielt, die Disziplinen unterschiedlicher Teams enger miteinander zu verzahnen. Mit Hilfe des Prinzip des Wertestroms schafft es DevOps den ständigen Fluss von Software-Features sicherzustellen, von der Konzeption, über die Entwicklung bis zur Qualitätssicherung und Bereitstellung für den Endkunden. So werden Engpässe schnell identifiziert, Prozesse optimiert und sichergestellt, dass Software effizient und in höchster Qualität geliefert werden.
Gemeinsame Verantwortung für den Fluss des Wertestroms
Es ist essentiell, dass jede:r das Big-Picture, also die Arbeitsschritte im gesamten Wertestrom, kennt und mitverantwortet, nicht nur die eigene Disziplin. So können Probleme leichter behoben und Konflikte vermieden werden. Sollten zum Beispiel bestimmte Probleme immer wieder auftreten, kann es sein, dass ein vorgelagertes Team nichts davon weiß oder nicht erkennt, welche Auswirkungen es auf den gesamten Prozess haben kann. Daher ist ein klares Bewusstsein über den Stand der anderen Arbeitsschritte wichtig. Hier können beispielsweise regelmäßige Absprachen in Form von Feedback-Schleifen oder Stand-up-Meetings helfen. Dies verbessert nicht nur die interne Kommunikation, sondern stellt sicher, dass Teammitglieder schnell auf Probleme hinweisen und gemeinsam Lösungen finden. Doch wie genau kann das in der Praxis umgesetzt werden? Welche konkreten Maßnahmen können helfen, den Wertestrom kontinuierlich zu verbessern?
Der Wertestrom sollte immer in eine Richtung gehen
Aufgaben werden immer, bewusst oder unbewusst, an einem bestimmten Punkt in den Wertestrom eingeführt. Beispielsweise stellt jemand eine Anforderung, ein Qualitätsproblem meldet, ein Betriebsproblem auftritt oder ein Kunde gibt Feedback. Wichtig ist, dass der Arbeitsfluss immer vorwärts läuft. Arbeit, die rückwärts geht oder sogar stillsteht, führt zu Engpässen, die die Arbeit in den nachfolgenden Schritten beeinträchtigen. Solche Engpässe sollten immer so schnell wie möglich beseitigt werden.
Ein Prozess für ungeplante Aufgaben
Ungeplante Arbeit, die beispielsweise durch unerwartete Fehlerbehebungen oder kurzfristige Anfragen erzeugt wird, stört den kontinuierlichen Wertefluss und mindert die Effizienz. Das Ziel sollte sein, diese ungeplante Arbeit auf ein Minimum zu reduzieren, indem geplante Prozesse umgesetzt werden.
In der Entwicklung tritt eine solche Situation beispielsweise auf, wenn Entwickler ihr Projekt zum testen an die Qualitätssicherung weitergeben. Wird dort ein kritischer Fehler gefunden, muss die App zur Fehlerbehebung in die Entwicklungsabteilung. Dieses Hin und Her kann mehrmals stattfinden und führt dazu, dass andere Aufgaben ebenfalls ins Stocken geraten. Um dies zu verhindern, können wir Prozesse etablieren, die für eine engere Zusammenarbeit zwischen der Entwicklung und Qualitätssicherung sorgen. Anstatt die Funktion erst nach ihrer Fertigstellung an die Qualitätssicherung weiterzugeben, könnten automatisierte Tests während der Entwicklungsphase integriert werden. Auf diese Weise können Fehler frühzeitig erkannt und sofort behoben werden, bevor sie den Wertefluss stören und ungeplante Arbeit verursachen.
Ähnliches gilt für Kundenfeedback. Angenommen, ein Kunde äußert den Wunsch nach einer neuen Funktion in einem Produkt. Wenn dieses Feedback nicht systematisch behandelt wird, kann es zu ungeplanter Arbeit führen. Deswegen macht es Sinn regelmäßige Feedback-Sessions mit Kunden durchzuführen, um die Anforderungen schnellstmöglich zu erkennen, zu priorisieren und nahtlos in den geplanten Entwicklungsprozess zu integrieren. Damit stellen wir sicher, dass Produkte oder Dienstleistungen kontinuierlich und ohne unerwartete Störungen verbessert werden.
Bekannte Mängel nicht gedankenlos weitergeben
Probleme sollten gelöst werden sobald sie auftreten, besonders am Anfang des Wertestroms. Vernachlässigen wir diese Probleme, kann dies zu größeren
Schwierigkeiten in den späteren Phasen führen.
Sollte zum Beispiel ein Entwickler einen kleinen Bug im Code ignorieren, kann dieser sich im Teststadium oder beim Kundenfeedback bemerkbar machen. In diesem Fall verbrauchen wir unnötige Ressourcen und bewegen uns zurück im Wertestrom, sodass die Arbeitsprozesse ins Stocken geraten. Daher achten wir immer gemeinsam auf die ineinander verzahnten Arbeitsschritte und sprechen Problemstellungen frühzeitig an, um die Auswirkungen im gesamten Wertestrom zu erkennen und zu lösen.
Der Wertestrom sollte stetig erhöht werden
Ziel jedes Unternehmens ist es, mehr Arbeit von höherer Qualität zu leisten. Das bedeutet mehr Nutzen für die Kunden und letztendlich Erfolg. Aber wie erreichen wir das?
WiP reduzieren
Ein erster Schritt besteht darin, “Work in Progress” (WiP) zu minimieren. Das sind Aufgaben, die begonnen, aber noch nicht abgeschlossen wurden. Viel WiP kann zu Verzögerungen und Engpässen führen, da Ressourcen auf zu viele gleichzeitige Aufgaben verteilt sind. Steckt beispielsweise eine Aufgabe in einer bestimmten Phase länger als erwartet fest, sollte dies als Warnsignal gesehen werden. Das Team sollte sich dann fragen: Warum kann diese Aufgabe nicht abgeschlossen werden, um Wert für den Kunden zu generieren? Und wie können solche Verzögerungen in Zukunft verhindert werden?
Produktionstempo auf Kunden ausrichten
Außerdem sollten wir uns am Tempo unserer Kunden orientieren und darauf achten, was ihnen Mehrwert bietet. Es bringt nichts ständig neue Features zu produzieren, wenn die Kunden diese gar nicht nutzen können oder wollen. Daher ist die direkte Kommunikation und das Feedback der Kunden entscheidend. Umfragen, Interviews, User-Testing oder das Monitoring von Produktverwendungsdaten können dabei helfen, werthaltiges Feedback zu generieren. So können wir schnell herausfinden, welche Funktionen Sinn machen und welche weniger relevant sind. Feature-Anfragen, Support-Tickets und Markttrends helfen ebenfalls, Prioritäten zu setzen.
Lokale Optimierungen sollten nie zu globalen Engpässen führen
Es ist zwar wichtig, die Effizienz in verschiedenen Arbeitsbereichen zu steigern, aber wir sollten immer darauf achten, dass diese lokalen Verbesserungen nicht den Wertestrom als Ganzes beeinträchtigen. Manchmal ändert eine Abteilung ihre Prozesse zu ihrem Vorteil, aber diese Änderungen können in einem anderen Teil des Ablaufs Probleme verursachen, was sich auf die Gesamtleistung auswirkt.
Lokale Optimierungen werden oft in Verbindung mit “Bereichskonflikten” zwischen Abteilungen eines Unternehmens gebracht. Ein bekanntes Beispiel ist der Konflikt zwischen der Entwicklungsabteilung und der Betriebsabteilung. Während die Entwicklungsabteilung möglicherweise darauf aus ist, Features so schnell wie möglich an den Kunden zu liefern, könnte die Betriebsabteilung mehr Wert auf Stabilität, Zuverlässigkeit und Sicherheit legen. Dies kann zu Spannungen führen. Deshalb müssen beide Abteilungen mit Hilfe von regelmäßigen Abstimmungen darauf achten, ihre Ziele und Prioritäten in Einklang zu bringen.
Arbeitspakete klein halten
Der Wertestrom spielt für den Erfolg von DevOps eine zentrale Rolle. Es geht es nicht nur darum, einzelne Abteilungen oder Arbeitsprozesse zu optimieren, sondern das gesamte System im Blick zu behalten. Es gilt Engpässe, Rückwärtsgänge und lokale Optimierungen, die zu globalen Beeinträchtigungen führen, zu vermeiden, um den Fluss von Arbeit durch ein System effizienter zu gestalten.
Es ist wichtig Potenziale zu erkennen, sich in einem interdisziplinären Austausch zu engagieren und proaktiv zu handeln. Durch ein Bewusstsein dafür, wie der Wertestrom in unserem Unternehmen funktioniert und wo Verbesserungen möglich sind, können wir das Gesamtsystem positiv beeinflussen. Wenn wir die hier vorgestellten Maßnahmen umsetzen, werden wir verstehen, wie der Wertestrom unseren Arbeitsalltag und die Ergebnisse unseres Teams verändert. Dies ist ein kontinuierlicher Prozess, aber die Anstrengung zahlt sich aus – sowohl für uns, unser Team als auch für den Kunden.