Den Begriff DevOps sieht man immer öfters. Wissen Sie was dieser bedeutet? DevOps entstand in den letzten Jahren mit der agilen Softwareentwicklung. Die immer kürzeren Marktzyklen von Softwareprodukten forderten eine immer effizientere Softwareentwicklung, aber auch ein schnelleres und häufigeres Deployment. Was diese Rahmenbedingungen von Entwicklungs- und Deployment-Teams fordert und was der Nutzen von DevOps ist erfahren Sie in diesem Beitrag.
Automatisierung und Überwachung auf allen Stufen der Softwareentwicklung
DevOps (Development und Operations) ist eine Software-Engineering-Kultur und -Praxis, mit den Ziel, Softwareentwicklung (Dev) und Softwarebetrieb (Ops) zu vereinheitlichen und die funktionsübergreifende Zusammenarbeit zu fördern.
Das Hauptmerkmal der DevOps-Bewegung ist es, die Automatisierung und Überwachung auf allen Stufen der Softwareentwicklung, von der Integration über das Testen und Freigeben bis hin zum Deployment und Infrastruktur-Management, zu fördern. DevOps und Agile ergänzen sich gegenseitig und zielen auf kürzere Entwicklungszyklen, öfteres Deployment und zuverlässigere Releases, in enger Abstimmung mit den Geschäftszielen.
Das Development-Team produziert am Ende eines jeden Sprints funktionierende Software. Diese muss jedoch oft warten, bis das festgesetzte Releasedatum im Unternehmen erreicht ist. Selbst am Release-Termin kommt es immer wieder zu Verzögerungen, wenn das Operations-Team nicht auf die Integration und Deployment vorbereitet ist oder das Unternehmen nicht bereit ist, mit der neuen Funktionalität live zu gehen. Kürzeres Time-to-Market, ein wesentlicher Vorteil von Scrum, wird deshalb oft nicht vollständig realisiert.
Das Development-Team muss innerhalb der ersten Sprints nachweisen, dass das Produkt realisierbar ist und Wert schafft. Um dies zu erreichen, braucht es eine Betriebsumgebung und eine anfängliche Architektur, in der die Ziele der Service Level Agreements erreicht werden. Auch dies wird durch DevOps unterstützt.
Nicht mehr getrennt, sondern gemeinsam
Mit DevOps werden die Abteilungen Development und Operations nicht mehr getrennt betrachtet und betrieben, sondern sie werden als ein Team gesehen und arbeiten eng zusammen. Dies über den gesamten Lebenszyklus einer Applikation hinweg – vom Entwurf über die Entwicklung bis hin zum Betrieb einer Applikation – um gemeinsam ein Produkt mit dem größtmöglichen Mehrwert zu schaffen und Software jederzeit und schneller in Betrieb zu nehmen.
Öfteres und schnelleres Deployment wird durch Automatisierung nicht nur im Development (Build, Test), sondern auch im Deployment umgesetzt. Es ist das Ziel möglichst alles zu automatisieren. Dies geschieht in einem agilen Umfeld nach agilen Werten und Prinzipien (Scrum.de, 2015). Daraus ergeben sich kürzere Zyklen, Sie erhalten früheres Feedback der Anwender und sehen auch, ob die Stabilität und die Zuverlässigkeit so sind, wie gedacht.
Alle Tools und Automatisierungsmaßnahmen der Welt sind jedoch wertlos, wenn bei den Development- und Operations-Teams kein echtes Interesse an einer Zusammenarbeit besteht. DevOps behebt keine Probleme bei Tools. Der Fokus liegt vielmehr darauf, dass menschliche Probleme gelöst werden und die funktionsübergreifende Zusammenarbeit gefördert wird.
“DevOps ist eine Kultur, nicht eine Rolle oder eine Software”
DevOps einführen braucht Zeit, denn es soll eine neue Arbeitskultur entstehen, die auf sich an den agilen Werten und Prinzipien des agilen Manifests, aber auch auf Werten wie Transparenz, Offenheit und Respekt basiert. Eine Zusammenarbeitskultur nachhaltig zu verändern braucht nicht Monate, sondern Jahre.
Öfters liefern und bessere Qualität
DevOps hilft einem Software-Team, öfter und mit höherer Qualität zu liefern durch:
- frühereren Nachweis, dass das Produkt realisierbar ist
- Automatisierung nicht nur in der Entwicklung (Build, Test), sondern auch im Deployment und dazwischen
- Enge Zusammenarbeit zwischen dem Development and Operations-Team
- Besseren und schnelleren Wissensaustausch zwischen Development und Operations-Team
- “Inspect and Adapt” über den gesamten Liefer-Workflow hinweg – auch mit dem Ziel, nach Möglichkeiten zur Verbesserung der menschlichen Zusammenarbeit zu suchen.
- Mitglieder des Operations-Teams denken wie Entwickler und umgekehrt
- Verkürzung und Erweiterung von Feedback-Kreisläufen, damit die nötigen Korrekturen vorgenommen werden können
Die Effizienzsteigerung vom „traditionelle Testing“ zum Continious Delivery und weiter zum DevOps sind immens. Hier geht’s aber nicht nur um Effizienz, sondern auch darum schneller mit dem Produkt auf dem Markt zu sein. Zweiter auf dem Markt sein heißt sehr oft „Game over“ und der Druck schneller zu sein wird von Jahr zu Jahr grösser.
DevOps hat auch einen positiven Einfluss auf Teams. Menschen, die vorher vielleicht nicht die beste Meinung voneinander hatten, arbeiten viel enger zusammen und schätzen die Arbeit der anderen Disziplin als wertvoll ein. Beide profitieren vom Wissen des anderen und bauen gemeinsam ein besseres Produkt. Mehrwert wird schneller, in höherer Qualität und zu niedrigen Kosten geliefert und die Risiken sinken.
Nicht überall ist DevOps gleich wirkungsvoll
DevOps ist der richtige Weg, wenn es um „reine Softwareentwicklung“ geht, wie z.B. von Mobile Apps, PC-Anwendersoftware oder Webanwendungen. Hier sind schnelle Marktanpassung und kurze Releasezyklen relevant. Wenn man hingegen Software für große ERP-Systeme, Versicherungssysteme oder Systeme entwickelt, bei der die Software Teil eines Produktes ist, wie z.B. für Werkzeugmaschinen, Flugzeuge oder Autos, kann DevOps nicht den vollen Nutzen ausspielen. Ein aktuelles Beispiel dazu ist die Software für die Boeing 737 Max 8. Bei solchen Systemen dauern die Releasezyklen nicht Tage oder Wochen, sondern teilweise mehrere Monate. Hier sind z.B. Expertenwissen, aufwändige Tests und detaillierte Dokumentation Pflicht. Aber auch hier hat natürlich eine bessere Zusammenarbeitskultur zwischen Development und Operation-Teams viele positive Effekte.
Hier finden Sie mehr Artikel über agiles Projektmanagement
Was haben Sie für Erfahrungen mit Agilität und agilen Projekten gemacht? Stimmen Sie mit meinen Aussagen überein oder haben Sie eine andere Ansicht oder Ergänzungen? Teilen Sie Ihre Erfahrung mit mir und den Lesern unten in der Kommentarbox. Danke!
Wollen Sie mehr erfahren, wie Sie Ihre agilen Projekte und Scrum noch erfolgreicher machen? Mein Buch „Scrum – Agiles Projektmanagement und Scrum erfolgreich anwenden“ bringt Sie einen wichtigen Schritt weiter!