DevOps vs klassische Entwicklung: Versiegt der Wasserfall?
DevOps gilt als überlegene Methode, wenn es um die Entwicklung und den Betrieb von Software geht. Ihr gegenüber stehen unter anderem die etablierten Wasserfall-Methoden. Haben sie ausgedient?
DevOps bezeichnet eine Methodik im Bereich Softwareentwicklung (Development) und IT-Betrieb (Operations). Ihr Ziel ist eine engere und bessere Zusammenarbeit zwischen Entwicklungs- und Betriebsteams. Die aus «Development» und «Operations» zusammengesetzte Wortneuschöpfung signalisiert diese Nähe sprachlich. Das Prinzip soll eine schnellere und effizientere Bereitstellung von Software ermöglichen.
Wie unterscheidet sich DevOps von klassischer Entwicklung?
Im Gegensatz zur herkömmlichen Softwareentwicklung arbeiten Entwicklung und Betrieb in DevOps-Teams eng zusammen. Hiervon profitiert die Entwicklungsgeschwindigkeit, das Softwareengineering wird effizienter.
DevOps-Teams nutzen automatisierte Tools und Prozesse, um die Bereitstellung von Software schneller und einfacher zu machen. Dies ist ein Unterschied zur klassischen Entwicklung. Zusätzlich setzen sie agile Methoden ein, um schnell auf Änderungen reagieren und die Software fortlaufend verbessern zu können.
Die klassische Entwicklung ist im Vergleich hierzu häufig hierarchischer aufgestellt und arbeitet langsamer. Entwicklung und Betrieb sind in diesem Modell voneinander getrennt – man spricht in diesem Zusammenhang auch von Silos. Geben beispielsweise die Kolleginnen und Kollegen aus der Entwicklung Informationen über Softwarefehler nicht an das Betriebsteam weiter, kommt es schnell zu Unterbrechungen im Arbeitsablauf und der Produktivität. Somit dauert es länger, bis Änderungen an der Software vorgenommen werden können.
Der traditionelle Entwicklungsansatz nutzt Wasserfall-Methoden, bei denen jede Phase der Entwicklung abgeschlossen sein muss, bevor die nächste beginnen kann. Ein solches lineares Modell bietet für Product Owner Vorteile wie eine einfache Struktur dank klar abgegrenzter Phasen. Andererseits leidet jedoch die Flexibilität und nicht immer reihen sich die einzelnen Phasen auch wirklich so reibungslos aneinander, wie es die Theorie suggeriert.
Ein etwas ungewöhnlicher musikalischer Vergleich illustriert das: Klassische Entwicklung und Betrieb sind dabei vergleichbar mit einer Reihe talentierter Musikerinnen und Musiker, die in einem Orchester in festgelegter Reihenfolge nacheinander spielen. Eine DevOps-Umgebung kann man sich eher wie eine harmonisch funktionierende Band vorstellen – Entwicklung und IT-Betrieb spielen dabei zwar ebenfalls unterschiedliche Instrumente, tun das aber gleichzeitig und erzeugen genau damit einen Sound, der den Kunden gefällt.
Tipp: Sehen Sie auch unser Webinar mit DevOps-Experte Alex Lichtenberger an und erfahren Sie, wie Sie DevOps erfolgreich in der Praxis einführen
Etwas näher betrachtet, ergeben sich sechs zentrale Bereiche, an denen die Unterschiede zwischen DevOps und klassischer Entwicklung sichtbar werden:
1 Zusammenarbeit
Bei der traditionellen Entwicklung arbeiten die Entwicklungsteams in der Regel getrennt von den IT-Betriebsteams. Diese Silos erzeugen Kommunikationsprobleme und Verzögerungen. Im schlimmsten Falle bewirken sie sogar ein Konkurrenzdenken zwischen den beiden Bereichen. Der DevOps-Ansatz fördert eine Kultur der Zusammenarbeit und Integration. Da Entwicklung und Betrieb gemeinsam für den gesamten Lebenszyklus der Software verantwortlich sind, steigt das Commitment für das Softwareprodukt in beiden Teams. Davon profitieren letztlich Softwarequalität, Entwicklungsgeschwindigkeit und Service.
2 Agilität
DevOps geht häufig Hand in Hand mit der agilen Softwareentwicklung. Wo sich Freigabeprozesse in der traditionellen Softwareentwicklung langwierig und starr gestalten können, ergänzt sich DevOps mit agilen Methoden wie Scrum oder Kanban.
Das DevOps-Prinzip automatisiert die Softwarebereitstellung unter anderem durch Continuous Integration (CI) und Continuous Deployment (CD).
CI automatisiert die Integration von Codeänderungen mehrerer Softwareengineers in ein zentrales Repository, in dem Builds und Tests laufen. CD sorgt für die automatisierte Freigabe von Entwicklungsänderungen aus dem Repository in die Produktionsphase und ermöglicht die direkte Nutzung. Das beschleunigt Iterationen und verkürzt Entwicklungszyklen. Hier spricht man von Continuous Delivery.
3 Automatisierung
Die Automatisierung von Abläufen spielt bei DevOps ebenfalls eine vergleichsweise grössere Rolle. Sie minimiert manuelle Schritte in Entwicklungs- und Betriebsprozessen und reduziert die Gefahr menschlicher Fehler.
4 Monitoring und Feedback
Überwachung und Feedback laufen in traditionellen Softwareprojekten häufig getrennt von der Entwicklung. DevOps-Ansätze inkludieren beides bereits in den Entwicklungsprozess. Die Entwicklerinnen und Entwickler können mögliche Probleme auf diese Weise schneller erkennen und beheben.
5 Infrastruktur als Code
Auch unterstützt die DevOps-Methodik den Einsatz von Infrastructure as Code (IaC). Hierbei wird die Infrastruktur, auf der die Software läuft, in konfigurationsbasierten Dateien beschrieben. Entsprechende Ressourcen für den Betrieb stehen so konsistent und automatisiert bereit.
6 Kundenorientierung
Und auch hinsichtlich ihres Serviceangebots profitieren Unternehmen von DevOps. Die Entwicklungsabteilungen können durch kontinuierliches Feedback von Kundinnen und Kunden zeitnah auf neue Anforderungen und Anpassungen reagieren. Das verbessert die User Experience, die einen zunehmend wettbewerbsrelevanten Aspekt darstellt.
Welche Vorteile bietet DevOps im Vergleich zur klassischen Entwicklung?
Aus diesen Unterschieden zwischen der traditionellen und der agilen Softwareentwicklung ergeben sich fünf zentrale Vorteile von DevOps:
Schnellere Bereitstellung: Die engere Zusammenarbeit zwischen Entwicklungs- und Betriebsteams gepaart mit automatisierten Tools und Prozessen beschleunigt die Bereitstellung von Software. Oder anders: Die Band schreibt einen viralen Hit in Rekordgeschwindigkeit.
Höhere Softwarequalität: Die Kombination aus automatisierten Tests sowie kontinuierlicher Integration und Bereitstellung verbessert die Qualität der Software. Das Ergebnis ist die bestmögliche Studioaufnahme ohne nervige Störgeräusche.
Bessere Zusammenarbeit: Der DevOps-Ansatz unterstützt die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams durch eine vereinfachte Kommunikation und ein besseres Verständnis der Anforderungen. Die Band versteht sich also nahezu wortlos.
Stärkere Kundenzentrierung: Feedbackschleifen ermöglichen eine kontinuierliche Weiterentwicklung der Software, die echte und konkrete Anforderungen der Kundinnen und Kunden berücksichtigt. Die Band probt und entwickelt sich fortwährend, um ihren Fans bei jedem Konzert die beste Show zu bieten.
Mehr Flexibilität: Da DevOps-Teams unter anderem agile Arbeitsweisen nutzen, können sie kurzfristig auf Änderungen reagieren, die Software schnell weiterentwickeln und permanent verbessern. Ändert sich die Stimmung im Publikum, kann die Band darauf eingehen und ihre Setlist entsprechend kurzfristig anpassen.
Geringere Ausfallzeiten: Dank automatisierter Tests und kontinuierlicher Integration sowie Bereitstellung können die Teams Fehler schneller erkennen und beheben, was die Ausfallzeiten von Software reduziert. Technische Pausen während der Show reduzieren sich dadurch auf ein Minimum.
Fasst man diese Erkenntnisse zusammen, wird klar, dass ein DevOps-Ansatz in vielen Fällen die richtige Wahl ist. Traditionelle Methoden wie das Wasserfall-Prinzip mögen bei Projekten, die eine sequenzielle und vorhersehbare Vorgehensweise benötigen, sinnvoll erscheinen.
Doch gerade angesichts sich immer schneller entwickelnder Produktlebenszyklen und dem fortschreitenden Wunsch nach Individualisierbarkeit sind auch Software-Anbieter gefragt, diesen Ansprüchen seitens ihrer Kundinnen und Kunden gerecht zu werden. Und hier ist das DevOps-Konzept mit seinen agilen Ansätzen unschlagbar. Kontinuierliche Integration, Bereitstellung und Feedback-Schleifen zeichnen es aus und machen es zum agilen Schnellboot, dass der Kraft eines Wasserfalls schlichtweg überlegen ist.
Transformieren Sie Ihre IT: Starten Sie jetzt Ihre DevOps-LernreiseDevOps ist der Goldstandard für mehr Effizienz, bessere Produkte und mehr Agilität in der Softwareentwicklung. Stärken Sie jetzt Ihre DevOps-Kompetenzen in unseren praxisnahen Kursen und bereiten Sie sich optimal auf die Zertifizierung durch das DevOps Institute vor. |
DevOps ist der Goldstandard für mehr Effizienz, bessere Produkte und mehr Agilität in der Softwareentwicklung. Stärken Sie jetzt Ihre DevOps-Kompetenzen in unseren praxisnahen Kursen und bereiten Sie sich optimal auf die Zertifizierung durch das DevOps Institute vor.