Close

Was ist DevOps-Kultur?

Wie die DevOps-Kultur dazu beiträgt, Menschen, Prozesse und Tools auf eine einheitlichere Kundenorientierung auszurichten

Profilbild von Tom Hall
Tom Hall

DevOps-Fan und -Anwender


Zusammenarbeit

DevOps ist ein agiler Ansatz für organisatorische Veränderungen, der darauf abzielt, Silos und traditionelle Gräben zwischen Teams zu überbrücken und neue Prozesse zu etablieren, die eine bessere Zusammenarbeit ermöglichen. Während DevOps durch neue Tools und agile Engineering-Praktiken ermöglicht wird, reichen diese nicht aus, um die Vorteile von DevOps zu nutzen. Ohne die richtige Denkweise, Rituale und Kultur ist es schwierig, von DevOps vollumfänglich zu profitieren.

Die Mitarbeiter und die Kultur sind die Hauptfaktoren für eine erfolgreiche DevOps-Implementierung.
- Atlassian-Umfrage zu DevOps-Trends 2020

Was ist DevOps-Kultur?


Im Wesentlichen beinhaltet die DevOps-Kultur eine engere Zusammenarbeit zwischen Entwicklungs- und Betriebsteams und eine gemeinsame Verantwortung für die Produkte, die sie entwickeln und warten. Dies hilft Unternehmen, ihre Mitarbeiter, Prozesse und Tools auf eine einheitlichere Kundenorientierung auszurichten.

Dazu gehört die Kultivierung multidisziplinärer Teams, die für den gesamten Lebenszyklus eines Produkts verantwortlich sind. DevOps-Teams arbeiten autonom und schreiben betrieblichen Anforderungen bei der Softwareentwicklungskultur, dem Workflow und dem Toolset die gleiche Bedeutung wie Architektur, Design und Entwicklung zu. Dass Entwickler auch für ihre Produkte weiterhin verantwortlich sind, bringt sie näher an die Benutzer und verbessert das Verständnis der Benutzeranforderungen. Da die Betriebsteams stärker in den Entwicklungsprozess involviert sind, können sie Wartungsanforderungen und Kundenbedürfnisse einfließen lassen, um bessere Produkte zu entwickeln.

Im Mittelpunkt der DevOps-Kultur steht eine verstärkte Transparenz, Kommunikation und Zusammenarbeit zwischen Teams, die traditionell in Silos arbeiteten. Es müssen jedoch wichtige kulturelle Veränderungen stattfinden, um diese Teams näher zusammenzubringen. DevOps ist ein Wandel der Unternehmenskultur, bei dem kontinuierliches Lernen und kontinuierliche Verbesserung im Vordergrund stehen, insbesondere durch Teamautonomie, schnelles Feedback, hohes Einfühlungsvermögen und Vertrauen sowie teamübergreifende Zusammenarbeit.

Achtsamkeit-Symbol
Zugehöriges Material

Mache dir eine kundenorientierte Denkweise zu eigen

Pokal-Symbol
Zugehöriges Material

Erfahre mehr über die Vorteile von DevOps

DevOps bedeutet gemeinsame Verantwortung. Entwicklungs- und IT-Betriebsmitarbeiter sollten gleichermaßen für den Erfolg oder Misserfolg eines Produkts verantwortlich sein. Von Entwicklern wird erwartet, dass sie das Produkt nicht nur erstellen und dann an den IT-Betrieb übergeben – es wird erwartet, dass sie einen Teil der Verantwortung für die Überwachung des Produkts während seiner gesamten Lebensdauer tragen, ganz nach dem Prinzip "You build it, you run it" (wer die Software entwickelt, ist auch dafür verantwortlich). Sie testen und betreiben Software und arbeiten enger mit QS- und IT-Ops-Teams zusammen. Wenn sie die Herausforderungen des IT-Betriebs kennen, arbeiten sie mit größerer Wahrscheinlichkeit an der Vereinfachung von Deployment und Wartung. Genauso kann das IT-Betriebsteam, wenn es die Geschäftsziele des Systems kennt, mit den Entwicklern gemeinsam die betrieblichen Anforderungen eines Systems definieren und Automatisierungstools einsetzen.

