Continuous delivery

Continuous delivery

Bei der agilen Transformation einer Organisation gilt es diverse Dimensionen zu beachten. Im Fokus vieler Artikel dieses Blogs stand bisher der Faktor Mensch. Ob Führungskraft oder Mitarbeiter, ob Fachbereich, IT-Entwicklung oder Betrieb, alle müssen durch ein angemessenes Management of Change abgeholt werden, damit die Transformation gelingen kann.

Eine weitere Dimension stellen allerdings die Tools dar. Diese lassen sich wiederum in zwei Bereiche eingruppieren. Der eine Bereich sind die Kollaborationswerkzeuge, wie JIRA, Skype for Business, MS Teams und TeamViewer. Diese Kollaborationswerkzeuge sollen agile Teams dabei unterstützen, möglichst effektiv und effizient zusammen zu arbeiten. Sie erst ermöglichen eine dezentrale Zusammenarbeit und sind somit oft Grundvoraussetzung für eine agile Aufstellung von Teams. Der zweite Bereich knüpft an den zuvor genannten an und kommt erst zum Tragen, wenn die agile Arbeitsweise und die entsprechenden Prozesse, die mit der Nutzung der Kollaborationswerkzeuge einhergehen, verinnerlicht bzw. implementiert sind.

Die Rede ist von einer Deployment Toolchain, welche Continuous Deployment ermöglicht. Sozusagen die Königsdisziplin von agilen Organisationen in einem digitalen Umfeld.

Die Idee dahinter ist recht simpel: Möglichst schnell und automatisiert neue Versionen einer Software einzuspielen und in den Betrieb zu bringen. Selbstverständlich ohne die Stabilität des Systems zu gefährden und bei möglichst geringem Risiko. Die Toolchain ist dann wiederum eine Aneinanderreihung von Tools, die entlang des Deployment-Prozesses automatisiert ineinandergreifen, um die zuvor beschriebene Idee zu realisieren.

Was auf dem Papier erst einmal leicht erscheint, stellt sich in der Praxis jedoch oft als großer Herausforderung dar. Denn zuerst muss die Arbeitsorganisation angepasst werden, bevor eine solche Toolchain den Nutzen generieren kann, für den sie eigentlich gedacht ist. Denn auch bei längeren Release-Intervallen gibt es bereits Toolchains. Im Fokus der agilen Idee steht jedoch der Durchsatz, verbunden mit dem daraus resultierenden Nutzen. Und der wird erst generiert, wenn der Anwender die neue Softwareversion und somit die neue Funktionalität nutzen kann.

Daher gibt es mehrere Grundprinzipien, die gelten: Ein erstes Prinzip für eine erfolgreiche Implementierung der Deployment Toolchain ist ein angemessener Umfang der Releases, die eingespielt werden sollen. Nur so kann ein Zielbild von mehreren Deployments täglich realisiert werden. Ein zweites Prinzip ist, dass das System immer stabil und funktionsfähig ist. Dies muss beim Schnitt von Releases ebenfalls beachtet werden. Und selbstverständlich müssen auch die Prozesse entsprechend angepasst werden, um die Geschwindigkeit zu erzeugen. Egal ob Change Management, Test Management oder weitere Prozesse – wenn diese nicht auf die Geschwindigkeit zugeschnitten sind, mit der Deployments durchgeführt werden sollen, dann kann die Toolchain noch so automatisiert sein, sie wird den gewünschten Durchsatz nicht generieren.

Sind diese Prinzipien jedoch erst einmal etabliert, kann die Toolchain individuell nach den eigenen Bedürfnissen ausgestaltet werden. Am Markt gibt es eine ganze Reihe an Tools von diversen Anbietern, welche Sie bedarfsorientiert einsetzen können. Bei der Zusammenstellung Ihrer Toolchain sollten Sie jedoch Folgendes im Hinterkopf behalten:

  • Bewerten Sie zunächst Ihre bestehende Toollandschaft bzgl. Automatisierungsfähigkeiten
  • Passen Sie erst Ihre Prozesse an und automatisieren Sie erst anschließend
  • Legen Sie den Fokus auf Workflow-Engpässe und Kommunikation zwischen den Tools
  • Bedenken Sie, dass es sich um einen iterativen Prozess handelt

Sollten Sie noch tiefer in dieses Thema einsteigen wollen, empfehle ich Ihnen sich mit dem Thema DevOps näher vertraut zu machen – zum Beispiel durch ein DevOps-Foundation-Training, welches Ihnen einen hervorragenden Background bietet.

Menü