Lean in der Softwareentwicklung

Lean DevOps

Über den Lean-Tellerrand

Lean Management ist in zahlreichen, produzierenden Unternehmen ein mehr oder weniger etablierter Ansatz, um Verschwendung zu vermeiden und somit Prozesse schlanker zu gestalten, um deren Geschwindigkeit und Qualität zu verbessern. Dies hat Lean Management zu einem wichtigen Treiber für operative Exzellenz in produzierenden Unternehmen gemacht.

Im Laufe der Zeit wurde der Lean-Ansatz in immer neuen Teilbereichen der Wertschöpfung im Unternehmen angewandt. Beispielsweise können mittels Lean Management auch in der Administration Kosten eingespart und eine höheres Qualitätsniveau der Prozesse erzielt werden. Das Gleiche gilt für die Produktentwicklung, wo sich der Lean-Gedanke in Ansätzen wie Lean-Startup und Lean-Development wiederfindet. Dabei geht es darum, Geschäfts- oder Produktideen mit möglichst geringem Aufwand, kundenzentriert, iterativ und zügig hinsichtlich ihrer Marktchancen zu testen (Fail fast – Fail cheap – Try again).

Agile Software-Entwicklung und DevOps

Gleichzeitig haben sich auch in der Softwareentwicklung mit Agile, Scrum und Kanban Ansätze hervorgetan, die auf der Lean-Philosophie aufbauen. Primär ist es das Ziel, Planungsaufwand zu reduzieren sowie Flexibilität und Reaktionsfähigkeit zu erhöhen. Neben der Entwicklung verlässlicher Softwareanwendungen ist aber nicht zuletzt auch deren produktiver Betrieb, also die Auslieferung an die Benutzer, stets eine Herausforderung, insbesondere in der heutigen Ära von Software-as-a-Service. In diesem Zusammenhang ist die Integration von täglichen Updates in parallelen Entwicklungsströmen besonders heikel: Je komplexer die Systemlandschaft, desto schwieriger die Verwaltung und das Monitoring einzelner Komponenten. Somit wächst das Risiko von Systembrüchen, Fehlern und Systemausfällen.

DevOps ist die Antwort auf diese Herausforderungen: Eine nahtlose Integration von Entwicklungs- und Operationsteams soll Abstimmung und Planungssicherheit verbessern. Ziel ist es, kontinuierliche Entwicklungs- und Deployment-Prozesse zu etablieren. Dabei ist DevOps stark von der agilen Softwareentwicklung geprägt und setzt genauso auf Flexibilität und Kundenzentrierung. Die enge Verzahnung von agiler Entwicklung mit einem reaktionsschnellen IT-Betrieb erlaubt eine Auslieferung von Updates oder neuen Services ohne Zeitverlust. Weiter helfen Replikation von Betriebsumgebungen (man testet bei gleicher Konfiguration wie im Betrieb), und ein hoher Automatisierungsgrad von Prozessen für Testing, Monitoring und Deployment. Somit geht es bei DevOps, wie in der klassischen Produktion, um effiziente und schlanke Strukturen, die einen sicheren und fehlerfreien Betrieb von Systemen gewährleisten sollen.

Lean-DevOps

Mit wachsender Systemlandschaft und höherer Komplexität fällt fast zwangsläufig ein immer höherer Verwaltungsaufwand an – ein ähnliches Muster wie es in der industriellen Produktion zu finden ist. Während DevOps Probleme kollidierender Updates, unterschiedlicher Umgebungen für Entwicklung und Produktion oder manueller Konfiguration löst, können im Kontext der Gesamtorganisation weiterhin Reibungspunkte auftreten: Falsche oder wechselnde Anforderungen, fehlerhafte Kommunikation oder veraltete Dokumentation. Die Integration mit vorgelagerten Bereichen, Vertrieb oder strategischer Planung bleibt häufig außen vor – ein Bereich, der von DevOps nicht klar erschlossen ist, aber ein Kern von Lean-Management ist, wo die Sicht auf eine unternehmensweite, integrierte Wertschöpfungskette (end-to-end) das übergeordnete Ziel ist.

Führt man DevOps und Lean-Management zusammen, ergeben sich vielversprechende Synergien: DevOps mit Fokus auf Agilität sowie Kontinuität und Automatisierung in Entwicklung und Betrieb, kombiniert mit Lean-Management und dem Fokus auf Geschwindigkeit und Qualität.

Eine zentrale Rolle spielt dabei die Verankerung integrierter, schlanker Prozesse über Fachbereichsgrenzen hinweg. Grundlage dafür ist das Etablieren eines übergreifenden Lean-Mindsets bei allen Beteiligten, in dessen Kern der Nutzen des Kunden (Value) und andererseits Vermeidung von Verschwendung stehen. Darüber hinaus können mit Hilfe des Lean-Werkzeugkastens operative Prozessdesigns entwickelt werden, um eine verbesserte Wertschöpfung zu realisieren. Konkret hilft zum Beispiel ein Value-Stream-Mapping, um einen durchgängigen Prozessfluss für die jeweilige Organisation zu gestalten, der die verschiedenen Fachbereiche integriert, Wartezeiten minimiert und nicht ausgeglichene Kapazitäten entlang des Wertstroms vermeidet.

Durch die resultierende Verzahnung von Software-Entwicklung, IT-Betrieb und angrenzenden Departments gelingt es, Ineffizienzen innerhalb des Unternehmens aufzulösen und ganz im Sinne des Agile- und Lean-Ansatzes in integrierten Wertschöpfungseinheiten ganzheitlich zu denken. Wenn nun noch konsequent und vor allem langfristig auf die Verschlankung und kontinuierliche Verbesserung der Organisation gesetzt wird, lassen sich Robustheit, Qualität und Kundennutzen auf ein neues Niveau heben und insgesamt eine neue Stufe von Operational Excellence sichern.