Autonome Teams sind ein weiterer wichtiger Aspekt von DevOps. Damit die Entwicklungs- und Betriebsteams effektiv zusammenarbeiten können, müssen sie Entscheidungen treffen und Änderungen ohne einen umständlichen und langwierigen Genehmigungsprozess umsetzen. Hierfür muss Vertrauen in die Teams gesetzt und ein Umfeld geschaffen werden, in dem niemand Angst vor dem Scheitern hat. Diese Teams sollten über die richtigen Prozesse und Tools verfügen, um Entscheidungen für jede Risikostufe für den Kunden schneller und einfacher zu treffen.

Beispielsweise sind in einem typischen Entwicklungs-Workflow mehrere Mitwirkende aus verschiedenen Teams zum Deployment von Codeänderungen erforderlich. Der Entwickler nimmt eine Codeänderung vor und verschiebt sie in ein Quellcodeverwaltungs-Repository, ein Build Engineer erstellt den Code und stellt ihn in einer Testumgebung bereit, ein Produktinhaber aktualisiert den Status der Aufgabe in einem Tool zur Vorgangsverfolgung usw. Ein autonomes Team nutzt Tools, die diese Prozesse automatisieren, sodass das Pushen von neuem Code die Erstellung und das Deployment einer neuen Funktion in einer Testumgebung auslöst und das Tool zur Vorgangsverfolgung automatisch aktualisiert wird.

Ein Team wird bei seiner Arbeit behindert, wenn es selbst für triviale Infrastrukturänderungen, wie z. B. einen neuen DNS-Eintrag, einem separaten Betriebsteam ein Ticket senden muss. Eine Aufgabe, die in Sekunden erledigt werden könnte, dauert dann Tage oder Wochen. Ein autonomes Team kann solche Änderungen selbst umsetzen, indem ein Teammitglied über die entsprechenden Fähigkeiten und Erfahrungen verfügt, oder indem es Zugang zu Self-Service-Tools hat.

Eine DevOps-Teamkultur legt Wert auf schnelles Feedback, das zur kontinuierlichen Verbesserung eines einheitlichen Entwicklungs- und IT-Betriebsteams beitragen kann. In einer Umgebung, in der sich die Entwickler- und IT-Betriebsteams in isolierten Silos befinden, wird das Feedback über die Leistung und Stabilität von Anwendungssoftware in der Produktion oft nur langsam weitergegeben, wenn es überhaupt bis zum Entwicklerteam vordringt. DevOps stellt sicher, dass Entwickler das schnelle Feedback erhalten, das sie benötigen, um Anwendungscode schnell zu iterieren und zu verbessern, da DevOps die Zusammenarbeit von Mitgliedern des IT-Betriebsteams bei der Entwicklung und Implementierung von Strategien zur Anwendungsüberwachung und -berichterstattung erfordert. Beispielsweise ermöglicht jedes ausreichend leistungsfähige Tool für Continuous Integration das automatisierte Erstellen und Testen neuer Code-Pushes und gibt dem Entwickler sofortiges Feedback zur Qualität seines Codes.

Automatisierung ist für die DevOps-Kultur von wesentlicher Bedeutung, da sie eine hervorragende Zusammenarbeit ermöglicht und Ressourcen freisetzt. Die Automatisierung und Integration der Prozesse von Softwareentwicklungs- und IT-Teams hilft ihnen, Software schneller und zuverlässiger zu erstellen, zu testen und zu releasen.

Welche Vorteile bietet die DevOps-Kultur?


Die offensichtlichsten und wirkungsvollsten Vorteile einer DevOps-Kultur sind optimierte, häufige und qualitativ hochwertige Software-Releases. Dies erhöht nicht nur die Unternehmensleistung, sondern steigert auch die Zufriedenheit der Mitarbeiter.

