nd3000 - stock.adobe.com
DevOps in Softwareunternehmen: Ist der Hype gerechtfertigt?
Mit DevOps soll Softwareentwicklung effizienter und schneller umgesetzt werden. Dabei gibt es bereits eine Vielzahl von agilen Methoden. Was macht DevOps so besonders?
Die fortschreitende Digitalisierung schafft neue Potentiale in allen Bereichen der Gesellschaft. Das gilt umso mehr für Unternehmen: Sie müssen mit den technischen Neuerungen Schritt halten, um weiterhin am Markt bestehen zu können. So muss heutzutage jedes Unternehmen auch ein Softwareunternehmen sein, unabhängig davon, ob es tatsächlich Software oder ganz andere Produkte und Dienstleistungen anbietet. Denn die Herstellung, Vermarktung und Lieferung klassischer Produkte ist inzwischen meist auch an Software gekoppelt.
Hinzu kommen unternehmensinterne Prozesse, wenn etwa Kunden-Feedback berücksichtigt und in der Produktentwicklung umgesetzt werden soll, immer kürzere Produktlebenszyklen und generell neue Trends wie künstliche Intelligenz (KI), mobile Anwendungen oder der rasante Zuwachs bei IoT-Produkten (Internet of Things). Um sich gegenüber der Konkurrenz abzusetzen, ist der schnelle Einsatz entsprechender Software unerlässlich.
Dafür genügt es längst nicht mehr, dass die IT-Abteilung in festen und langen Release-Zyklen ein größeres Update der eingesetzten Anwendungen vornimmt, wie etwa bei On-Premises-Software. Auch hinsichtlich der Vorgehensweise bei der Entwicklung und Implementierung neuer Software hinken traditionelle Modelle wie das Wasserfallmodell der Zeit hinterher.
Ihre lineare Ausrichtung macht sie weniger flexibel für Anpassungen innerhalb des Projektablaufs. Zudem werden Fehler im schlimmsten Fall erst am Ende des Entwicklungsprozesses sichtbar. Letztlich verzögern sich dadurch Projekte, die Produkte sind von schlechter Qualität und entsprechen nicht den Kundenerwartungen. Gegenüber derart starren Modellen mit einer langen Planungs- und Vorbereitungszeit haben sich in den vergangenen Jahren agile Methoden in der Softwareentwicklung durchgesetzt.
Erfolgreiche Methoden der modernen Softwareentwicklung
Um die Produktentwicklung und Umsetzung durch die IT effizienter zu gestalten und flexibel auf Kundenwünsche eingehen zu können, kommen bereits zahlreiche neue Technologien und Methoden bei der Entwicklung von Softwareprodukten zum Einsatz. Mit agilen Verfahrensweisen wird eine möglichst schnell ausführbare Software entwickelt, wobei auf umfangreiche Planung zu Projektbeginn verzichtet wird. Scrum ist heutzutage eine bewährte Arbeitsweise, um mehr Flexibilität und Dynamik im Entwicklungsprozess zu gewährleisten. Charakteristisch sind hierbei die Scrum-Rollen und die Selbstorganisation des Entwicklerteams.
Ebenfalls Teil der agilen Softwareentwicklung und oft mit Scrum kombiniert, sind Extreme Programming (XP) und Pair Programming (Paarprogrammierung). Schnelle Reaktionszeiten und kurze Entwicklungszyklen von einem Tag bis zu einer Woche ermöglichen es, Kunden in das Projekt aktiv einzubinden und deren Wünsche im Entwicklungsprozess zu berücksichtigen. Dabei arbeiten oft zwei Programmierer gleichzeitig an einem Arbeitsplatz.
Um mögliche Fehler, wie etwa beim Wasserfallmodell, nicht erst zum Schluss, sondern schon während der Projektarbeit auszuschließen, ist die testgetriebene Entwicklung (Test-driven Development, TDD) eine zuverlässige Methode, bei der die Applikationen zudem kontinuierlich getestet werden. Damit Softwareprojekte hinsichtlich der Terminologie für alle Beteiligten transparent und verständlich sind, richten sich beim Domain-driven Design (DDD) Architektur und Implementierung an der Fachlichkeit aus.
Derart agile Herangehensweisen in der Softwareentwicklung können um weitere Methoden ergänzt werden. Mit Continuous Integration (CI) werden Komponenten fortlaufend zu einer Anwendung zusammengefügt und mit Continuous Delivery (CD) alle Änderungen während des Projektverlaufs direkt an den Kunden ausgeliefert.
Die Arbeit lässt sich zusätzlich erleichtern, wenn Container-Technologien in Entwicklung und Betrieb zum Einsatz kommen. In einem Container befinden sich alle Voraussetzungen für die Lauffähigkeit einer Anwendung, ob Bibliotheken, Frameworks oder Einstellungen.
In der modernen Softwareentwicklung gibt es demnach bereits eine Vielzahl von Methoden und Technologien, um Anwendungen schneller abzuschließen und auszuliefern. Wozu benötigt man mit DevOps noch eine weitere Arbeitsmethode?
Was macht DevOps besser als andere Praktiken?
DevOps ist ein Schachtelwort, das sich aus den englischen Worten Development und IT-Operations zusammensetzt, zu Deutsch Entwicklung und IT-Betrieb. Es ist jedoch weder Software, Tool, Technologie noch Methode oder Prozess. In der Fachliteratur wird DevOps oft als Prozessverbesserungsansatz, Unternehmenskultur oder Mindset bezeichnet.
Ziel ist es, dass die Bereiche Entwicklung, IT-Operations und Qualitätssicherung effektiver und effizienter miteinander zusammenarbeiten, um schneller auf Änderungen reagieren und in kurzer Zeit eine hochwertige und stabile Software realisieren zu können.
Im Gegensatz zu den anderen genannten agilen Arbeitsmethoden ist DevOps nicht auf einzelne Abschnitte im Produktlebenszyklus beschränkt. Vielmehr führt das Mindset die unterschiedlichen Bereiche der Softwareentwicklung in einem Prozess zusammen. Der DevOps-Ansatz kann verschiedene agile Entwicklungsmethoden wie Scrum, Kanban oder Container in sich vereinen, um etwa Continuous Integration und Continuous Delivery zu erreichen.
Herausforderungen annehmen mit der Einführung von DevOps
Die Einführung von DevOps in Unternehmen ist mit zahlreichen Herausforderungen verbunden, da die gesamte Unternehmenskultur und -struktur beeinflusst wird. Es setzt eine hohe Akzeptanz aller Mitarbeiter voraus, wenn im gesamten Unternehmen über alle Abteilungen hinweg eine einheitliche Denkweise etabliert wird.
Bei der Einführung von DevOps müssen die Teams unter Umständen völlig neu strukturiert werden – das erfordert ein starkes Commitment in allen Bereichen. Da es sich um eine Innovation handelt, sollte ebenfalls genügend Spielraum vorhanden sein, um Fehler zu machen. Denn DevOps ist kein fertiges Konzept, das ab Tag X seiner Einführung reibungslos funktioniert, sondern ein stetiger Lern-, Entwicklungs- und Veränderungsprozess. Dafür bedarf es auch ausreichend verfügbare Zeit. Die Einführung von DevOps kann recht lange dauern, ist doch der gesamte Entwicklungs- und Betriebsprozess davon betroffen.
Das sind Vorteile und Stärken von DevOps
Die Etablierung des DevOps-Ansatzes in einem Unternehmen ist mit einem großen Zeitaufwand verbunden. Denn die Umstellung ist keine Hauruck-Aktion, sondern ein sich stetig entwickelnder Prozess, der nicht nur die Mitarbeiter selbst, sondern auch die Art und Weise der Zusammenarbeit, betrifft. Im Kern basiert der DevOps-Ansatz laut John Willis, einem Veteranen der DevOps-Bewegung, auf fünf Grundprinzipien:
- Culture: gegenseitiges Vertrauen, Lernbereitschaft, ein stetiger Informationsfluss
- Automation: Automatisierung
- Lean: Transparenz, ganzheitliche Prozessoptimierung, Wertgenerierung und das Vermeiden von Verschwendung
- Measurement: einheitliche Bewegungskriterien
- Sharing: Teilen von Wissen
Eine derart gestaltete Zusammenarbeit spiegelt sich in den Vorteilen wider, die DevOps mit sich bringt. Alle Prozesse sind nicht nur transparent, sondern auch effizienter und robuster, wodurch sich direkt kürzere Release-Zyklen ergeben. Nicht zuletzt ist DevOps stark auf den Kunden ausgerichtet und bindet diesen aktiv in den Entwicklungsprozess mit ein.
Warum DevOps eine Rettung für Unternehmen sein kann
Mit DevOps lassen sich Strukturen und Prozesse in der Softwareentwicklung dahingehend optimieren, dass Entwicklung und Betrieb besser zusammenarbeiten. Bevor Unternehmen DevOps aber implementieren, müssen sie ihre bestehenden Prozesse zunächst einer kritischen Überprüfung unterziehen. Dieser Punkt ist keinesfalls zu unterschätzen und macht die Stärke des DevOps-Ansatzes aus.
„Mit DevOps lassen sich Strukturen und Prozesse in der Softwareentwicklung dahingehend optimieren, dass Entwicklung und Betrieb besser zusammenarbeiten.“
Daniel Huchthausen, Cloudogu
Eine Wertstromanalyse kann dabei helfen, einzelne Prozessschritte zu untersuchen und Probleme zu identifizieren, seien es Zeitfresser oder ineffiziente Abläufe. Nur, indem sich Unternehmen dieser Herausforderung stellen und bereit sind, Änderungen vorzunehmen, können sie mit dem Etablieren von DevOps das Kosten-Nutzen-Verhältnis optimieren, interne Prozesse verbessern und die Markteintrittszeit verkürzen. So läuft die Produktentwicklung deutlich ökonomischer und ist stärker auf den Kunden fokussiert.
Einer Studie von Jez Humble und Gene Kim zufolge, die auf der jährlichen Befragung des State of DevOps Report basiert, zeigt zudem, dass Entwicklerteams, die DevOps umsetzen, viel schneller und effizienter arbeiten und rascher auf Fehlersituationen reagieren.
Das liegt nicht zuletzt daran, dass durch die Einführung von DevOps alle Mitarbeiter dazu gebracht werden, bestehende Arbeitsweisen zu optimieren. Zudem verbessert sich die Flexibilität bei der Umsetzung von Projekten. Die Prozesse sind nicht vorgefertigt, so dass es möglich ist, bestehende Insellösungen von Methoden und Technologien im Produktlebenszyklus zu integrieren. DevSecOps treiben diesen Ansatz konsequent zu Ende, indem DevOps um die Variable IT-Sicherheit (Security) erweitert werden und mehr Sicherheit und Qualität gewährleisten.
Über den Autor:
Daniel Huchthausen ist Consultant bei Cloudogu. Er beschäftigt sich unter anderem mit Themen wie Qualitätssicherung, Testen oder PM-Methoden.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.