\hypertarget{thematik}{%
\section{Thematik}\label{thematik}}

Das Thema der Digitalisierung ist heute nicht mehr wegzudenken, wenn es
in den Unternehmen darum geht, in der wachsenden Dynamik des Marktes
passend zu agieren. Dabei muss auch die Softwareentwicklung sich diesem
Trend anpassen und so von prozess- und planungslastigen Projekten zu
einer agilen Entwicklung mit vollautomatisierten Prozessen umschwenken.

Der moderne Softwareentwicklungsprozess wird immer weiter automatisiert.
Hier sind "Continuous Integration" und "Continuous Deployment/Delivery"
(CI/CD) schon weit verbreitet und dafür bekannt, den
Softwareentwicklungsprozess zu beschleunigen. (Quellexxx Google devops)

Auf den ersten Blick erscheinen die Konzepte einfach und schnell
umsetzbar zu sein und die Umstellung auf CI/CD wird schnell gestartet,
um die Vorteile zu nutzen.

Mit CI/CD wird jedoch nicht nur eine einfache Automatisierung
bestehender Prozesse eingeführt. CI/CD besitzt eine zentrale Rolle,
welche auch den Entwicklungsprozess selbst verändert. Diese zentrale
Rolle und Komplexität wird häufig unterschätzt, und schon während der
Einführung oder später im Betrieb treten unerwartete Herausforderungen
zu Tage.

Eine dieser Herausforderungen, welche erst im Betrieb deutlich werden,
ist die unabsichtliche Auslieferung eines nicht produktionsbereiten
Codes in den Betrieb.

Eine falsche Handhabung in der \scm kann in einem CI/CD
Umfeld zu diesem ungewollten Deployment führen und so eine fehlerhafte
Funktionalität der Software oder sogar einen Systemausfall bewirken.

\hypertarget{ziel}{%
\subsection{Ziel}\label{ziel}}

Das Auftreten eines ungewollten Deployments und weiterer häufig
anzutreffender Probleme innerhalb eines CI/CD - Systems kann bereits bei
der Einführung durch geeignete Planung und technische Maßnahmen
verhindert werden.

Anhand einer Problemrecherche und Analyse werden Empfehlungen
entwickelt, die bei der Planung und Einführung eines Systems
herangezogen werden können.

Diese Empfehlungen sind sehr allgemein formuliert, bedingt durch die
große Vielseitigkeit in den Einsatzumgebungen als auch durch in der
Toollandschaft.

Sie werden ergänzt durch Ansätze und Strategien, an denen man sich in
der Umsetzung orientieren kann.

Für das dargestellte Problem des ungewollten Deployment eines nicht
produktionsreifen Codes wird für eine konkrete Einsatzumgebung und
Toolsituation aufgezeigt, wie sich das Problem durch entsprechende
Planung und technische Maßnahmen verhindern lässt.

\hypertarget{methoden}{%
\subsection{\texorpdfstring{\textbf{Methoden}}{Methoden}}\label{methoden}}

Zur Erhebung relevanter Probleme wurden Experteninterviews geführt,
wissenschaftliche Arbeiten, Erfahrungsberichte sowie eigene
Beobachtungen im CI/CD Umfeld herangezogen.

Aus der Problemanalyse wurden die Ursachen identifiziert und
entsprechende Empfehlungen abgeleitet.

\textbf{\textbf{Vorgehen}}

In einem ersten Schritt betrachte ich den Softwareentwicklungsprozess
und die Automatisierungsmöglichkeiten im Allgemeinen, um dann Ideexx von
CI/CD aufzuzeigen.

\hypertarget{abgrenzungen}{%
\subsubsection{\texorpdfstring{\textbf{Abgrenzungen}}{Abgrenzungen}}\label{abgrenzungen}}

Die Problemrecherche und Analyse kann nicht den Anspruch der
Vollständigkeit erfüllen. Sie berücksichtigt typische- und häufig
anzutreffende Probleme. Dabei sind die Empfehlungen unabhängig von einem
konkreten Anwendungsfall und der Toolsituation formuliert. Probleme zur
Thematik des mentalen Wandels bei der Einführung von CI/CD werden nicht
betrachtet.
