# Industrial DevOps

Industrial DevOps ist ein Ansatz, Methoden und Kultur aus DevOps auf die Entwicklung und Produktion industriell gefertigter Produkte anzuwenden. Das grundlegende Prinzip des Ansatzes ist ein kontinuierlicher Prozess des Betriebs, der Beobachtung und der Entwicklung des gesamten Systems. Ziele sind die schrittweise Systemintegration, schnelle und flexible Anpassbarkeit der Produktion sowie die Verbesserung von Prozessen und der Qualität von Leistungen und Produkten.
Konzepte wie Smart Factory und funktionsübergreifende Automatisierung in Industrieunternehmen führen zu einer immer stärkeren Vernetzung und steigender Komplexität. Für eine effektive Optimierung wird das gesamte Unternehmen als Soziotechnisches System betrachtet, wodurch Wechselwirkungen zwischen Menschen, Prozessen und Technologie zu berücksichtigen sind. So können zum Beispiel komplexe Produkte wie Maschinen oder medizinische Geräte dank der hohen Leistungsfähigkeit von mobilen Netzen auch während des Betriebs beim Kunden wertvolle Telemetriedaten liefern. Software- und Firmwareupdates ermöglichen die Verbesserung bereits ausgelieferter Produkte.
Das Internet der Dinge und die Verbindung von Produktionsmaschinen, Sensoren und Aktoren durch Software führen zur Bildung von Cyber-physischen Systemen.
Das Ziel von Industrial DevOps ist die regelmäßige Aktualisierung (Continuous Delivery (CD)) von Software in Cyber-physischen Systemen während des laufenden Betriebs.

## Begriff

Die ersten DevOps Days fanden 2009 in Gent, Belgien statt. Der Begriff DevOps wurde als Arbeitstitel ein paar Monate zuvor in einem Vortrag von Patrick Debois und Andrew Schafer auf der Velocity Conference genannt. DevOps ist die Verschmelzung von Entwicklung (Dev) und IT-Betrieb (Ops), und fasst Methoden, Prinzipien und organisatorische Vorgehensmodelle für die Entwicklung komplexer Softwareprojekte zusammen. Motiviert durch die Anstrengungen der fertigenden und verarbeitenden Industrie, auf Marktanforderungen agiler zu reagieren und dabei Software und IT-Technologie zu verwenden, entstand der Begriff Industrial DevOps. Wie bei DevOps handelt es sich um einen Oberbegriff, der Technologien und Methoden zusammenfasst, die helfen, das Ziel einer flexiblen, agilen Produktion zu erreichen.
Beispiele für diese Technologien sind:
* Internet der Dinge
* Cloud Computing
* Big Data
* Künstliche Intelligenz
* Resilience Engineering
* No-Code und Low-Code Automatisierung
* Monitoring
* Visualisierung
Das erste Mal tauchte der Begriff 2017 in einem Vortrag von Maik Wojcieszak auf den DevOps Days Zürich, Schweiz auf. Im Februar 2018 startete ein vom Bundesministerium für Forschung und Bildung (BMBF) gefördertes Projekt mit dem Titel Industrial DevOps Plattform für iterative Prozessintegration und Automatisierung für KMU-Innovativ (IKT) mit dem Förderkennzeichen 01IS17084A/B. Geleitet wurde das Kooperationsprojekt der Christian-Albrechts-Universität zu Kiel und der Firma wobe-systems GmbH von Wilhelm Hasselbring und Maik Wojcieszak. Das Thema des Projekts war die Anwendung von DevOps auf die Flexibilisierung von Produktionsanlagen zur Herstellung individueller Produkte (Smart Factory, Industrie 4.0).
Wenige Monate später, im September 2018, veröffentlichte unabhängig davon IT Revolution ein Paper mit dem Titel Industrial DevOps. Das Thema war die Anwendung von DevOps auf die Herstellung komplexer cyber-physischer Produkte (z. B. Maschinen, medizinische Geräte). Im September 2019 veröffentlichte IT Revolution ein weiteres Paper mit dem Titel Applied Industrial DevOps.
Die Firma Siemens veröffentlichte im Oktober 2019 ein Whitepaper mit dem Titel Continuous Delivery and DevOps in industrial environments. Auch wenn der Begriff Industrial DevOps nicht verwendet wird, passt die Arbeit von Dr. Peter Fassbinder inhaltlich.