Laut dem Buch "Accelerate: Building and Scaling High Performing Technology Organizations" fördert eine DevOps-Kultur ein hohes Maß an Vertrauen und Zusammenarbeit, führt zu einer besseren Entscheidungsfindung sowie zu einer höheren Zufriedenheit am Arbeitsplatz.

Die Einführung einer DevOps-Kultur ist der Schlüssel zum Aufbau einer leistungsstarken Entwicklungsabteilung, ohne die Zufriedenheit der Mitarbeiter zu beeinträchtigen – also ein Gewinn für alle Beteiligten. Für einen Entwickler gibt es nichts Schöneres als das Gefühl, häufig und mühelos stabile, leistungsstarke Software bereitzustellen und auszuführen, die die Benutzer zufrieden stellt, während sich die Führungskräfte über die verbesserten Geschäftsergebnisse freuen.

Welche Herausforderungen gibt es?


Für die vollständige Einführung einer DevOps-Kultur müssen die einzelnen Mitarbeiter und Teams in der Regel wesentliche Änderungen an ihrer Arbeitsweise vornehmen, daher muss die oberste Führungsetage mitziehen.

Anstrengungen auf den tieferen Unternehmensebenen sind oft ein wichtiger Ausgangspunkt, um das Management und die Führungsebene für eine DevOps-Transformation zu gewinnen. Oft ist das überzeugendste Argument für eine breitere Einführung von DevOps, wenn einige einzelne Mitarbeiter oder kleine Teams einen DevOps-Ansatz einführen und damit erfolgreich sind.

Das hohe Maß an Autonomie und Vertrauen, das für eine DevOps-Kultur typisch ist, kann schwierig zu kultivieren sein, wenn es in der Vergangenheit Konflikte zwischen den beteiligten Personen oder Teams gab. Je isolierter die Teams vor der Einführung eines DevOps-Ansatzes arbeiteten, desto schwieriger wird es sein, Beziehungen aufzubauen.

Veränderung ist nicht leicht. Selbst in Umgebungen, in denen ein hohes Maß an Harmonie zwischen den Mitarbeitern und Teams besteht, kann es schwierig sein, die Akzeptanz und Bereitschaft für zusätzliche Anstrengungen zu fördern, wenn die Vorteile der Veränderungen nicht klar kommuniziert und verstanden werden.

Verständlicherweise greifen technologieorientierte Unternehmen häufig sofort auf Tools und Technologien zurück, um geschäftliche Herausforderungen zu lösen. Es gibt zwar Tools und Technologien, die einem Unternehmen beim Übergang zu einem DevOps-Ansatz helfen können, allerdings wird der Austausch von Tools und Technologien, ohne die Kultur zu verändern, oft als "Cargo-Cult-DevOps" bezeichnet, da die Fassade geändert wird, ohne die Schwachstellen im Fundament zu beheben.

Überlegungen zum Übergang zur DevOps-Kultur


Offene Kommunikation

Eine der grundlegendsten Herausforderungen, die mit DevOps angegangen werden soll, sind Wissens-, Erfahrungs- und Arbeitssilos in verschiedenen Unternehmenseinheiten. Wenn die Programmierer, die Code schreiben, und die Systemadministratoren, die ihn bereitstellen und warten, nicht kommunizieren, entstehen wahrscheinlich Ineffizienzen.

Die Möglichkeit, Fehler zu machen

Viele Unternehmen, Teams und Einzelpersonen üben außerordentlichen Druck auf sich und einander aus, niemals Fehler zu machen. Wenn Scheitern keine Option ist, ist es weniger wahrscheinlich, dass ein Mitarbeiter oder ein Team einen neuartigen Ansatz zur Lösung eines Problems oder zur Entwicklung innovativer Funktionen ausprobiert.

