Ein Hindernislauf in vier Akten

Von DevOps profitieren: Über diese vier Hürden musst du gehen

Jörg Hastreiter

©iStock / alphaspirit

Immer höher, immer schneller, immer weiter: Mit der Digitalisierung ist auch in der IT-Branche eine zunehmende Dynamik eingezogen. Immer kürzer werdende Produktlebenszyklen liefern Antworten auf sich ständig ändernde Marktgegebenheiten. Unternehmens-IT muss heute anders gemacht werden, als es noch vor Jahren der Fall war. Die Lösung heißt: DevOps. Aber so einfach ist es nicht.

Die Entwicklung und der Betrieb von IT-Systemen unterteilen sich grob in drei beteiligte Fachdisziplinen entlang der Wertschöpfungskette: Softwareentwicklung, Test und Betrieb. Die Softwareentwicklung will vorrangig die vom Kunden angeforderten Funktionalitäten eines IT-Systems oder Änderungen hieran umsetzen.

Der Betrieb hingegen steht in erster Linie für Stabilität nach dem Motto „Never touch a running system“. Der Test nimmt in diesem Dreiklang – zu oft kurz vor Wirkbetriebsaufnahme – die besondere Rolle des Feuerwehrmanns ein, meist am Ende einer in die Verlängerung gegangenen Entwicklungsphase.

Und genau hier kommt das Thema DevOps ins Spiel. Jeder der Beteiligten, von der Softwareentwicklung über den Test bis zum Betrieb, macht für sich genommen einen super Job. Dennoch kommt es beim Zusammenspiel der Beteiligten zu Problemen und meist mündet das in sportliche Terminpläne. Die Unzulänglichkeiten fangen bei der Kommunikation zwischen Entwicklung, Test und Betrieb an, ziehen sich über unterschiedliche Ziele und Wertvorstellungen und münden in inkompatible Prozesse und Tools. Die Leidtragenden sind letztendlich der Auftraggeber und dessen Kunden.

DevOps

Der Begriff DevOps setzt sich aus den englischen Wörtern Development (Entwicklung) und Operations (Betrieb) zusammen und stammt von der durch den Belgier Patrick Debois im Jahr 2009 durchgeführten Konferenz DevOpsDays.

Mehr Miteinander

Eine der Neuerungen von DevOps ist, dass Entwicklung, Test und Betrieb nicht mehr isoliert voneinander, sondern bereits ab Projektinitialisierung konsequent agil zusammenarbeiten und gemeinschaftlich für das Resultat verantwortlich sind. Unternehmen können Zielkonflikte von Anfang an minimieren, indem sie schon bei der Softwareentwicklung wesentliche Erfordernisse des Betriebs berücksichtigen, die Qualität durch den Einbau automatisierter Tests sicherstellen und sich wiederholende Prozesse der Softwarelieferkette (Continuous Integration/Continuous Delivery) bis ins Rechenzentrum oder in die Cloud automatisieren. Die Vorteile, die das Verfahren mit sich bringt, sind vielfältig: Durch gemeinsame Standards und Automatisierungen unter Berücksichtigung der notwendigen Agilität und Flexibilität kommt es zu einer schnelleren Markteinführung und -anpassung der Software, da sich neue Funktionen in kürzeren Releasezyklen hinzufügen oder ändern lassen. Mit dem Prinzip DevOps können Firmen Innovationen schneller am Markt oder eben vor dem Kunden ausprobieren, Fehler früher erkennen und aus ihnen lernen sowie die gesamte Wertschöpfungskette kontinuierlich verbessern. Das wiederrum führt zu geringeren Risiken, einer besseren Qualität sowie mehr Transparenz und Sicherheit (Abb. 1).

Abb. 1: DevOps bringt für Unternehmen entscheidende Vorteile

Die Endkunden, für die die Software entwickelt wird, sind dabei nicht nur Adressat des Konzepts. Idealerweise sind sie auch in frühen Stadien in den Prozess integriert – ganz gleich, ob es sich um interne oder externe Abnehmer handelt. Ideal sind agile Projekte nach einem Scrum-Vorgehensmodell, bei denen der Kunde gefragt ist, Zeit für die aktive Teilnahme am Prozess zu investieren. Er profitiert allemal, macht sich der Kunde doch heute oft im stillen Kämmerlein Gedanken – nicht selten über Quartale hinweg. Er investiert in die Umsetzung von Projekten, die zum Zeitpunkt der Wirkbetriebsaufnahme längst überholt sind oder vom Endkunden nicht angenommen werden.

