Die Zeiten Top-down-gesteuerter Entwicklungsprojekte für Software sind vorbei. Um möglichst sofort einsetzbare Lösungen auf den Markt zu bringen, haben sich vor allem zwei Methoden durchgesetzt: „Agile“, also Softwareentwicklung mit agilen Projektmanagementmethoden, und DevOps als Zusammenarbeit von Softwareentwicklern und Mitarbeitern aus dem operativen Betrieb. Beide haben viele Gemeinsamkeiten – aber auch einige Unterschiede.
Agile und DevOps – eine kurze Definition
Zunächst lohnt sich ein Blick auf die Definition beider Konzepte – und ihre Gemeinsamkeiten. Denn sowohl Agile als auch DevOps folgen bestimmten Schritten, Richtlinien, Mechanismen und festgelegten Prozessen. Und beide haben eine schnellere und bessere Entwicklung zweckorientierter Softwarelösungen zum Ziel.
„Agile“ begegnet einem heute häufig als moderner Ansatz für das Projektmanagement. Seinen Ursprung hat das Konzept in der Softwareentwicklung. Die Grundidee ist schnell erklärt: Das komplette Team wird in kleine Einheiten mit klar umrissenen Aufgaben unterteilt. Eine Gruppe befasst sich beispielsweise mit dem Design der Benutzeroberfläche, eine andere mit der Anbindung an bestehende Lösungen. Durch eine Iteration kurzer Zeitintervalle, sogenannte „Sprints“, kommt das große Team in kurzen Abständen zusammen, um sich ein Gesamtbild zum Projektfortschritt zu machen. Dort sind auch die einzelnen Ergebnisse abzustimmen und anzupassen.
DevOps – per Definition als Kombination aus „Development“ und „Operations“ konzipiert – hat ebenfalls eine beschleunigte Markteinführung zum Ziel. Auch hier stehen Kommunikation, Austausch und Kollaboration im Mittelpunkt. Die Grundidee ist, Softwareentwickler und deren Kollegen in den Fachabteilungen zu „Komplizen“ zu machen, um die gewünschte Lösung schon im Entstehungsprozess ideal an die Bedürfnisse und Anforderungen der Nutzer anzupassen. Simpel gesagt geht es darum, das im operativen Betrieb erworbene Fachwissen direkt und ohne Umwege in Code zu überführen. Statt starrer Release-Zyklen wird die Software durch Continuous Integration/Continuous Delivery (CI/CD) permanent adaptiert.
Agile vs. DevOps – die Unterschiede
Agile und DevOps haben also einige Gemeinsamkeiten, doch es gibt auch Unterschiede. Während Agile-Teams hauptsächlich bei der Entwicklung konkreter Softwarelösungen mit festem Release zusammenarbeiten, geht es bei DevOps auch um den anschließenden laufenden Betrieb. Diese grundsätzliche Differenzierung führt zu verschiedenen Anforderungen und Ausprägungen in mehreren Bereichen.
Teamstruktur
Der erste Unterschied liegt in der Größe und der Zusammensetzung der beteiligten Teams. Agile setzt auf kleine Teams von drei bis acht Personen, die die Kompetenzen sowohl von Generalisten als auch von Spezialisten auf sich vereinen. Ihr Ziel ist die schnelle Entwicklung eines bestimmten Produkts – häufig in Zusammenarbeit mit dem Endkunden. Die geringe Anzahl der Teammitglieder und fest definierte Zuständigkeiten sind Voraussetzung für das iterative Vorgehen in Sprints und die zeitnahe Entwicklung eines ersten funktionierenden Minimal Viable Product (MVP) als „Prototyp“.
Da sich DevOps in der Regel nicht an vorgegebenen Release-Zeitfenstern orientiert, sondern mit kontinuierlichen Anpassungen arbeitet, geht es weniger um die möglichst schnelle Entwicklung eines MVP. Es steht vor allem ein stabil laufender Betrieb im Fokus, für den die Entwickler und das Operations-Team die Expertise möglichst vieler Fachbereiche brauchen. Jeder relevante Experte sollte also auch mitreden, weshalb das Team bei DevOps personell und inhaltlich wesentlich breiter aufgestellt ist als bei Agile – hier arbeiten bis zu zwölf oder mehr Personen zusammen.
Dokumentation
Der entscheidende Aspekt bei Agile ist die Entwicklungsgeschwindigkeit. Es geht darum, möglichst schnell erste Ergebnisse zu liefern – und dabei bleibt die genaue Dokumentation manchmal auf der Strecke. Das ist teamintern aufgrund der geringen Mitgliederzahl und kurzer Kommunikationswege meist kein Problem, kann bei einer Übergabe an andere Teams – beispielsweise zur konkreten Bereitstellung – allerdings zu Schwierigkeiten führen.
Im Gegensatz dazu ist eine genaue Dokumentation das A und O für einen funktionierenden DevOps-Ansatz. Denn nur, wenn das Dev-Team alle Code-Anpassungen im Verlauf akribisch festhält, können die mit ihnen im ständigen Austausch stehenden Ops-Kollegen dafür sorgen, dass alles unterbrechungsfrei läuft. Gerade bei komplexerer Software ist das nicht immer einfach, weshalb zunehmend Automatisierungslösungen zum Einsatz kommen, die eine lückenlose Dokumentation sicherstellen.
Kommunikation
Dass Agile festgelegten Abläufen folgt, wirkt sich auch auf die Kommunikation innerhalb der Teams aus. Zwischen den Sprints gibt es in regelmäßigen Abständen auch Meetings, in denen neue Ergebnisse besprochen und die nächsten Schritte zum Produkt geplant werden. Bei „Daily Stand-ups“, Planungs- und Retrospektiv-Meetings steht der Austausch auf persönlicher Ebene im Mittelpunkt. Er ist ein wesentlicher Grundstein im agilen Projektmanagement.
Auch bei DevOps kommunizieren die Teams direkt miteinander, allerdings nicht nur über Meetings und Gespräche. Ein großer Teil des Austauschs dreht sich um Code-spezifische Informationen, festgehalten in Dokumenten – etwa zu Spezifikationen oder Design. Damit DevOps als Konzept funktioniert, darf es hier keine Missverständnisse zwischen den Teams geben, denn sonst entstehen Probleme bei der kontinuierlichen Integration und Bereitstellung (CI/CD).
Welche Rolle die Cloud für Agile und DevOps spielt
Bei allen Unterschieden herrscht zwischen Agile und DevOps zumindest Einigkeit hinsichtlich der optimalen Betriebsumgebung – denn in beiden Fällen ist die Cloud unschlagbar. Agilen Ansätzen spielen beispielsweise die einfache Vernetzung und Kommunikation mit Cloud-basierten Tools in die Hände. Auf einer einheitlichen Plattform haben die Teams den aktuellen Status des Projekts immer im Blick und können sich schnell und einfach austauschen, per Chat, Video-Call oder über andere Kanäle.
Auch für DevOps eignen sich die Cloud und ihr breites Angebot an Produkten und Services aus mehreren Gründen hervorragend. Neben umfangreichen Automatisierungslösungen, die CI/CD effizienter machen, profitieren Unternehmen von flexiblen Kostenmodellen, bei denen – etwa via Spot-Instanzen – ausschließlich nach Nutzung abgerechnet wird. Zudem entfallen aufwendige Wartungsaufgaben, sowohl Dev als auch Ops können sich also voll auf die Entwicklung und Bereitstellung relevanter Funktionen konzentrieren. Und entsprechende Cloud-Services erlauben den Aufbau eines sich selbst regulierenden und automatisch skalierenden Gesamtsystems, was den Prozess weiter beschleunigt und zu einer kürzeren Time to Market führt.
Ihr individuelles Modell in der Cloud mit Syntax
Der Vergleich Agile vs. DevOps zeigt: Beide Ansätze unterscheiden sich in vielen Aspekten, doch in den meisten Fällen heißt es nicht entweder-oder. Je nach Projekt, Zielsetzung und Unternehmensstruktur kann es sogar sinnvoll sein, beide Konzepte zu kombinieren. Genauso individuell sollte dann auch die Cloud-Umgebung sein, in der die Teams mit verschiedenen Tools arbeiten. Deshalb: Sprechen Sie mit unseren Experten, und wir entwickeln gemeinsam mit Ihnen eine maßgeschneiderte Lösung, bei der sämtliche Vorteile von Agile und DevOps zum Tragen kommen.
mit unserem Experten!
Whitepaper