Diese Denkweise spiegelt sich in der bisherigen Besessenheit wider, alles von der mittleren Zeit zwischen Ausfällen (MTBF) bis hin zur mittleren Zeit bis zur Wiederherstellung" (MTTR) zu messen. Für die MTBF werden z. B. Tools zur Ursachenanalyse genutzt, um die Ursache von Fehlern zu identifizieren und zu verhindern, dass sie erneut auftreten. Die MTTR spiegelt die Auffassung wider, dass es sich bei Softwareanwendungen um komplexe Systeme handelt, die auf unvorhersehbare Weise ausfallen können, und legt den Schwerpunkt auf eine schnelle Wiederherstellung, wenn sie ausfallen.

Retrospektiven ohne Schuldzuweisungen sind ein geläufiges Merkmal einer DevOps-Kultur. Die Ergebnisse können verbessert werden, wenn sich ein Team am Ende eines Sprints oder Projekts trifft, um in einer offenen und sicheren Umgebung zu besprechen, was gut gelaufen ist und was verbessert werden könnte.

Misserfolge ohne Schuldzuweisungen zu betrachten, funktioniert u. a. deshalb so gut, da der Schwerpunkt auf Wachstum liegt und anerkannt wird, dass Fehler passieren. Gleichzeitig wird vorausgesetzt, dass sowohl Mitarbeiter als auch Unternehmen in der Lage sind, zu lernen, zu wachsen und sich zu verbessern.
- "Effective DevOps" von Jennifer Davis und Katherine Daniels

Eine neue Reihe von Prozessen

In einer DevOps-Kultur müssen neue Ansätze für alte Probleme entwickelt werden. DevOps bedeutet die Änderung des isolierten Prozesses, bei dem Programmierer Anwendungscode schreiben und dann an ein Betriebsteam übergeben, das die Anwendung bereitstellt und betreibt. Beim DevOps-Ansatz arbeiten Entwicklung und Betrieb während des gesamten Lebenszyklus eines Projekts zusammen.

Continuous Integration und Continuous Delivery (CI/CD) werden allgemein als notwendig für eine DevOps-Kultur angesehen. Ein dritter Prozess, Continuous Deployment, wird von so großen Unternehmen wie Netflix angewandt und gefördert, ist aber in den meisten kleineren Unternehmen nicht weit verbreitet (oder erforderlich). Dies liegt daran, dass bei einer kontinuierlichen Bereitstellung neuer Funktionen in einer Produktionsumgebung sichergestellt sein muss, dass neuer Code gründlich getestet wurde und sicher bereitgestellt werden kann (z. B. hinter einem Feature-Toggle). Wenn dein Unternehmen nicht mehrmals am Tag bereitstellt, lohnt es sich möglicherweise nicht, in die Prozesse zu investieren, die diesen Ansatz unterstützen.

In den meisten Fällen wird eine Variante der Trunk-basierten Entwicklung deinen CI/CD-Aufwand erheblich vereinfachen. In diesem Modell schafft das Team langlebige Feature-Branches ab und führt häufige Commits zum Trunk-Branch des Codes durch.

Ein wichtiger Bestandteil der Trunk-basierten Entwicklung sind umfassende automatisierte Tests: Unit, Integration und Regression. So wird sichergestellt, dass alle neuen Commits für den Trunk-Branch gründlich überprüft wurden, wenn sie in das Repository gepusht werden.

Continuous Integration ist ein Prozess zur automatisierten Integration von Codeänderungen, die mehrere Mitarbeiter an einem Softwareprojekt vornehmen. Dies erstreckt sich über Entwicklerteams hinaus auf den Rest des Unternehmens. Produktteams müssen beispielsweise koordinieren, zu welchem Zeitpunkt sie Funktionen und Fehlerbehebungen nacheinander veröffentlichen und welche Teammitglieder jeweils verantwortlich sind.

Continuous Delivery ist eine organisatorische Methode, die technische und nichttechnische Teams wie Design, Produkt und Marketing bei der Auslieferung eines Produkts zusammenbringt. In Umgebungen ohne CD verlassen sich Entwickler leicht gänzlich auf die Benutzererfahrung des QS_Teams. Dies bedeutet, dass der Trunk-Branch deines Repositorys zu jeder Zeit bereitgestellt werden kann.