DevOps Docker Camp 2017

Das neue DevOps Docker Camp – mit Erkan Yanar

Lernen Sie die Konzepte von Docker und die darauf aufbauende Infrastrukturen umfassend kennen. Bauen Sie Schritt für Schritt eine eigene Infrastruktur für und mit Docker auf!

Über vier Hürden musst du gehen

DevOps bringt also viele Pluspunkte mit sich, erfordert aber auch eine gewisse Vorbereitung. Deswegen ist es ganz normal, dass ein Unternehmen anfangs auf Hürden stößt. Knackpunkte sind Tools und Prozesse, Ziele und Verantwortlichkeiten, Ressourcen- und Organisationskonflikte sowie Ängste.

Jede Fachdisziplin hat ihre eigenen, bewährten Werkzeuge für die unterschiedlichen Aufgaben. Die Entwicklung verfügt über seit Jahren gewachsene und spezialisierte Frameworks und Tools für schnelle und agile Softwareentwicklung. Ebenso die Testabteilung, die hunderte Tests mit Unterstützung von spezialisierten Testautomatisierungstools durchführen kann. Oder der Betrieb, der entlang zertifizierter ITIL-Standards mit eigenen Ticket-, Monitoring- und Logging-Plattformen arbeitet. Jeder Bereich und dessen Werkzeuge sind hoch spezialisiert, auf die eigene Aufgabe angepasst und effizient, aber meist in sich geschlossen. Die Kommunikation zwischen den einzelnen genutzten Systemen ist oft nicht sichergestellt. In der Folge werden beispielsweise Anforderungen, Aufgaben oder Tickets vom Kunden oft in E-Mail-Threads bearbeitet, von einer Excel-Liste in die andere manuell übertragen oder eben von einem System ins nächste. Zudem sind in vielen Softwareentwicklungsprojekten bereits Automatisierungstools für Build und Deployment Standard. Die Installation in der Wirkumgebung findet allerdings unnötigerweise noch in bewährter Handarbeit Schritt für Schritt anhand einer Checkliste durch das Betriebsteam statt.

Standardisierte und integrierte Prozesse und Tools sind eine der Hauptanforderungen, denen sich DevOps widmet. In der Praxis ist dieses Thema eine riesige Herausforderung. Oft auch deshalb, weil die unterschiedlichen Abteilungen gar nicht wissen, wie die jeweils anderen arbeiten. Ist aus technischen oder organisatorischen Gründen keine einheitliche Lösung möglich, müssen zumindest die Schnittstellen geschaffen werden, um eine einheitliche Kommunikation entlang der gesamten Prozesskette zu gewährleisten. In jedem Fall sollten standardisierte Werkzeuge dort zum Einsatz kommen, wo es möglich ist, und Prozessschritte im Sinne der Effizienzsteigerung automatisiert werden. Ziel ist ein möglichst hoher Automatisierungsgrad von der Auslieferung umgesetzter Anforderungen über den Test bis in den Wirkbetrieb.

Von den Tools und Prozessen geht es schnell zur zweiten Hürde: zu Zielen und Verantwortlichkeiten. Ein in der Praxis oft beobachtetes Bild ist, dass der im Produktivsystem aufgetauchter Fehler zwischen Entwicklung, Betrieb und Kunde hin- und hergeschoben wird. Dieses Szenario kann zu immensen Image- und Umsatzverlusten führen und ähnelt dem als Schwarzer Peter bekannten Kartenspiel. Aus diesem Grund müssen auch die Agenda und Ziele aller Beteiligten im Sinne der DevOps-Philosophie zusammenrücken. Klassischerweise verfolgt der Betrieb das Ziel, einen stabilen Wirkbetrieb zu gewährleisten. Jede Softwareänderung oder -aktualisierung ist für ihn ein potenzielles Risiko hinsichtlich der Stabilität. Die Entwicklung auf der anderen Seite sagt: Der Kunde kann nicht ein halbes Jahr warten, bis die geforderten Änderungen in Produktion gehen. Aufbauend auf einer regelmäßigen Kommunikation braucht es ein Verständnis der einzelnen Abteilungen füreinander und für die jeweiligen Ziele und Anforderungen. Entscheidungen sollten gemeinsam fallen; mit der kurzfristigen Sicht der Entwicklung, der erprobten Sicht des Testings und der langfristigen Sicht des Betriebs. Oft kommt dieser Abgleich heute zu kurz. Ziel sollte sein, dass Entwicklung, Test und Betrieb gemeinsam für das vom Kunden vorgegebene und zu erreichende Ziel verantwortlich sind (Abb. 2).

