Agile, schnelle Software-Entwicklung fruchtet nur, wenn das Resultat im Betrieb auch funktioniert. Ansonsten kommt es zum altbekannten «Blame Game»: Statt dem Fehler auf den Grund zu gehen, beschuldigen sich Betriebs- und Entwicklungsabteilung gegenseitig, Schuld an der Situation zu sein. Wertvolle Zeit verstreicht, bis die Ursache des Problems tatsächlich gefunden wird. Das grosse Potential, das in agiler Software-Entwicklung steckt, löst sich so schnell in Luft auf.
DevOps sorgt dafür, dass Unternehmen Anwendungen und Services wirklich schnell und in kurzen Releasezyklen bereitstellen können. Unter dem Begriff – ein Kofferwort aus «Development» und «Operations» – versteht man einen Ansatz zur Prozessoptimierung zwischen Entwicklung und Betrieb. «DevOps verfolgt die engere Zusammenarbeit über den ganzen Value Stream hinweg», erklärt Urs Enzler, Fachleiter Agile und Architektur bei bbv. Die oftmals isolierte Arbeitsweise von Entwicklung, Testing, Betrieb und Infrastruktur muss aufgebrochen werden, damit zwischen den Teams von Beginn an ein intensiver Austausch stattfinden kann. Nur so wird agile Entwicklung und Continuous Delivery tatsächlich gewährleistet: Wenn Entwicklung und Betrieb besser verzahnt sind, führt das zu verstärkter Kommunikation mit weniger Missverständnissen, Reibungen und Iterationen – und somit zu schnellerer Time-to-Market.
Mit DevOps kommen Automatisierung, Sicherheit und Kulturwandel auf die Agenda
In der Praxis setzt DevOps einen hohen Grad an Automatisierung voraus. Bei der Auslieferung von Software und vor allem beim Testing erfüllen erst automatisierte Verfahren den Anspruch von Continuous Delivery. Geeignete Tools beschleunigen einzelne Vorgänge nicht nur um ein Vielfaches, sondern eliminieren in diesen auch die menschliche Fehlerquelle. Ebenso verlangt DevOps nach einem kontinuierlichen und möglichst automatisierten Monitoring, mit dem die Entwickler viel schneller auf Fehler reagieren können.
Unter Umständen begegnen Unternehmen bei DevOps auch Sicherheitsrisiken: Schliesslich haben in einem DevOps-Team auch Entwickler Zugriff auf operative Daten. «Sollte das wirklich ein Problem sein, kann man den Datenzugriff auf einzelne Personen beschränken», schlägt Enzler vor. Der Nachteil: Ein eingeschränkter Datenzugriff verlangsamt in der Regel die Produktentwicklung. «Unternehmen müssen abwägen, ob sie zugunsten von erhöhter Sicherheit diesen Performance-Verlust auf sich nehmen möchten oder nicht.»
Vor allem geht DevOps aber mit einem grundlegenden Kulturwandel einher. Denn das Modell funktioniert nur, wenn es konsequent umgesetzt und gelebt wird: «Die Schwierigkeit besteht darin, DevOps wirklich End-to-End zu praktizieren», erklärt Enzler. «Wenn man das Modell nur auf einzelne Bereiche der Produktentwicklung anwendet, erreicht man die Versprechen von DevOps nicht.» Das erfordert nicht nur eine veränderte Arbeitsweise, sondern auch eine Neuorganisation zwischen den einzelnen Teams. Entwicklung und Betrieb müssen wirklich grosse Schritte aufeinander zugehen, und das Management muss diese Veränderung unterstützen und vorantreiben. Nur so kann DevOps wirklich gelingen.
Der Experte
Urs Enzler
Urs Enzler war als Expert Software-Architekt .NET bei bbv tätig. Als agil gesinnter Softwareentwickler spricht er an Konferenzen und Communityanlässen gerne über architektonische Herausforderungen und über das Lernen im Team. Enzler ist Co-Gründer der .NET Usergroup Zentralschweiz.