"Die schlimmsten IT-Architekturen entstehen, wenn die Technik an erster Stelle kommt. Daher stellen wir uns die Technikfrage erst ganz am Schluss," erklärt Benedikt Stemmildt, CIO bei Blume 2000, zu seiner IT-Strategie. Als er im April 2020 bei dem Onlinehändler einstieg, fand er in seinem Bereich eine klassische IT-Organisation vor. Stemmildt ist für den kundenorientierten Bereich der IT zuständig. Die unternehmens- und prozessorientierte IT untersteht einem Kollegen.
Das Frontend-Team der kundenorientierten IT war für das Shop-System zuständig, das Backend-Team kümmerte sich um Bestellprozesse, Finanzbuchhaltung und Logistik. "Diese Trennung war, wie in vielen anderen Unternehmen auch, aus einem Effizienzgedanken heraus entstanden," so der Manager. Die einzelnen Teile der IT seien so aufgebaut worden, dass eine Aufgabe immer nur an einer Stelle durchgeführt wird. So habe man beispielsweise nicht 25 Datenbanken, die verwaltet werden müssen, sondern nur eine.
"Dieses Mindset kommt aus einer Zeit, in der man immer genau wusste, was man bauen will und was man dafür machen muss," berichtet Stemmildt. Heute jedoch würden Produkte "lean" entwickelt und Features anhand von Kennzahlen sowie Kunden-Feedback ständig angepasst. Was die IT baue, sei nicht immer sofort das, was der Kunde wolle.
Zwar lief der Shop des Pflanzenhändlers erfolgreich und das traditionelle IT-Modell funktionierte, allerdings war es starr, und Veränderungen brauchten lange. "Meine Aufgabe war es daher, die Architektur fachlich, organisatorisch und technisch so umzubauen, dass wir in der Lage sind, Experimente zu machen und schnell auf den Markt zu reagieren," sagt der CIO. Dazu war es nötig, die Organisation in unabhängige Einheiten aufzuteilen.
Erkunden, entscheiden, erfüllen
Aus Effizienzgründen definierte man bis dato erst die Technik, dann die Organisation und als letztes die fachliche Feature-Verteilung. Stemmildt: "Mit dem neuen Ansatz geht man umgekehrt erst einmal an die Funktionalität und überlegt sich, welche fachlichen Fähigkeiten man in seinem Produkt hat. Bei einem E-Commerce-Unternehmen ist das meistens die Customer Journey." Die gliedere sich vereinfacht gesagt in die Suche nach dem Produkt, die Detailansicht für mehr Informationen, die Entscheidung zum Kauf, den Bezahlprozess und den Erhalt des Produkts.
Anhand dessen lässt sich die Customer Journey in eigenständige fachliche Bestandteile zerschneiden, so Stemmildt: "Eine Suche ist beispielsweise völlig unabhängig vom Warenkorb. Anschließend kann man sich anhand von Methoden wie 'Jobs to be done' auf die Teile der Journey konzentrieren, die wichtig für das jeweilige Business sind." Unternehmen, die eine ältere Zielgruppe mit wenig Online-Erfahrung bedienen, müssten die Kunden beim Shopping-Vorgang beispielsweise stärker unterstützen. Für ein Fashion-Unternehmen gehe es dagegen eher um ansprechenden Content.
Das Team um den IT-Leiter hat für Blume 2000 drei fachliche Arbeitsgebiete festgelegt, die auf das Geschäftsmodell passen. "Erkunden" umfasst Suchen, Navigieren und Kategorie-Seiten. Hier geht es vor allem um Schnelligkeit. "Entscheiden" bezeichnet alles rund um die Kaufentscheidung: die Produktdetailseite, den Warenkorb und die Upselling-Strecke mit Empfehlungen zu verwandten Produkten. Dabei sollte zwar ein wenig Druck auf den Kunden ausgeübt werden, aber er dürfe nicht überfordert werden. Der letzte Bereich heißt "Erfüllen" und beinhaltet die Zahlungsart, den Check-out und den Logistikprozess. Bei diesen Schritten dürfe nichts mehr schief gehen.
Vom Schneidbrett zur Organisation
Nachdem die fachlichen Bereiche definiert waren, baute Stemmildt eine Organisation auf, die auf diese Zuschnitte passt. Dabei stellte sich als erstes die Frage, wie die Bereiche mit Menschen besetzt werden. "Dabei ist es wenig sinnvoll, einen Mitarbeiter in zwei verschiedenen Bereichen anzusiedeln, denn dann geht die Unabhängigkeit des Bereichs und die Spezialisierung auf den Anwendungsfall verloren," erklärt Stemmildt. Die Mitarbeiter würden daher nicht mehr auf eine Technik spezialisiert, sondern auf fachliche Vorgänge.
Daher gibt es nun drei Teams, die jeweils einen fachlichen Bereich betreuen. Sie sind interdisziplinär mit Product Ownern, UX-Designern, Entwicklern und Webanalysten besetzt und bearbeiten selbstständig die jeweilige fachliche Aufgabe. Die Entwickler sind daher nicht mehr in Front- und Backend aufgeteilt, sondern verantworten den gesamten Stack ihres Zuschnitts. Stemmildt: "Sie müssten also nicht mehr Admin für eine bestimmte Oracle-Datenbank sein, sondern nur noch eine SQL-Datenbank benutzen können." Die technischen Spezialfähigkeiten träten etwas in den Hintergrund und es gehe eher in Richtung einer "T-Form", bei der die Mitarbeiter Generalisten mit ein bis zwei Spezialgebieten seien.
"Die Belegschaft muss sich breiter aufstellen", sagt der IT-Leiter. Allerdings sei momentan die IT im Operations-Bereich noch von Server-Provisionierung abhängig. Das verhindere, dass die fachlichen Bereiche völlig unabhängig sein könnten. Die IT strebe daher ein Self-Service-Modell an, bei dem sich die Teams ihre Ressourcen nach Bedarf selbst zu- und abschalten können.
Zudem beschäftige er sich mit Dingen wie Domain-driven Design, um die Software-Architektur sauberer zu gestalten. Beim Zusammenstellen der Teams kommt es darauf an, wie bedeutend der jeweilige Bereich für das Kerngeschäft ist. "Bei Blume 2000 ist das Thema Vertrauen sehr wichtig: Vertrauen in die Frische der Ware oder dass das Produkt rechtzeitig beim Kunden ankommt," so Stemmildt. Daher sei das Team für den Customer-Journey-Schritt im Bereich "Entscheiden" mit mehr Leuten besetzt als andere. Dessen Aufgabe ist es, diejenigen Features zu identifizieren und zu erarbeiten, die beim Kunden Vertrauen erzeugten.
Prototypen für den Kunden
Um solche Features zu entwickeln, setzt Stemmildt auf Prototypen und kennzahlengetriebene Prozesse. Soll etwa ein neuer Filter in der Produktliste implementiert werden, erstellen die UX-Designer des Teams einen Prototypen und starten den ersten qualitativen Test. Anhand von Testgruppen, Kundenbefragungen und Nutzungsdaten erkennt das Team, ob ein Feature funktioniert und die Kunden es verstehen. Darauf aufbauend entscheidet der Product Owner, ob sich die Weiterentwicklung des Prototypen lohnt.
Anschließend nehmen die Webanalysten eine quantitative Bewertung anhand von A/B-Tests und weiteren Nutzungsdaten vor, um zu verifizieren, ob das qualitative Urteil des UX-Designers auch in der Masse funktioniert. Auf Basis dieser Daten entscheidet der Product Owner, ob noch weiter in die Entwicklung investiert oder ein neuer Prototyp gebaut wird. "Mit diesem stark kennzahlengetriebenen Prozess verschwenden unsere Teams keine Ressourcen mit Entwicklungen, die den Kunden und damit dem Unternehmen am Ende nichts bringen," so der CIO.
Eigenständige Teams
Die organisatorisch eigenständigen Teams sollen auch technisch unabhängig sein. Daher verzichtet die Blume-2000-IT auf viele klassische Komponenten wie eine zentrale Datenbank oder ein geteiltes API-Gateway. "Unsere Prämisse ist: Die Teams teilen sich nichts, sie müssen absolut unabhängig sein," erklärt Stemmildt. "Sobald sich zwei Teams etwas teilen, ergibt sich Abstimmungsaufwand, wodurch Geschwindigkeit verloren geht." Daher haben die Teams ihre eigene Infrastruktur, eigene Server, eigenen Code und eigene, selbst geschriebene Libraries. Für die wenigen Ausnahmen, wo die Teams doch etwas gemeinsam nutzen müssen, setzt Stemmildt auf eine lose Kopplung der Systeme und Open-Source-Software.
Ein Beispiel sind Produktdaten, die alle Teams benötigen. Da das "Entscheiden"-Team besonders viele und präzise Daten zu Produkteigenschaften braucht, um dem Kunden bei der Kaufentscheidung zu helfen, ist dort die Master-Datenbank angesiedelt. Die beiden anderen Teams replizieren diese Datenbank eventgetrieben über einen Feed in ihre eigene Infrastruktur und können dort eigenständig mit den Daten arbeiten.
Wenn sich etwas an einem Produkt ändert, erhalten die anderen Teams die Änderung über den Stream. "Dabei replizieren die Teams nur die Teile der Datenbank, die sie auch brauchen. Dadurch entsteht nur wenig Redundanz, auch wenn es insgesamt drei Datenbanken gibt," erklärt der IT-Leiter.
Eigenständige "Makroservices"
Mit dem Fokus auf Eigenständigkeit habe sich die IT auch ausdrücklich gegen Microservices entschieden, so Stemmildt: "In Microservice-Umgebungen sind die einzelnen Dienste durch synchrone Calls sehr stark miteinander gekoppelt, sodass bei Veränderungen viele Abhängigkeiten beachtet werden müssen." Genau das galt es aber mit den fachlichen Zuschnitten zu verhindern. Auf der anderen Seite sollen auch Monolithen vermieden werden.
Daher setzt das IT-Team auf komplett unabhängige Services mit eigener Business-Logik, Datenhaltung und eigenem Frontend. Diese "Self-contained Systems" oder "Makroservices" bilden Anwendungsfälle komplett ab, ohne mit anderen Systemen verbunden sein zu müssen.
So sind etwa die Produktliste und die Produktdetailseite zwar auf den ersten Blick eng miteinander verbunden, tatsächlich aber zwei getrennte Services: die eine gehört fachlich zum Bereich "Erkunden", die andere zu "Entscheiden". Der Warenkorb wiederum ist auch ein eigenes System. Er fällt in der Customer Journey von Blume 2000 zwar auch in den Bereich "Entscheiden", löst aber für den Kunden ein anderes Problem als die Detailseite.
Unterm Strich günstiger
"Die aufgeteilte Organisation und die schnelle Feature-Entwicklung ist am Anfang zwar meist teurer und erscheint weniger effizient als das klassische Modell", sagt Stemmildt. "Durch mehr neue Funktionen erhalten die Kunden aber mehr Vorteile, sodass mitunter mehr Umsatz generiert wird und es am Ende günstiger ist als vorher".
Zudem könne Blume 2000 so rasch auf Kundenwünsche oder veränderte Anforderungen im Markt reagieren und das Wachstum sichern. "Wir wissen noch nicht, wie sich unser Geschäftsmodell in Zukunft verändern wird", resümiert der CIO. "Aber mit der kennzahlengetriebenen, nach fachlichen Bereichen aufgeteilten IT-Organisation stehen die Chancen gut, dass wir es früh erfahren und uns darauf einstellen können."