Wann ist Software fertig?

„Ich habe fertig!“ Warum für DevOps fertig nicht gleich fertig ist

Kypriani Sinaris

©Shutterstock/faithie

Der Blogger Steve Ropa schlägt die Involvierung von DevOps in agile Entwicklungsprozesse vor. Ein Code ist dann fertig, wenn alle Sprints des Testens und Deployens bis hin zur Performance-Evaluierung und Health Checks durchgeführt wurden. Aber ist dann wirklich alles „fertig“? In seinem Beitrag auf DZone meint Kris Buyaert: Nein! Wann haben wir fertig?

DevOps ist ein Kofferwort. Der Koffer aus Development und Operations, die Schnittstelle zwischen der Softwareentwicklung und dem Betrieb, sollte laut Steve Ropa aber nicht geschlossen werden. Vielmehr soll er hin zu agilen Strukturen geöffnet werden und diese verändern. Denn Software-Entwicklung endet nicht mit der Kodierung und dem Testen der Software – in der DevOps-Welt bedeutet „fertig“, dass die Software auch in der folgenden Produktion läuft.

Wann bedeutet „fertig“ fertig?

Steve Ropa schlägt vor, dass „fertig“ erst fertig bedeutet, wenn die Kontrolle, Evaluierung und Health Checks durchgeführt wurden. Denn bei DevOps gehe es um kontinuierliches deployen. Und das geht eben nur, wenn der Code wirklich fertig ist. Liefert man dem Kunden einen Code, bei dem nach dem deployen Fehler auftreten, dann ist das nicht nur unangenehm, sondern auch ein Zeichen dafür, dass der Prozess eben noch nicht abgeschlossen ist. Man sollte das Verhalten des Codes nach dem Deployment kennen, daher sei die Aufnahme von DevOps in die Definition von „fertig“ wichtig, so Steve Ropa. Und wie sieht das in der Praxis dann aus?

Es müssen ein paar zusätzliche Schritte eingeführt werden, um DevOps in einen „fertigen“ Prozess einzufügen. Zunächst sollten alle Voraussetzungen geschaffen werden, um zu verstehen, wie sich der Code nach dem Deployen verhalten könnte. Plant man ein Projekt, so sei es wichtig zu verstehen, was ein erfolgreiches post-Deployment bedeutet. Es gilt: Jedes Team-Mitglied ist zugleich Entwickler, Tester und Teil des Operations-Teams. Development und Operations sind damit beide Teil agiler Sprints, mit deren Abschluss ein Projekt wirklich fertig sein soll.

Sollen jetzt alle Teil agiler Teams werden?

Kris Buyaert widerspricht. Denn selbst nach derartigen Sprints, also wenn die Software dann deployt werden kann, muss diese noch gepflegt werden, es müssen Stack Upgrades oder kleinere Änderungen an der Anwendung durchgeführt werden. Denn die Delivery Pipeline muss laufen. Und dieser Prozess endet laut Kris Buyaert nie:

Done is when your last enduser is in his grave

Mit diesen (zugegebenermaßen sehr dramatischen) Worten betont er, dass die Entwicklung eben nicht nach einem Sprint der Prüfung und Validierung „fertig“ ist. Fertig ist man erst, wenn die Applikation außer Betrieb ist, so der Entwickler. Er schlägt eine eigene „Definition of Done“ in Scrum vor, an der sich agile Entwickler-Teams orientieren können. Diese soll die einzelnen Mechanismen für alle Team-Mitglieder transparent machen, um die Qualität des Produkts zu verbessern.

„Ich habe fertig“ kann zumindest im Bezug auf die Rolle von DevOps wohl nicht behauptet werden. Ob Sie Steve Ropa oder Kris Buytaert zustimmen, es scheint, als sei der Prozess der Software-Entwicklung, ob innerhalb eines agilen Teams oder nicht, noch lange nicht in Stein gemeißelt. Oder anders: Der DevOps-Koffer scheint noch nicht fertig gepackt zu sein.

Aufmacherbild: To do von Shutterstock / Urheberrecht: faithie

Geschrieben von
Kypriani Sinaris
Kypriani Sinaris
Kypriani Sinaris studierte Kognitive Linguistik an der Goethe Universität Frankfurt am Main. Seit 2015 ist sie Redakteurin bei JAXenter und dem Java Magazin.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: