Wer in der IT tätig ist, kennt sicher das Dilemma zwischen den Softwareentwicklern (Developers -„Devs“) und dem IT-Betrieb (Operations – „Ops“). Die unterschiedlichen Ziele, Kommunikationsschwierigkeiten und gar Schuldzuweisungen (das sogenannte „Blame Game“) zwischen Development- und Operations-Abteilung waren Grund für die Bestrebungen, DevOps-Konzepte und -Techniken zu entwickeln.

Besser beraten sind Unternehmen also mit einem DevOps-Ansatz, der versucht, Konflikte zu vermeiden, indem die Kommunikation zwischen beiden Bereichen verbessert. Die Kombination zu „DevOps“ symbolisiert daher ein kommunikatives und damit sehr zielorientiertes Zusammenspiel zwischen der Softwareentwicklung und -auslieferung, sowie dem IT-Betrieb von Software. Doch dazu gleich mehr …

 

Immer schneller – Agilität ist der Erfolgsfaktor

Softwareentwicklung geht meist einher mit neuen oder verbesserten Prozessen, neuen Dienstleistungen und Produkten in Unternehmen. Früher wurde Software sehr streng nach Stufenmodellen wie das V- oder das Wasserfallmodell entwickelt. So bestand das klassische Vorgehen aus den Phasen Planung, Analyse, Design, Entwicklung, Test und Auslieferung. Eine Rückkopplung beziehungsweise systemische iterative Schleifen wurden dann im Laufe der Zeit hinzugefügt. So zum Beispiel das Spiralmodell und das darauf aufsetzende Modell des Rapid Application Development. Diese Iterationen sorgen für einen engen Abstimmungsprozess und damit kontinuierlichen Verbesserungsprozess innerhalb der Entwicklung.

Die Komplexität und die Dynamik in Unternehmen nimmt immer mehr zu. Vor diesem Hintergrund werden bei der Softwareentwicklung heute agile Methoden wie Extreme Programming (XP) oder Scrum eingesetzt. Auf Basis des Rapid Application Development-Ansatzes dienen diese Methoden dazu, dass neue Anforderungen an Software und Produkte schneller in den Softwareentwicklungsprozess integriert werden können. Dadurch sind Entwicklung, Ausführung und Testen sehr eng miteinander verbunden und Anpassungen können schnell umgesetzt, getestet und abgenommen werden.