## Industrie 4.0, Smart Factory und Industrial DevOps

Durch Industrie 4.0 wurde die Vernetzbarkeit von Produktionsmaschinen vorangebracht. Die Möglichkeit der Vernetzung legt den Grundstein für die Steuerung der Produktion durch Software und macht Betriebsdaten von Maschinen überall verfügbar. Die Smart Factory setzt auf der entstandenen Vernetzung auf. Das Ziel ist eine autonome, flexible Fabrik, die Probleme eigenständig erkennt und mithilfe von Künstlicher Intelligenz löst. Dafür werden Daten automatisch korreliert und ausgewertet.
DevOps beschreibt als einen Grundpfeiler für die erfolgreiche Umsetzung von Continuous Delivery (CD) ebenfalls die Automatisierung von manuellen Prozessen. Die gewonnene Zeit wird eingesetzt, um kontrollierte Experimente durchzuführen und das Produkt oder System kontinuierlich zu verbessern. Industrial DevOps liefert auf dem Weg zur smarten Fabrik Antworten auf organisatorische und technologische Fragen.

## No-Code- und Low-Code-Programmierung

Durch Digitalisierungsprojekte und den vermehrten Einsatz von Software in Unternehmen ist der Bedarf an gut ausgebildeten Softwareentwicklern und IT-Administratoren drastisch gestiegen. Gleichzeitig ist der Bedarf an kundenspezifischen Softwarelösungen für die digitale Transformation gestiegen. Das hat den Trend ausgelöst, verstärkt Fachkräfte mit No-Code und Low-Code Lösungen zu befähigen, Softwaresysteme als Teil der täglichen Arbeit zu entwickeln. Diese sogenannten Citizen Developer können Anpassungen in ihrem Fachbereich selbst vornehmen. Der Kommunikationsaufwand mit Softwareentwicklern und IT-Spezialisten wird erheblich reduziert. In der Kritik steht dieses Vorgehen, weil durch häufige Änderungen an laufenden Systemen ohne die in der Softwaretechnik üblichen Standards zur Qualitätssicherung technische Schulden aufgebaut werden. Mit der Zeit werden die Änderungen inkonsistent und die Lösungen schwer pflegbar.
In einem vom BMBF geförderten Forschungsprojekt untersuchen die Christian-Albrechts-Universität zu Kiel und die wobe-systems GmbH, wie DevOps helfen kann, die langfristige Nutzbarkeit von No-Code und Low-Code für die industrielle Prozessautomatisierung und Systemintegration sicherzustellen.
Folgende Fragestellungen wurden untersucht:
* Wie kann Degenerierung von Pflegbarkeit, Erweiterbarkeit und Betriebssicherheit durch häufige Änderungen (Technische Schuld) vermieden werden?
* Wie kann die hohe Abhängigkeit der Anwender von Anbietern einer No-Code-Plattform (Vendor-Lock-In) reduziert werden?
* Welche Maßnahmen zur Erhaltung der inneren Qualität der Plattform sind erforderlich?
* Welche organisatorische Voraussetzungen im Unternehmen sind nötig?
* Wie kann die Wiederverwendbarkeit und Anwendbarkeit von Komponenten maximiert werden?
* Wie wird das Problem inkompatibler Schnittstellen und Daten gelöst?
Die Forschungsgruppe schlägt für eine Industrial DevOps No-Code-Plattform folgende Eigenschaften vor:
* Unterstützung von Teams für die fachliche Zusammenarbeit
* Versionierung, Nachverfolgbarkeit und Verifizierbarkeit von Änderungen
* Herstellerunabhängigkeit der Plattform (Open Source)
* Abgrenzung von Fachbereichen durch klar definierte Schnittstellen
* Skalierbarkeit der Plattform ohne Änderungen der No-Code Projekte
* Automatisierte Verteilung, Test und Inbetriebnahme von Änderungen