Der DevOps-Ansatz verspricht eine effizientere und reibungslosere Zusammenarbeit von Softwareentwicklung und IT-Betrieb. Indem die beiden Bereiche gemeinsame Prozesse und Tools nutzen, lassen sich die Anforderungen an den Betrieb einer Software bereits bei ihrer Entwicklung berücksichtigen. Dadurch steht sie schneller für den produktiven Einsatz bereit und ihre Qualität steigt. In der Praxis wird dieser Ansatz aber oft nicht konsequent genug umgesetzt.
1. Keine Testautomatisierung
Um neue Software-Releases trotz hoher Geschwindigkeit ohne Qualitätseinbußen ausliefern zu können, sind automatisierte Tests unerlässlich. In der Realität finden diese allerdings oft gar nicht oder nur in geringem Umfang statt. Das hat erhebliche Verzögerungen zur Folge. Im Extremfall werden sogar überhaupt keine Tests durchgeführt, was sich dann im Produktiveinsatz der Software bitter rächen kann. Deshalb sollten unbedingt Tools für automatisierte Tests zum Einsatz kommen. Solche Werkzeuge stehen nicht nur für moderne, sondern auch ältere Programmiersprachen zur Verfügung. Dadurch lässt sich DevOps auch für Bestandsanwendungen einsetzen.
2. Kein Monitoring
Ein ebenso verbreitetes Defizit ist die fehlende Überwachung der Auswirkungen von fachlichen Änderungen einer Software im Produktiveinsatz. Es ist kein Blick in die Produktivsysteme vorhanden. Dadurch kann es nach den Installationen zu Problemen kommen und es ist auch kein Soll-Ist-Vergleich möglich. Ziel muss es aber sein, zu messen, ob Veränderungen zu Verbesserungen oder Verschlechterungen im produktiven Umfeld führen. Ausgewählten Nutzergruppen, seien es in interne Anwender oder Kunden, sollte deshalb ein telematischer Zugang zu Bereichen der Software freigeschaltet werden, um sie vorab nutzen zu können und Feedback zu geben.
3. Keine Eigenverantwortung
Niemand weiß besser, wie sich neue Codezeilen auswirken werden, als die Entwickler, die sie geschrieben haben. Deshalb sollten sie in Eigenverantwortung über Rollouts entscheiden können. Entdecken sie beispielsweise nachts einen Fehler, sollten sie ihn sofort beheben und den Fix direkt einspielen dürfen – ohne dafür eine Freigabe von jemandem aus der Management-Ebene zu benötigen, der gar nicht über den Sachverhalt Bescheid weiß oder gerade nicht verfügbar ist. Das heißt auch, eventuelle Fehler auszuhalten. Kommt es zu Fehlern, und sie werden dem Entwickler zum Vorwurf gemacht, wird sein Wille zu eigenverantwortlichem Handeln immer geringer und er wird sich stets rückversichern wollen. Dadurch zieht sich der gesamte Prozess in die Länge.
4. Kein unternehmensweites Lernen
Ein wesentlicher Erfolgsfaktor von DevOps ist das Teilen von Wissen. Das findet aber oft nicht statt. So werden etwa durchgeführte Anpassungen an eine Software nicht dokumentiert, sondern lediglich besprochen. Im Extremfall behält sogar jeder sein Wissen komplett für sich. Sind vorhandene Erkenntnisse nicht zentral verfügbar, führt das aber zu Mehrarbeiten und Fehlern. Eine wertvolle Hilfe für das Erfassen und Teilen von Wissen kann Künstliche Intelligenz bieten – indem sie etwa Chats durchsucht. Tritt beispielsweise ein Problem mit einer Software auf, kann KI alle Inhalte, die dazu im Chat bereits vorhanden sind, finden und zusammenführen. Die Entwickler können dann bei der Ursachensuche direkt darauf aufbauen, den Fehler beheben, den angepassten Code in die Produktivsysteme einspielen und die Änderungen dokumentieren.
„Der DevOps-Ansatz ermöglicht Unternehmen eine schnellere Einführung neuer Software und kürzere Problemlösungszeiten. Dafür muss er aber richtig angewendet werden“, sagt Nadine Riederer, CEO bei Avision. „Seine volle Stärke kann er nur ausspielen, wenn die Tests hochautomatisiert sind, die Produktivsysteme überwacht werden, Entscheidungen nicht an andere Ebenen delegiert werden müssen und alle Beteiligten ihr Wissen miteinander teilen.“