Scrum-Prozess [Lakeworksderivative work: Sebastian Wallroth (talk)

So können neue Produktfunktionalitäten bei Nutzung von Scrum innerhalb von einer bis vier Wochen als Sprint implementiert werden. Diese Schnelligkeit und Agilität korrespondiert genau mit den Anforderungen wie eine rasche Abbildung und Umsetzung von neuen oder modifizierten Funktionalitäten seitens des Auftraggebers.

The missing link – Entwicklung und Auslieferung

Nach der Softwareentwicklung kommen die Auslieferung und der Betrieb, Deployment und Operations. Hier stoßen zwei Ziele aufeinander. Der Entwickler will – gerade auch vor dem Hintergrund einer schnellen und agilen Entwicklung – dem Kunden rasch neue Funktionalitäten zur Verfügung stellen. Im IT-Betrieb bedeutet hingegen jede Änderung auch ein Risiko für Fehler oder gar ein Ausfall des IT-Systems.

Die agilen Prinzipien beziehen sich primär auf die Softwareentwicklung, somit sind die beiden Bereiche Entwicklung und Betrieb getrennt. Während in der Entwicklung schnell und flexibel gearbeitet wird, orientiert sich der IT-Betrieb häufig an den klassischen Methoden des Software-Engineerings.

Eine erste Konferenz, die sowohl die Softwareentwicklung als auch IT-Betrieb inhaltlich thematisierte, fand im Jahre 2009 statt. Die Veranstaltung „DevOpsDays“ hatte zum Ziel, Möglichkeiten und Methoden zu diskutieren und zu entwickeln, um die Softwareentwicklung und den IT-Betrieb zusammenzubringen. Hieraus ist der Begriff DevOps entstanden, welcher aus Dev (Development – Entwicklung) und Ops (Operations – IT-Betrieb) besteht und seit dieser Konferenz für neue gemeinsame Methoden, Techniken und Werteverständis steht.

Website der ersten DevOps-Konferenz 2009

Der Ansatz von DevOps beschreibt ein effektives und effizientes Zusammenarbeiten der Bereiche Development, Operations und auch Qualitätssicherung:

Zusammenspiel Softwareentwicklung und IT-Betrieb (in Anlehnung und Erweiterung zu Link)

Dabei umfasst DevOps zwei Dimensionen, die maßgeblich zur Steigerung der Softwarequalität, der Entwicklungs- und Auslieferungsgeschwindigkeit sowie der Kommunikation zwischen den beteiligten Abteilungen beitragen:

  • Automatisierung von Entwicklungs- und Betriebsaufgaben
  • Etablierung einer Kultur zur agilen Zusammenarbeit

Somit ist DevOps deutlich mehr als ein Konzept auf technischer Ebene, denn es betrifft nicht nur die Kommunikationsebene der Technikabteilungen. Die Schaffung einer neuen Kommunikationskultur hat Auswirkungen auf die gesamte Unternehmenskultur. Denn die Umsetzung des DevOps-Ansatzes gelingt nur, wenn offene und kooperative Kommunikation im gesamten Unternehmen gelebt wird.

Automatisierung

Zentrales Element innerhalb des DevOps-Ansatzes ist die Automatisierung von Prozessen in der Schnittmenge zwischen Entwicklung und IT-Betrieb.

Beispielsweise können hier automatisierte Code-Analysen sowie Integrations- und Systemtests durchgeführt werden. Auch kann die Installation in die Produktionsumgebung automatisiert werden. Wichtig sind auch Tests von nicht funktionalen Eigenschaften wie Verfügbarkeit und Performance des Systems, hier können automatische Lasttests entsprechende Unterstützung leisten.

Diese Entwicklung von manuellen hin zu automatisierten Prozessen ist der Kern von Infrastructure as Code (IAC). Das Konzept von IAC erinnert an eine Skript-Programmierung, um bestimmte IT-Prozesse zu automatisieren. So kann eine IAC-Umgebung beispielsweise selbständig einen Datenbankserver installieren, überprüfen und automatisiert Datenbank anlegen und auch managen.

Neben der Automatisierung gewinnt die kontinuierliche Integration, das Continuous Delivery, von bestimmten Funktionalitäten an Bedeutung. Das Feature Toggle, eine Methodik innerhalb von DevOps, beschreibt die Möglichkeit, bestimmte Features im Betrieb des Systems hinzuzuschalten, zu testen und letztendlich damit das Live-System zu erweitern.

Das zeigt sehr gut, wie genau in der Schnittstelle zwischen Softwareentwicklung und Betrieb die Agilität und Stabilität Hand in Hand gehen können.

Kommunikation

Neben den technischen Möglichkeiten der Automatisierung gehört auch die Kommunikation zwischen beiden Abteilungen zum Kern des DevOps-Ansatzes. Gegenseitiger Respekt ist die Basis für Vertrauen und gutes Zusammenwirken. Nur so kann übergreifend im Sinne des Kunden gedacht und gehandelt werden. Das gemeinsame Ziel besteht letztendlich darin, dass Projekt und Software funktionieren. Und nicht in singulären guten Ergebnissen in Softwareentwicklung oder IT-Betrieb.

Häufig werden in dem Kontext auch gemeinsame Leitbilder mit Selbstverpflichtungen und zur Etablierung gemeinsamer Werte entwickelt.

Spaß für Alle – der Weg zu BizDevOps

Patrick Debois, der die erste DevOps-Konferenz 2009 ins Leben rief, fasste das Dilemma und das Ziel von DevOps pragmatisch zusammen: „And remember it‘s all about putting the fun back into IT!“

Das Konzept von DevOps kann noch weiter gedacht werden. So kann die Philosophie der Zusammenarbeit und Automatisierung für das gesamte Unternehmen angewendet werden. BizDevOps beschreibt einen Organisationsansatz, der sich an den wertschöpfenden Prozessen und IT-Prozessen konsequent orientiert. Nicht Abteilungen und festgelegte Prozesse stehen im Vordergrund, sondern vielmehr abteilungsübergreifende Teams des Unternehmens. Sie sorgen gemeinsam für die Wertschöpfung und den Mehrwert für den Kunden. So stehen unter anderem folgende Prinzipien über all diesen Aktivitäten:

  1. Menschen und Kommunikation sind wichtiger als festgelegte Prozesse.
  2. Funktionierende Software ist das gemeinsame Ziel.
  3. Methoden des agilen Projektmanagements sorgen für nötige Flexibilität und Schnelligkeit.

Somit ist BizDevOps die Skalierung von DevOps auf das gesamte Unternehmen.
Genau solche Organisationskonzepte ermöglichen ein Denken und Umsetzen einer Digitalen Transformation.

> DEVOPS-REIFEGRADMODELL
Interview mit Roberto Riehle, Business Developer

Quellen:

https://public.centerdevice.de/9f858174-53ae-4202-8195-75401fdb999c

https://www.jedi.be/blog/2009/11/15/devopsdays09-two-weeks-later/