Blog

Die drei Formen von CI/CD

22 May, 2023
Xebia Background Header Wave

Dieser Blog ist zuerst bei Xebia Global erschienen. Er wurde von uns übersetzt.   

Viele Modelle und Perspektiven beschreiben die Komplexität einer Organisation. Letztendlich läuft alles auf die Interaktion von Menschen mit Technologie unter Verwendung von Prozessen hinaus. Der Soziologe Dr. Ron Westrum hat eine Typologie der Organisationskulturen erstellt, darunter auch einen generativen Typ. Zu den wichtigsten Merkmalen einer generativen Kultur gehören:

  • Leistungsorientiert
  • Hohe Kooperationsbereitschaft
  • Scheitern führt zu Nachforschungen
  • Risiken teilen

Die Förderung dieser Eigenschaften in der Kultur eines Unternehmens ermöglicht es, Kapazität, Qualität und Innovation zu steigern. Eine CI/CD-Pipeline hilft dabei, die Werkzeuge und Prozesse zur Verfügung zu stellen, die diese Eigenschaften ermöglichen. Eine CI/CD-Pipeline wird oft als eine Möglichkeit gesehen, Software zu bündeln und zu verteilen. Sie ist die moderne Art, Software automatisiert zu verteilen, anstatt es manuell zu tun. Aus technischer Sicht ist das auch richtig. Der Kerngedanke einer CI/CD-Pipeline besteht jedoch darin, konsistente Qualität und frühzeitiges Feedback zu liefern. Durch die kontinuierliche Überwachung der bestehenden (Qualitäts-)Leistung erhältst du Erkenntnisse und Informationen darüber, wie du die Bereitstellung und die angewandten Kontrollen verbessern kannst.

Anhand des Dreiklangs aus Menschen, Prozessen und Technologie wollen wir sehen, was eine CI/CD-Pipeline für ein Unternehmen bedeutet und wie sie sich auf die Qualität des Softwareentwicklungsprozesses auswirkt.

Continuous Integration (CI) und Continuous Delivery (CD)

Continuous Integration ist die Praxis, neue Arbeit in die aktuelle Arbeit zu integrieren. Jede Änderung löst einen automatisierten Build-Prozess aus, der eine Reihe von Checks durchführt, um die Integrität des gesamten Softwarepakets zu bestätigen. Continuous Delivery ist eine Reihe von Praktiken, um Änderungen sicher, schnell und nachhaltig in die Hände der Nutzer/innen zu bringen. Weitere Informationen zu den technischen Aspekten von CI/CD findest du in diesem Blog über Continuous Integration als Teil von Continuous Delivery.

Diese technischen Aktivitäten tragen zur Qualität und Konsistenz der Softwareentwicklung bei, indem sie manuelle, arbeitsintensive Tätigkeiten ersetzen und ein schnelles Feedback über die Qualität und Funktionalität der Software liefern. Diese Maßnahmen sind zwar wertvoll, reichen aber allein nicht aus, um das Unternehmen zu einer leistungsstarken Organisation zu machen. Die Continuous Integration/Continuous Delivery-Pipeline ist nur das technische Artefakt, das Technologie, Menschen und Prozesse zusammenbringt.

In ihrem Kern ist CI/CD der Ort, an dem wir definieren und überwachen, was Qualität ist. Um eine wirklich generative Organisation zu werden, müssen wir uns auch mit den Prozessen und den Menschen befassen.

Continuous Improvement and Continuous Discovery (Quelle: Qxperts)

Continuous Improvement und Continuous Discovery

Prozesse sind in einer Organisation wichtig, da sie als Schnittstellen zwischen verschiedenen Geschäftskontexten und Bereichen fungieren. Sie minimieren den kognitiven Aufwand für diese Interaktionen, indem sie allen Beteiligten eine Orientierungshilfe für ihre Erwartungen bieten. Während die technische CI/CD-Pipeline große Teile unserer Arbeitsweise festschreibt, strukturieren Prozesse die Abläufe rund um die Softwarebereitstellung. Ein Prozess kann zum Beispiel beschreiben und festlegen, wer Pull Requests überprüfen und genehmigen darf. In gewisser Weise ist er die Automatisierung der Verfahren.

Prozesse sind in der Regel so konzipiert, dass sie in einem bestimmten Kontext passen. Der Kontext ändert sich im Laufe der Zeit, wodurch die Effektivität eines Prozesses abnimmt. Automatisierung allein hilft nicht weiter, da sie sich nicht anpassen kann, wenn sich die Umgebung ändert. Deshalb legen leistungsstarke Organisationen großen Wert auf Continuous Improvement und Continuous Discovery.

