Continuous Deployment als Bestandteil des Lean-Startup-Konzepts, das Eric Ries formuliert hat, sieht die umgehende Auslieferung geschriebenen Codes und damit stark verkürzte Release-Zeiten vor, wobei eine durchgehende und automatisierte Test- und Freigabekette für einwandfreie Qualität sorgen soll. In diesem kompakten Artikel und einem ausführlichen Video gehen wir auf die wichtigsten Aspekte dieses Vorgehens ein.
Grundideen des Continuous-Deployment-Ansatzes
Ironisch fasst Kent Beck die Continuous-Deployment-Idee so zusammen:
“Write one line of code. Deploy. […] Once the deployment is done, write another line of code. Deploy.”
Damit ist die Grundidee erfasst: Ganz im Sinne des Lean-Startup-Konzepts geht es darum, Hypothesen schnell auf dem Markt zu testen und Code umgehend auszuliefern – und somit das Software-Produkt schneller weiterzuentwickeln, kürzere Release-Zyklen zu erreichen und aufwändige Deployments zu vermeiden. Das Konzept kommt bei //SEIBERT/MEDIA beispielsweise bei der Entwicklung des Egotracking-Tools TwentyFeet zur Anwendung.
Continuous Deployment soll die manuellen Schritte im Software-Entwicklungsprozess so weit wie möglich minimieren: Entwickler schreiben Code und schicken ihn direkt in die Produktion – zugunsten unmittelbarer Ergebnisse und schneller Fehlererkennung und -behebung.
Die Deployment Pipeline
Der Continuous-Deployment-Prozess hangelt sich entlang der sogenannten Deployment Pipeline, einer Qualitätssicherungs- und Freigabekette, die der Code bis zur finalen Auslieferung durchlaufen muss. Wenn der Entwickler also Code in die Produktion schickt, muss dieser Code mehrere Tests erfolgreich durchlaufen, damit er veröffentlicht wird.
Welche Elemente eine solche Deployment Pipeline enthalten kann, visualisiert dieses Diagramm am Beispiel der TwentyFeet-Entwicklung:
Video-Beratung: Schneller entwickeln dank Continuous Deplyoment
Welche Vorteile bietet ein solches Vorgehen Entwicklungsteams nun? Welche Tests und Kontrollmechanismen sieht Continuous Deployment konkret vor? Wie steht es um das Verhältnis zwischen starker Automatisierung und Produktqualität? Welche Rahmenbedingungen müssen erfüllt sein und welche Herausforderungen treten auf?
Antworten bietet diese Aufzeichnung unserer ausführlichen Video-Live-Session zum Thema, in der Joachim Seibert, Bereichsleiter von //SEIBERT/MEDIA/TECHNOLOGIES, und Martin Seibert die wesentlichen Aspekte des Continuous-Deployment-Ansatzes diskutieren:
Sie sehen gerade einen Platzhalterinhalt von Youtube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Dieses Video downloaden (MP4, 400 MB)
Ihr Partner für agile Software-Entwicklung und agile Organisation
Haben Sie Fragen zu agilen Vorgehensweisen in der Organisation und der Software-Entwicklung? Möchten Sie Agilität in Ihrem Unternehmen einführen oder bestehende Prozesse verbessern? Bei //SEIBERT/MEDIA ist "Agile" in Projekten und in der internen Organisation an der Tagesordnung. Gerne helfen wir Ihnen bei der Etablierung und Optimierung agiler Prinzipien und Verfahren in Ihrem Unternehmen – sprechen Sie uns einfach unverbindlich an. Ausführliche Informationen zu unseren Agile-Dienstleistungen finden Sie in unserem Agile-Orientierungsangebot mit Leistungsbeschreibungen und Beispielkalkulationen.
Weiterführende Informationen
Agile Software-Entwicklung vs. Wasserfall-Modell: Was die Forschung sagt
Agile Software-Entwicklung erfordert viel Disziplin
Software-Tests: Notwendigkeit und Arten des Testens
Unit-Tests in der Software-Entwicklung
Blog-Post von Eric Ries: Why Continuous Deployment?
Blog-Post von Ash Maurya: Continuous Deployment
Mehr über die Creative-Commons-Lizenz erfahren