Die andsafe AG ist ein im Oktober 2018 als 100-prozentige Tochter der Provinzial gegründeter digitaler Versicherer. Bereits im Mai 2019 wurde das erste Versicherungsprodukt mit der Betriebshaftpflichtversicherung gelauncht. Grundlage war die Standardsoftware der adesso insurance solutions, die für die wesentlichen versicherungstechnischen Kernprozesse wie Vertrag, Leistung und Partner zum Einsatz kam. Die Softwarekomponenten für die Endkunden, aber auch für Versicherungsmakler und Vergleicher, wurden Inhouse durch die andsafe AG entwickelt. Hierbei handelt es sich im Wesentlichen um die Abschlusstrecken, Schadenstrecken und das Kundenportal.
Digitaler Vorreiter in der Versicherungsbranche
Das Versicherungs-Start-up fokussiert sich auf die Reduzierung des Verwaltungsaufwands und die Verschlankung der Prozesse, um so mehr Leistung für die eigenen Versicherten erbringen zu können. Von Vorteil ist die gesellschaftsrechtliche Konstellation, denn mit der Provinzial steht ein starker Investor hinter der digitalen Tochter – hier werden profunde Erfahrungen und innovative Technologien effektiv verknüpft:
Umso wichtiger ist es, dieses hohe Niveau nachhaltig zu sichern: Dazu wurde der Fokus auf den Aufbau eines effizienten Software-Qualitätsmanagements gesetzt, das verschiedene Aspekte wie die Toolauswahl, die Einführung einer Testmethodik für agile Projekte, aber auch eine revisionssichere Dokumentation der Testfälle und -ausführungen umfassen sollte. Teil der Lösung war der Einsatz eines Nearshore-Teams, das die Testfälle erstellt und durchführt, sowie der optimale Mix aus Testautomatisierung und manuellen Ausführungen. Eine Anforderung war, dass die vielen unterschiedlichen mobilen Endgeräte bei den manuellen Tests und der Testautomatisierung umfassend berücksichtigt werden.
Die Herausforderungen: Komplexität, Zeitdruck und ein neues Team
Die Zielsetzung war ehrgeizig: Im November 2019 startete der Aufbau der IT, bereits für Mai 2020 war der Go-Live der Anwendungslandschaft in der Amazon Cloud geplant. Neben dem Customizing der versicherungsfachlichen Standardsoftwarelösung wurde ein komplettes Kundenportal mit zahlreichen Services und die Abschlussstrecke für ein innovatives Versicherungsprodukt entwickelt. Direkt zum Start wurden dabei verschiedene Vertriebswege implementiert und neben dem Direktvertrieb auch Versicherungsmakler und Vergleicher angebunden.
Zu Beginn des Projekts lag der Fokus naturgemäß auf dem Aufbau der fachlichen Vision, der Konkretisierung dieser in Form von User-Storys und der Entwicklung von technischen Fähigkeiten, um diese umsetzen zu können. In dieser Phase stand die Qualitätssicherung der Software nicht so stark im Fokus, da sich Ideen auch noch schnell geändert haben und Refactoring zum Tagesgeschäft gehörte.
Als wir im Februar – drei Monate vor Go-Live – als Berater in das Projekt eingestiegen sind, gab es weder einen übergeordneten Testnoch einen einheitlichen Releaseprozess, aber es war schon eine Menge Software entstanden – der Projektstart war demnach eine spannende Herausforderung:
Große Teile der Standardsoftware waren noch nicht fertiggestellt. Der Releasezyklus des Drittanbieters war nicht mit den Sprints bei andsafe synchronisiert. User-Storys, also die fachlichen Beschreibungen aus Sicht des Anwenders, die für agiles Vorgehen essenziell sind, enthielten anfänglich noch wenig stabile Akzeptanzkriterien. Diese bilden jedoch die Basis für die Testfälle und sind notwendig, um feststellen zu können, wann die technische Umsetzung überhaupt korrekt ist.
Eine weitere Herausforderung stellte die parallele Entwicklung mit mehreren Scrum-Teams dar, deren Produkte sich am Ende vollständig integriert für den Kunden wie eine Lösung darstellen sollen. Hier geht es also nicht nur um die Qualität einzelner Bausteine, sondern des großen Ganzen und übergreifender Prozesse. Aber wer ist dafür verantwortlich?
Die Umsetzung: Theorie und Praxis – zwei Seiten einer Medaille
Zur Entwicklung der Software ging andsafe agil auf der Basis des Scrum-Frameworks vor, wobei sämtliche Softwarekomponenten in der Cloud betrieben werden. Im Februar 2019, vier Monate nach dem Entwicklungsstart, sollte ein übergreifend einheitliches Qualitätsmanagement eingeführt werden.
Die Theorie
Die Idee war, das Testteam als eigenes zentrales Team, also als „shared Service“ für die Dev-Teams, zu organisieren. Die cross-funktionale Zusammensetzung der Scrum-Teams wurde hier also bewusst durchbrochen. So sollte sichergestellt werden, dass sowohl der Impact für die Dev-Teams, die mitten in der Entwicklung waren, minimal war und gleichzeitig die einzelnen Produkte der Entwicklungsteams vollständig integrativ aus Sicht des Kunden betrachtet wurden.
Die Etablierung der Testprozesse und der Aufbau des Testteams sollten in drei Phasen erfolgen: Auf eine einmonatige Anlaufphase folgten ein Go-Live über drei Monate und eine anschließende Optimierungsphase für einen effizienten, fortlaufenden Regelbetrieb.
Phase 1 – Anlaufphase
In der Anlaufphase wurde der Aufbau des Testteams initiiert, das aus zwei Testmanagern sowie drei Testern vor Ort und zwei deutschsprachigen Testern in Klausenburg (Cluj-Napoca, Rumänien) bestand. Die Tester nahmen an den Daily Meetings der Dev-Teams teil, um so einen bestmöglichen Austausch mit den Softwareentwicklern zu realisieren. Hier zeigte sich, dass durch die Zusammenarbeit des zentralen Testteams mit den Dev-Teams die Entwicklung der Testfälle und der Akzeptanzkriterien der User-Storys immer exakter wurden und damit natürlich auch die Qualität der User-Storys erheblich gesteigert wurde.
Für die agile Entwicklung in den Scrum-Teams wurde bereits Jira von Atlassian eingesetzt, sodass es naheliegend war, das Testmanagement-Tool auf Jira aufzubauen. Aufgrund der vorhandenen Erfahrungen in anderen Projekten wurde kurzfristig das Jira-Plug-in „Xray Test Management for Jira“ eingeführt. In dieser Phase erfolgte auch die Definition des Testprozesses.
Zudem wurden Maßnahmen definiert, die die effiziente Zusammenarbeit der einzelnen Teams sicherstellen sollten. So arbeiteten die rumänischen Kollegen in der ersten Zeit vor Ort, um eine konstruktive Zusammenarbeit teamübergreifend zu erleichtern.
Zum Teststart wurde gezielt auch auf exploratives Testen gesetzt. Während drei Tester explorative Tests durchführten, arbeiteten die anderen die vorliegenden User-Storys durch und erarbeiteten eine einheitliche Struktur für die Testfälle. So gelang es, die ersten strukturierten Tests für eine ordentliche Testabdeckung in kurzer Zeit zu erstellen, die wichtigsten Prozesse zwischen Testmanagern und Entwicklern, Product Ownern, Scrum Master und Management abzustimmen und gleichzeitig durch die explorativen Tests erste Fehler aufzudecken und den Testern ein gutes Verständnis der versicherungsfachlichen Systeme zu vermitteln.
Zu guter Letzt stand der Aufbau einer Abnahmetestumgebung an. Hier zeigten sich die Stärken der Cloud und der innovativen Entwicklungswerkzeuge, die es ermöglichten, in kurzer Zeit eine produktionsnahe Umgebung aufzubauen, die eine kontinuierliche Belieferung mit den einzelnen Softwarekomponenten ermöglichte.
Phase 2 – Go-Live
Um eine gute Testabdeckung zu gewährleisten, ging es in der Folge um die strukturierte Erstellung von Testfällen, wobei die einzelnen Anwendungsteile gezielt mit unterschiedlichen Testprioritäten versehen wurden: Themen mit Kundenauswirkung oder im direkten Zusammenhang mit der Zahlungsabwicklung wurden am höchsten priorisiert. Gleichzeitig stellte sich heraus, dass die regelmäßigen explorativen Tests einen wichtigen Beitrag zu einer sinnvollen Priorisierung leisteten, da sie wichtige Hinweise auf fehleranfällige Komponenten gaben.
Die Go-live-Phase war gezeichnet von täglichen Deployments auf der Testumgebung. Hier zeigte sich gleich mehrere Vorteile der autark agierenden zentralen Testteams:
- Das Testteam war durch seine Zusammenarbeit mit den Dev-Teams optimal aufgestellt, um die Koordination der einzelnen Releases und Deployments zu steuern, und übernahm quasi die Rolle des Release Train Engineers, wie sie im agilen Framework SaFe definiert ist.
- Zudem erlaubte die Unabhängigkeit des Testteams, die Zusammenstellung der Dev-Teams von andsafe zu optimieren, ohne Auswirkungen auf das in dieser Phase sehr wichtige Qualitätsmanagement.
- Nicht zuletzt konnte das Testteam unabhängig skalieren, ohne dass sich die Schnittstellen zu den Scrum-Teams änderte. So konnten nach der erfolgreichen Etablierung des Teams und der Prozesse sukzessive der Umfang und die Aufgaben des Testteams erweitert werden.
Phase 3 – Optimierung und Regelbetrieb
Der erste Erfolg war, dass der ambitionierte Zeitplan gehalten wurde und der Go-Live der Gesamtinfrastruktur mit dem Verkaufsstart der andsafe-Betriebshaftpflichtversicherung erfolgte. Nun lag der Fokus auf der kontinuierlichen Weiterentwicklung der Software und des Produktportfolios. Das hieß im Umkehrschluss, dass der manuelle Testumfang sich deutlich vergrößerte.
Ein weiteres Ziel war eine schnellere und regelmäßigere Auslieferung von Softwareanpassungen in Produktion. Dazu wurden Continous-Delivery-Prozesse etabliert – eine besondere Herausforderung für Softwaretests in Hinblick auf die wirtschaftliche und effiziente Qualitätssicherung des Gesamtsystems.
Jetzt war der richtige Zeitpunkt gekommen, die Effizienz des Testteams auch bei steigendem Funktionsumfang und kürzeren Releasezyklen sicherzustellen. Dazu wurden Verfahren zur Testautomatisierung eingeführt. Durch die bestehende Testerfahrung konnten stabile Anwendungsteile identifiziert werden, um mit einem Team von drei Entwicklern die Automatisierung des Regressionstests zu starten. Die automatisierten Testfälle wurden dazu mit Cucumber und Gherkin beschrieben und mit Ruby ausgeführt. Ein Vorteil dieser Lösung war die einfache Integration in das Testmanagement-Werkzeug Xray. Dadurch konnte eine einheitliche Sicht auf manuelle und automatisierte Testfälle sowie deren Ausführung gewährleistet werden. Um die Vielzahl an unterschiedlichen mobilen Endgeräten abzudecken, kam die cloudbasierte Testplattform BrowserStack zum Einsatz. Die Testumgebungen wurden gemäß den Bedürfnissen der agilen Softwareentwicklung aufgebaut und es wurde ein Prozess definiert, der den Integrationstest und die produktive Auslieferung mit jedem Sprint (Zwei-Wochen-Intervalle) definiert (siehe Abbildung 1).
Abb. 1: Agiler Softwareentwicklungs- und Testprozess
Fazit: Flexibles Vorgehen zeigt den gewünschten Erfolg
Das Go-Live der digitalen Versicherungsplattform war ein großer Erfolg. In nur drei Monaten wurde dazu ein individuelles Testvorgehen eingeführt, auf dessen Basis 600 End-to-End-Testfälle geschrieben und durchgeführt wurden. Dabei wurden über 1.600 Fehler gefunden, dokumentiert und behoben. Wesentlicher Erfolgsfaktor war die Entscheidung, von vornherein mit einem autark agierenden Testteam, das parallel zu den bestehenden agilen Dev-Teams aufgebaut wurde, zu starten und zwei parallelen Handlungssträngen zu folgen:
- Einerseits die Durchführung explorativer Tests, um einen qualitativen Überblick zu erhalten, sowie
- andererseits der Aufbau eines professionellen und standardisierten Testprozesses, der die Grundlage für die Automatisierung bildet, welche die Effizienz des Testteams nachhaltig sicherstellt und der Garant für eine hohe Softwarequalität bei steigender Anzahl von Deployments ist.