Abb. 2: Entwicklung, Testing und Betrieb müssen an einem Strang ziehen und vor allem miteinander sprechen

Gerade mit kürzeren Time-to-Market-Zyklen spielen die Ressourcen eine große Rolle. Sind nicht genügend Ressourcen vorhanden – ganz gleich, ob Budget, Zeit, Personal, Know-how, methodische und konzeptionelle Kompetenz, Support durch die Führungsebene oder IT-Ausstattung – ist das Ergebnis oft fehlendes Engagement und Resignation. Denn so schön es ist, binnen weniger Tage am Markt zu sein, so aufwendig bleiben hunderte Testfälle, die zunächst durchexerziert werden wollen. Eine Lösung liegt in der Automatisierung und Standardisierung. Neben einer notwendigen Strukturanpassung im Hinblick auf Zeit und Budgets über alle Abteilungen hinweg spielen auch neue und übergreifende KPIs und Verbindlichkeit eine Rolle, die natürlich auch in der Organisation des Unternehmens selbst verankert werden müssen.

Mit der durch DevOps geforderten Automatisierung und Standardisierung geht natürlich auch die Frage nach der Zukunft der einzelnen Mitarbeiter einher. Die sich wandelnden Anforderungen resultieren auch in geänderten fachlichen Anforderungen an Mitarbeiter und damit in neuen Stellenbeschreibungen. Natürlich kommen hier Ängste auf: „Wird mein Job aufgrund der Automatisierung wegfallen?“ oder „Kann ich den sich ständig ändernden Anforderungen aufgrund neuer Tools, Cloud-Plattformen und Prozessen gerecht werden?“. Diese Ängste gilt es als Arbeitgeber zu adressieren und gleichzeitig nachhaltig in die Ausbildung der Mitarbeiter zu investieren. Unternehmen müssen ihre Beschäftigten dafür sensibilisieren, dass die digitale Transformation auch in den Bereichen Softwareentwicklung, Test und Betrieb stattfinden wird. Wer als Mitarbeiter auf seiner Komfortzone beharrt, der verbaut sich seine eigene Zukunft im Unternehmen und langfristig auch in der Branche.

Vorteile von DevOps

  1. Durch den Kulturwandel, der mit einer gemeinsamen Verantwortung für Entwicklung, Test und Betrieb eines Produkts oder Service einhergeht, werden Bruchstellen zwischen den Verantwortlichen reduziert.
  2. Über die Standardisierung, Automatisierung und ständige Optimierung der Zusammenarbeitsmodelle und Prozesse werden Entwicklung, Test und Betrieb eines Produkts oder IT-Service ständig verbessert und beschleunigt.
  3. Durch Beschleunigung von Projekt-Set-up, Entwicklung und Inbetriebnahme über kürzere Releasezyklen können Unternehmen ihre Innovationen in der Praxis schneller ausprobieren, lernen und weiter verbessern.
  4. Durch Nutzung moderner Werkzeuge bei Entwicklungs-, Deployment- und Betriebsabläufen sowie Plattformen wird eine effiziente Arbeitsweise sichergestellt.
  5. Durch die Steigerung der Transparenz über den Status des Produkts oder Service – vom Kunden oder der Fachseite über Entwicklung, Test und Betrieb – wird gemeinsam an den richtigen Dingen gearbeitet.

Jeder muss umdenken können und wollen