Durch Continuous Deployment können Codeänderungen, direkt wenn sie vorgenommen werden, automatisch in der Produktion bereitgestellt werden – hinter einem Feature-Flag versteckt oder für einen kleinen Prozentsatz der Kunden – und jederzeit kann einfach ein Rollback durchgeführt werden. Dies gibt Teams mehr Flexibilität, um auf sich ändernde Märkte und Kundenanforderungen zu reagieren, da Teams auf Kundenfeedback reagieren und neue Funktionen schnell bereitstellen und validieren können. Sie können auch Funktionen einfach zurücksetzen, sodass kein Team durch fehlerhafte Builds behindert wird.

Häufig wird mit Feature-Flags, Feature-Toggles oder Dark Launch dafür gesorgt, dass neue Anwendungsfunktionen nicht angezeigt werden oder funktionieren, wenn sie in der Produktionsumgebung bereitgestellt werden, aber mit minimalem Aufwand aktiviert werden können. Diese Strategie ermöglicht Continuous Deployment, da nur ein sehr geringes Risiko besteht, dass sich die Bereitstellung nachteilig auf Benutzer auswirkt. Es ist außerdem üblich, Funktionen nur für eine kleine Benutzergruppe bereitzustellen, indem sie nach geografischer Lage segmentiert oder auf separaten Serverinstanzen ausgeführt werden und Funktionen nur auf einem Server veröffentlicht werden, auf den Benutzer zugreifen können.

Eine moderne Toolkette

Die meisten Softwareentwicklerteams verwenden zumindest irgendeine Art von Tool für die Versionskontrolle, Vorgangsverfolgung und Anwendungsüberwachung. All dies sind wichtige Tools zur Unterstützung einer DevOps-Kultur, aber die vielleicht wichtigste Ergänzung des herkömmlichen Toolsets ist Software zur Unterstützung von CI/CD. Um das für eine DevOps-Kultur erforderliche schnelle Feedback zu erhalten, führt kein Weg an einem automatisierten Workflow mit Commit, Test und Deployment vorbei.

DevOps – ein kultureller Wandel, der Ergebnisse erzielt


Entwickler träumen seit Jahrzehnten davon, Software häufiger, mit weniger Aufwand und mit weniger Fehlern bereitzustellen. Jetzt sind die Tools und Praktiken für die Verwirklichung dieses Traums endlich verfügbar.

Atlassian stellte fest, dass Unternehmen, die DevOps praktizieren, nach eigener Einschätzung qualitativ hochwertigere Ergebnisse (61 %) mit erhöhter Deployment-Häufigkeit und schnellerer Markteinführungszeit (49 %) ausliefern. Nicht nur die Unternehmen profitieren von den Vorteilen – Mitarbeiter in DevOps-Teams berichteten, dass sie neue Fähigkeiten erlernt (78 %) und eine Gehaltserhöhung erhalten (48 %) haben.

Die DevOps-Kultur kann eine Herausforderung sein, aber die daraus resultierende höhere Zufriedenheit der Entwickler, Manager und Kunden ist der Mühe wert.

Möchtest du die DevOps-Kultur in deinem Unternehmen verbessern? Beginne mit dem Gesundheitscheck für Serviceteams. Mit den vier besten Spielen zum Aufbau einer DevOps-Kultur kannst du außerdem die Kommunikation, die Zusammenarbeit und das Brainstorming mit Kollegen trainieren.

Tom Hall
Tom Hall

Tom Hall ist ein DevOps-Befürworter und -Anwender, begeisterter Leser und Amateurpianist.
In den letzten 20 Jahren hat er u. a. Zertifikate von Novell, EMC, VMware und AWS erhalten. Im Jahr 2016 half er bei der Organisation der DevOpsDays in Atlanta und in den folgenden Jahren in Austin, Texas.


Diesen Artikel teilen

Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Abbildung: DevOps

DevOps-Community

Abbildung: DevOps

DevOps-Lernpfad

Abbildung: Karte

Kostenlos loslegen

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up