Erarbeitung eines Maturity-Modells für die Bewertung vom DevOps-Einsatz in Organisationen

Erarbeitung eines Maturity-Modells für die Bewertung vom DevOps-Einsatz in Organisationen
DevOps Lifecycle. Quelle: https://medium.com/@yildirimabdrhm/devops-lifecycle-continuous-integration-and-development-e7851a9c059d

Kontext

DevOps umfasst eine Reihe von Praktiken, die darauf abzielen, Entwicklungs- und Betriebsthemen zusammenzubringen, um die Geschwindigkeit, Qualität und Zuverlässigkeit von Softwarereleases sowie dem Betrieb zu verbessern. Zu den wichtigsten Vorteilen von DevOps zählen die schnellere Bereitstellung von Software, eine verbesserte Zuverlässigkeit bei Releases, gesteigerte Effizienz und eine verbesserte Zusammenarbeit.

Obwohl sich viele Organisationen die Vorteile von DevOps wünschen, ist der Stand der Einführung und Implementierung sowie das Verständnis betreffend DevOps oft sehr unterschiedlich. Die Einführung von DevOps ist nicht damit erledigt, dass das Entwicklungs- (Dev) und Betriebsteam (Ops) zusammengelegt werden und diese neu in einem «DevOps»-Team zusammenarbeiten sollen. DevOps umfasst eine vielfallt von Praktiken und Lösungen in unterschiedlichen Phasen des Entwicklungsprozesses, welche in den meisten Organisationen nicht in einem einzelnen Schritt komplett eingeführt werden können. Diese müssen sich über die Zeit etablieren und in die Organisation integrieren. Durch den Fokus auf die Teams können dabei die notwendigen Anpassungen an zum Beispiel den Richtlinien und Vorschriften der Organisation vergessen gehen, welche es verhindern, dass das volle Potential von DevOps ausgeschöpft werden kann.

Ziel

Um dieses Problem zu beheben, soll ein Maturity-Modell für Praktiken und Lösungen auf Basis des DevOps-Lebenszyklus entworfen werden, welches der Organisation ermöglicht, Schwachstellen und Stärken in den acht DevOps-Lebenszyklus Phasen Plan, Code, Build, Test, Release, Deploy, Operate und Monitor zu identifizieren, damit sie die notwendigen Massnahmen für die Verbesserung einplanen und durchführen können. Das zu erstellende Maturity-Modell soll gezielt unterschiedliche Bereiche einer Organisation abdecken, damit nicht nur Schwachstellen und Stärken innerhalb eines Teams aufgedeckt werden können, sondern zum Beispiel das Management auch Rückmeldungen erhält, ob die Organisation mit deren Tools und Richtlinien die Teams beim Leben von DevOps unterstützt oder ob es noch Hürden gibt, die auf dieser Stufe angegangen werden müssen.

Die Ziele lassen sich in zwei Forschungsfragen zusammenfassen:

  1. Welche Bereiche einer Organisation müssen bei einem DevOps Maturity-Modell berücksichtigt werden?
  2. Lässt sich ein einheitliches Maturity-Modell für unterschiedliche Arten und Grössen von IT-Organisationen erstellen?

Methodik

Die verwendete Methodik dieser Arbeit basiert auf der qualitativen Forschungsmethodik. In einem ersten Schritt wird eine strukturierte Literaturrecherche im Bereich Maturity-Modell und DevOps mit Fokus auf die Forschungsfragen durchgeführt, um relevante Literatur zu identifizieren und das erlangte Wissen wiederzugeben. Hierfür werden Datenbanken wie Google Scholar, SpringerLink und Nebis verwendet. Im Bereich DevOps wird der Hauptfokus auf den DevOps-Lebenszyklus gelegt auf welches sich das Maturity-Modell stützen wird.

In einem weiteren Schritt werden Interviews mit Organisationen durchgeführt, um die Theorie mit der Praxis zu vergleichen, sowie zu erfahren, wie die Organisationen die Teams dabei unterstützen oder davon abhalten, DevOps bestmöglich anzuwenden. Die Interviews werden semi-strukturiert durchgeführt. Dies bedeutet, dass Fragen vorgängig festgelegt werden und sich im Gespräch neue Fragen ergeben, somit gestaltet sich das Interview dynamisch. Hierbei sollen mögliche relevante Aspekte aufgedeckt werden, welche womöglich in der Theorie nicht abgedeckt sind und in das Maturity-Modell mit einfliessen sollen. Hierfür sollen qualitative Stichproben durchgeführt werden, indem unterschiedliche Organisationen interviewt werden. Somit wird bestehende Literatur recherchiert und mit Praxiswissen ergänzt. Die durchgeführten Interviews werden zusammenfassend transkribiert.

Anschliessend wird auf Basis von dem erarbeiteten Wissen ein Maturity-Modell erstellt. Das erarbeitete Maturity-Modell wird mit den interviewten Organisationen getestet und die Qualität der Resultate des Maturity-Modells festgestellt. Falls notwendig werden entsprechende Anpassungen vorgenommen und das überarbeitete Maturity-Modell erneut getestet.

Ergebnisse

Die Ergebnisse der Forschung zeigen, dass Organisationen eine beträchtliche Rolle im Bereich DevOps für die Teams einnehmen kann. Durch das einheitliche Bereitstellen von Plattform, Tools und Templates werden Teams befähigt, DevOps schnell und standardisiert einzuführen. Zudem soll die Organisation darauf bedacht sein, Teams autonom aufzustellen, damit sie neue Funktionalitäten unabhängig planen und bereitstellen können und somit den DevOps-Lebenszyklus schneller durchlaufen können. Ebenfalls sollte die Organisation bestrebt sein, keine unnötigen Richtlinien und Vorschriften einzuführen, welche den DevOps-Lebenszyklus bei den Teams negativ beeinflussen.

Bei der Erstellung des Maturity-Modells wurde darauf geachtet, dass die Beschreibung sowie die Einstufungen der Maturitäts-Levels agnostisch von den Organisationen und Teams sind. Somit kann das erstellte Maturity-Modell universell für verschiedene Arten und Grössen von IT-Organisationen eingesetzt werden.