Die wichtigste Erkenntnis in der Digitalisierung – und letztendlich auch im Bereich DevOps – ist, dass am Ende hinter jedem Prozess und hinter jeder Automatisierung auch weiterhin ein Mensch sitzt. Ohne den geht es auch in Zukunft nicht. Ein entscheidendes Erfolgsrezept ist es daher, gerade in puncto DevOps die unmittelbar Betroffenen zu Beteiligten im Change-Projekt zu machen, um Ablehnung oder Ängsten vorzubeugen. Denn die Veränderung lässt sich Menschen oft nur schwer aufoktroyieren.

Betroffen und beteiligt ist dabei jeder, vom Entwickler über das mittlere bis hin zum oberen Management. Und genau so, wie der Entwickler oder Tester mit seinen Ängsten und Nöten ernst genommen werden muss, so muss auch das Management mitmachen und unterstützen. Denn das „DevOps-Team on the Ground“ kommt alleine nur bis zu einer gewissen Grenze und benötigt danach Unterstützung. Für den Erfolg muss also gerade auch das Management Verantwortung – und zum Teil sogar Macht – abgeben und sich mehr in die Karten gucken lassen. Insbesondere bei starren, hierarchischen Strukturen fällt das mitunter schwer. Ressentiments müssen daher durch die gesamte Organisation hindurch angesprochen und abgebaut werden.

Um das zu erreichen, ist es entscheidend, dass DevOps nicht als Anweisung von oben wahrgenommen wird. Kollegen auf allen Ebenen müssen vielmehr darüber informiert werden, wieso Änderungen notwendig sind. Etwa, weil Agilität von Kunden gefordert wird oder Dinge bei gleichbleibend hoher Qualität schneller zur Verfügung stehen müssen. Das bedarf neben dem Management auch der Stakeholder aus den Fachbereichen, die früh mit ins Boot geholt werden müssen, um gemeinsam die Mitarbeiter zu überzeugen, zu informieren und mitzunehmen.

Als erfolgreich hat sich auch die enge Zusammenarbeit mit der Personalabteilung erwiesen, um z. B. Jobrotationsprogramme aufzusetzen, in denen Mitarbeiter aus unterschiedlichen Bereichen für eine bestimmte Zeit im DevOps-Bereich arbeiten. Sie wissen so besser Bescheid, welche Anforderungen die unterschiedlichen Bereiche haben und entwickeln mehr Verständnis für die Bedürfnisse der einzelnen Abteilungen. Auch gilt es, den Bereich Weiterbildungen und Schulungen zu beachten sowie in einem Best Practice Sharing gute Projekte vorzustellen. Das Ziel dieser Maßnahmen liegt stets darin, Ängste und Hürden bei den Mitarbeitern zu senken und sie zu animieren, selbst aktiv zu werden.

Lohn der Mühen

Trotz der möglichen Hürden, die Unternehmen bei DevOps zu Beginn überwinden müssen, lohnt es sich, diese Punkte anzugehen. Das Ergebnis ist eine effiziente und zielsichere Verfahrensweise, die ein Wettbewerbsvorteil am Markt ist. Unternehmen sollten nur nicht zu unbedarft an die Sache herangehen oder DevOps vom Management lediglich anweisen. Sie müssen sich der möglichen Hindernisse bewusst sein und sie in einem professionell durchgeführten Change-Programm über mehrere Jahre unter aktiver Beteiligung der Mitarbeiter angehen. DevOps ist dabei alles andere als nur ein technologisches Thema, sondern umfasst auch Themen wie Ausbildung, Kultur, Zusammenarbeit und Kommunikation. Es ist eine Unternehmensphilosophie, eine eigene Denkweise, die gelernt werden muss – weg von „jeder kocht sein eigenes Süppchen“, hin zu einem Menü, dessen Komponenten ideal aufeinander abgestimmt sind.

Geschrieben von
Jörg Hastreiter
Jörg Hastreiter
Jörg Hastreiter verantwortet bei der T-Systems Multimedia Solutions als Leiter Business Technology & Excellence die Bereitstellung und Weiterentwicklung der internen Infrastruktur- und Applikationslandschaft. Seine Aufgabenschwerpunkte sind Business Process Management, Servicemanagement, Prozess- und Enterprise-Architektur, DevOps-Strategie und Cloud-Enabling sowie unternehmensübergreifende Veränderungsprojekte.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.