Beyond Banking: How Continuous Integration & Continuous Deployment (CI/CD) Accelerates Customer Value Creation in the Financial Services Industry

«Software is eating the world»

vermutlich Marc Andreessen, 2011

Software is eating the world. Das Thema scheint heute aktueller denn je – schon allein im eigenen Gebrauch zeigt sich, dass immer mehr Dinge «digital» oder eben Software-basiert abgewickelt werden. Aus Briefen wurden Emails und auch Banking funktioniert heute häufiger über das eigene Smartphone als über die Filiale. Das Produzieren von qualitativ hochwertigen Softwarelösungen wird immer mehr zu einem entscheidenden Wettbewerbsfaktor für Unternehmen, die im Umfeld von digitalen Technologien agieren. Insbesondere in einem hochregulierten Markt, wie dem Finanzmarkt, gelten ganz besondere Herausforderungen für die an der Softwareentwicklung beteiligten Unternehmen.

Ein Vorgehen, welches hier häufig beschrieben wird, ist «Continuous Integration/ Continuous Deployment» oder auch CI/CD. Hierbei handelt es sich um ein Vorgehen im Rahmen der agilen Softwareentwicklung sowie der DevOps-Bewegung, das es ermöglicht, die Entwicklung hochqualitativer, kundenzentrierter Software zu beschleunigen. Diese Beschleunigung wird dadurch erreicht, dass kontinuierlich Verbesserungen am Softwarecode vorgenommen werden, die Änderungen unterschiedlicher Nutzer automatisch zusammengeführt und getestet werden («Continuous Integration») und die neuen Codebestandteile bei Erfüllen aller Qualitätsanforderungen automatisch zur Nutzung durch den Kunden freigegeben werden («Continuous Deployment»).

Ein Finanzdienstleister, der dieses Vorgehen seit mittlerweile drei Jahren erfolgreich nutzt, ist die Commerzbank. Sie kann hier sogar mit einer eigenen CI/CD-Pipeline (CHAMP) aufwarten, also einem automatisierten, tool-basierten und integrierten Vorgehen zur Softwareentwicklung, das sie nutzt, um ihre eigene Banking-Software zu bauen. Und wir hatten im Rahmen eines Projekts die Chance, gemeinsam mit Ihnen das Thema CI/CD grundsätzlich und ihre Erfahrungen und Learnings im Speziellen zu beleuchten. Herausgekommen ist das «CI/CD White Paper», welches im Rahmen des CI/CD-Tech-Dialogs am 08. Juni vorgestellt wurde und unter anderem über den folgenden Link verfügbar ist: https://developer.commerzbank.com/open-banking. Ich lade Euch alle herzlich zur Lektüre ein.

Ziel des White Papers ist es, einen Einblick in die Funktionsweise von Continuous Integration/Continuous Deployment zu geben, mit der CI/CD-Pipeline eine mögliche Umsetzung des Vorgehens vorzustellen und Best Practices aus drei Jahren Erfahrung zusammenzutragen. Einen Einblick in die Thematik «CI/CD» sowie weitere Erläuterungen zur Applikation bei der Commerzbank findet Ihr im White Paper.