Ziel der Continuous Improvement ist es, eine Kultur der schrittweisen Verbesserung durch Lernen und Experimentieren zu etablieren. Die Bemühungen um eine Continuous Improvement sollten sich darauf konzentrieren, die Effektivität zu erhöhen und gleichzeitig die Komplexität zu verringern. Jede Änderung oder Ergänzung des Systems sollte es einfacher machen. Die Vermeidung von zusätzlicher Komplexität mag anfangs etwas Zeit in Anspruch nehmen, zahlt sich aber langfristig aus.

Bei der Continuous Improvement geht es jedoch darum, einen bestehenden Ansatz zu verbessern. Um zu verhindern, dass Prozesse dich letztlich ausbremsen, ist es notwendig, in einem neuen Kontext nach passenderen Prozessen zu suchen. Diese Aktivität wird als Continuous Discovery bezeichnet. Bei der Continuous Discovery geht es darum, deine Ziele kontinuierlich mit den gesammelten Daten abzugleichen und alternative, besser geeignete Prozesse zu finden, um sie anzugleichen.

Es liegt in der Verantwortung aller Beteiligten, diese Kultur der Continuous Improvement und der Continuous Discovery zu etablieren. Die Führung ist ein wichtiger Faktor bei der Förderung einer Kultur, in der es sicher ist, zu versagen, Informationen auszutauschen und zusammenzuarbeiten. Die Teams sollten ständig versuchen, die Gelegenheit zu ergreifen, ihre Arbeitsweise zu verändern und zu verbessern. Retrospektiven sollten sich auf den Prozess und nicht auf das Ergebnis konzentrieren.

Continuous Illumination und Continuous Discipline

Organisationen sollten danach streben, generativ zu sein. Eine generative Organisation kann etwas produzieren oder neue Möglichkeiten hervorbringen. Sie bringt Ideen oder neue Arbeitsweisen hervor. Einfach gesagt: Sie machen neue Dinge möglich. Anstatt sich nur auf das Management zu verlassen, um neue Ideen zu entwickeln, kommen die Ideen von der gesamten Belegschaft. Die Betonung liegt auf "wir sollten" und nicht auf "wir müssen". Die Verbesserung von Technologien und Prozessen allein reicht nicht aus.

Ein weiterer wichtiger Aspekt generativer Organisationen ist, dass sie nicht von Misserfolgen überrascht werden und Stressfaktoren absorbieren können. Diese dritte Sichtweise auf CI/CD kann als Continuous Illumination und Continuous Discipline beschrieben werden.

Bei Continuous Illumination geht es darum, Zugang zum Wissenserwerb zu schaffen, Wissen zwischen Teams und der Außenwelt auszutauschen und sich ständig an der Mission und Vision des Unternehmens und des Produkts zu orientieren. Es reicht jedoch nicht aus, nur Schulungsmöglichkeiten anzubieten. Man sollte sich bewusst darum bemühen, die richtige Mischung aus Theorie und praktischer Erfahrung zu kombinieren, indem man eine Kultur des Austauschs, den einfachen Zugang zu Unterlagen und das Stellen schwieriger Fragen fördert.

Bei der Continuous Discipline geht es darum, dass die Teams Verfahren einüben und ihre Problemlösungsfähigkeiten verbessern. Der beste Weg, dies zu erreichen, ist das Üben von Zwischenfällen und deren Behebung. Diese Übungen sollten regelmäßig stattfinden und sich darauf konzentrieren, im Falle unerwarteter Probleme effektiver zu werden. Schuldfreie Nachbesprechungen, ein klares Verständnis von Rollen und Verantwortlichkeiten und das Üben von Fehlern tragen zu einer generativen Kultur bei. Weitere Informationen und nützliche Hinweise zu diesem Thema findest du auf der Website von Google zum Thema Site Reliability Engineering.

(Quelle: Qxperts)

Fazit

Bei CI/CD in DevOps geht es nicht nur darum, den Softwarebereitstellungsprozess zu automatisieren. Sich nur auf den technischen Teil zu konzentrieren, ist eine begrenzte Sichtweise. Angesichts des Dreiklangs aus Menschen, Prozessen und Technologie sollten wir auch alle anderen genannten Konzepte berücksichtigen.

Dr. Nicole Forsgren schrieb in Accelerate:

Investitionen in Technologie sind auch Investitionen in Menschen, und diese Investitionen werden unseren Technologieprozess nachhaltiger machen.

Eine Organisation ist ein komplexer Organismus, und das Gleiche gilt für den Softwarebereitstellungsprozess. Die Optimierung des Erstellungs- und Bereitstellungsprozesses erfordert einen ganzheitlichen Blick auf das gesamte Ökosystem. CI/CD-Pipelines schaffen Vertrauen und Sicherheit, indem sie Schutzmechanismen einbetten, die verhindern, dass fehlerhafte Produkte in die Produktion gelangen. Wir glauben, dass die Optimierung all dieser kontinuierlichen Disziplinen dazu beiträgt, ein leistungsstarkes Unternehmen zu werden und zu bleiben.

Questions?

Get in touch with us to learn more about the subject and related solutions