In diesem Blogbeitrag möchte ich einen kurzen Überblick über die fünf Key-Take-Aways geben, die wir aus dem White Paper gezogen haben:

  1. CI/CD accelerates customer value creation in the financial services industry
    Wie bereits eingangs beschrieben, wird Software zu einem immer entscheidenderen Wettbewerbsfaktor. Im Rahmen der Finanzindustrie kommt hinzu, dass man sich in einem stark regulierten Markt bewegt – eine Tatsache, die die Anforderungen an Softwarelösungen deutlich steigert. Mit dem Aufbau einer CI/CD-Pipeline als Rückgrat des CI/CD-Ansatzes wie bei der Commerzbank wird es möglich, qualitativ hochwertige Softwarelösungen innerhalb kurzer Zeit bereitzustellen. Hierbei helfen vor allem ein hoher Grad an Automatisierung sowie u. a. das kontinuierliche Integrieren von Tests über den Entwicklungszyklus. Letztlich profitieren vor allem KundInnen davon, dass so eine hohe Qualität gewährleistet werden kann.

  2. The implementation of a CI/CD pipeline needs to follow a set of technical principles
    Der Aufbau einer eigenen CI/CD-Pipeline ist ein Schlüsselelement, um den eigenen CI/CD-Ansatz durchzusetzen: Da jedes Unternehmen einen eigenen Entwicklungsprozess besitzt und unterschiedliche Software und Entwicklungsumgebungen einsetzt, gibt es hier keinen «Standardansatz», sondern es bedarf der Integration von Unternehmensspezifika. Weiter muss sichergestellt werden, dass der Ansatz skalierbar ist, hohe Datenschutzstandards einhält und das Risiko von Ausfällen minimiert wird. Genauso sollte darauf geachtet werden, dass jede für den Entwicklungsprozess benötigte Software in die Pipeline integriert werden kann, d. h. dass sie Technologie-agnostisch konzipiert wird. Ein wichtiger Aspekt beim Aufbau ist, dass es sich auch hierbei um einen iterativen Prozess handelt. Das kontinuierliche Aufnehmen von Nutzerfeedback während des Aufbaus ist ein Kernelement für den Erfolg.

  3. CI/CD is not just about tools and processes, it is also about teams that have end-to-end responsibility
    Letztlich ist Softwareentwicklung vor allem auch ein «people business». Es geht darum, Menschen zu befähigen, hochqualitative Software zu entwickeln. Die Entwickler müssen dazu enabled werden, ohne starke Abhängigkeit von anderen Teams arbeiten zu können und Software von der Planung bis zum Einsatz in grösstmöglicher Eigenverantwortung (End-to-End Verantwortung) entwickeln zu können. Hierzu müssen die Entwickler technologisch, wie auch kulturell enabled werden, indem z. B. ein psychologisch sicheres Umfeld geschaffen wird, in dem Teammitglieder sich trauen, Fehler zuzugeben und aus ihnen zu lernen.[1]

  4. An empowering CI/CD approach leveraging the strength of cross-functional teams is key
    Um qualitativ hochwertige Software mit gesteigerter Geschwindigkeit zu entwickeln, braucht es die Kollaboration von Experten aus verschiedenen Teams. Neben DevOps – also Development und Operations – glauben wir, dass auch weitere Experten eine bedeutende Rolle einnehmen sollten. Wir glauben, dass hier «BizDevSecOps»-Teams – also Business, Development, Security und Operations – die Zukunft bilden.

  5. Everything as Code (EaC) as the new norm, meaning automation via software will be everywhere
    EaC, d. h. die Behandlung jeglicher Information als Softwarecode, nimmt eine zentrale Rolle bei der Ermöglichung der Zusammenarbeit zwischen verschiedenen Teams ein. Ein Ansatz, der in diesem Zusammenhang zu nennen ist, ist der sogenannte «Shift-Left-Ansatz». «Shift Left» bedeutet hier, dass Software-Tests und Qualitätschecks so früh wie möglich in den Softwareentwicklungsprozess integriert werden – im Prozess also weiter nach links wandern –, um mögliche Widersprüche oder Fehler so früh wie möglich zu entdecken und zu umgehen. Weiter schafft EaC die Voraussetzungen, zukünftig auch Themen wie «Compliance as Code» zu bedenken, sodass neuer Code in Zukunft automatisch auf die Übereinstimmung mit geltenden gesetzlichen Bestimmungen überprüft werden kann. EaC schafft die Voraussetzungen dafür, dass die CI/CD-Pipeline als «Single-Point-of-Truth» gelten kann, da dort alle relevanten Informationen in Form von Code festgehalten sind.

Ja, «Software is eating the world» scheint relevanter zu sein denn je. Hochqualitative Software scheint wichtiger zu sein denn je. Aus meiner Sicht alles nicht schlimm. Zu bedenken ist, dass die notwendigen Voraussetzungen geschaffen werden, um als Unternehmen bei dieser Entwicklung nicht unterzugehen. Eine CI/CD-Pipeline schafft hier die entsprechende Grundlage – unsere Key-Take-Aways habe ich oben bereits vorgestellt. Zum Schluss möchte ich noch mein persönliches Learning aus dem Projekt hervorheben: Ja, bei CI/CD handelt es sich grundsätzlich um ein Technologiethema – dennoch: Softwareentwicklung ist ein «People Business». Es geht darum, Menschen zu befähigen, hochqualitative Software zu entwickeln. Das Nutzen von agilen Methoden hat sich hier bewährt. Ein «Doing Agile» hilft hier jedoch gar nichts – ich kann mit «Jira-Tickets» auch einen «Wasserfall» nachbauen. Gewonnen habe ich damit Agilität auf dem Papier – «Ja, wir nutzen «agile Tools»» – wirklichen Mehrwert habe ich damit jedoch nicht geschaffen. Wichtig ist im Zusammenhang mit der agilen Softwareentwicklung ein «Being Agile»: das Leben der agilen Werte und Umsetzen im Projekt. Es muss geschafft werden, die Menschen 1. auf der Reise mitzunehmen und für agile Arbeitsweisen zu begeistern, 2. zu befähigen ihre Potenziale und die Potenziale von neuen Technologien zu nutzen und 3. ihnen Raum führ Fehler zu lassen und die Möglichkeit zum Ausprobieren zu bieten. Um das zu schaffen, gibt es sicherlich nicht «den einen» Ansatz – es ist mehr ein iterativer Prozess, der gemeinsam mit allen Beteiligten gestaltet werden muss.

Neben den Key-Take-Aways findet ihr im CI/CD White Paper auch Hypothesen zur Zukunft von CI/CD. Hierin haben wir unter anderem auch den Einfluss von technologischen Entwicklungen, wie z. B. Machine-Learning, aufgenommen. Schaut doch gerne mal rein und gebt uns ein Feedback – ich freue mich auf den Austausch.


[1] Mehr dazu, was eine agile Kultur, einen agilen Führungsstil und ein agiles Mindset ausmacht, erfahrt Ihr unter den jeweiligen Links in den Blogbeiträgen von Katharina Schache.

Dennis Vetterling

Was sind Deine Erfahrungen mit dem Thema? (Kommentieren geht auch ohne Anmeldung oder Einloggen; einfach kommentieren, auf Freigabe warten und fertig!)