Wonach möchtest du suchen?
Digitale Leute - Build Better Products.

Wie Benedikt Stemmildt, CIO bei Blume2000, die Webarchitektur jenseits von Microservices organisiert

07. April 2022
Benedikt Stemmildt, CIO bei Blume2000, bei dem Digitale Leute Summit 2021.

Microservices sind ein großer Trend. Aber sie verhindern Geschwindigkeit, ist Benedikt Stemmildt, CIO bei Blume2000, überzeugt. Deshalb wird dort etwas völlig Entgegengesetztes gemacht: Man setzt auf die komplette Trennung der Fachlichkeit, Organisation – und schließlich auch der Technik. Wie das funktionieren kann? Das beschreibt er in seinem Vortrag „Geschwindigkeit ohne Microservices: Wie man mit guten alten HTML-Seiten und Makrodiensten vorankommt“, den er auf der Digitale Leute Summit 2021 gehalten hat.

Hier findest du die komplette Aufzeichnung seines Talks

Die Ausgangssituation bei Blume2000

Die ursprüngliche Architektur bei Blume2000 – aus dem Vortrag von Benedikt Stemmildt auf dem Digitale Leute Summit 2021.

Die ursprüngliche Architektur bei Blume2000 kommentiert Benedikt mit den Worten: „Da muss man aufräumen.“ So sind in der Vergangenheit eine Reihe von Microservices entstanden, mit einer sehr typischen technischen Situation:

Auch die Organisation folgt der Organisationsstruktur der technischen Seite, „es war schön getrennt“, so Benedikt:

Immer, wenn im Backend ein Feature gebaut wurde, musste das ins Frontend synchronisiert werden. „Das Frondend-Team hatte aber leider gerade zu tun“, so Benedikt. „Dann haben die Backend-Leute trotzdem schon mal angefangen.“ Diese Arbeitsaufteilung führe zu nichts, „der Kunde sieht eigentlich nie irgendwas.“

Daraus resultieren eine Vielzahl von Problemen. Als Beispiel nennt Benedikt die Mehrwertsteueränderung zu Corona-Zeiten. Damals mussten relativ schnell die Mehrwertsteuersätze angepasst werden. Und bei Blume2000 ergab sich das Problem, dass davon 17 der 20 Microservices betroffen waren. Eine schnelle Anpassung wird so sehr schwierig.

Überlegungen zur Umorganisation

Vereinfachte Darstellung des Orgamodells bei Blume2000 – aus dem Vortrag von Benedikt Stemmildt auf dem Digitale Leute Summit 2021.

Benedikts Ziel war es nun natürlich, hier schneller und besser zu werden. Aber: Es sei nicht so einfach, eine gute Architektur zu bauen, so Benedikt. Ein Grundproblem: Viele würden zunächst an die Technologie denken, wenn sie über Architektur sprechen würden. Benedikt schlägt einen anderen Weg vor: „Wir sollten uns zunächst die Fachlichkeit und Organisation anschauen.“ Darauf aufbauend sollten dann die passenden Technologien ausgewählt werden.

Buchtipp: Nicole Forsgren, Jez Humble, Gene Kim: „Accelerate: The Science Behind Devops: Building and Scaling High Performing Technology Organizations“, 2018

In Unternehmen sei es generell immer schwierig, den Nutzen von technologischen Anpassungen aufzuzeigen, so Benedikt. Denn natürlich sind das oft recht abstrakte Überlegungen. Das Problem: Häufig versuche man dann vor allem Kosten zu reduzieren, effizienter zu werden, eben, weil das greifbarer ist. „Das ist aber eine ganz fatale Falle: Häufig ist Effizienz das Gegenteil von Geschwindigkeit.“

Anhand des Buches von Nicole Forsgren zeigt Benedikt auf, welche Bestandteile einer Organisation Auswirkungen auf Performance haben können. Eine generelle Erkenntnis: „Das Thema Leadership sollte man nicht unterschätzen“, so Benedikt. Denn das ist der Ausgangspunkt auch für letztendlich technische Fragestellungen. „Wenn der Chef nicht hinter der Vision steht, dann klappt das alles nicht“, so Benedikt.

Wie die Umsetzung dann konkret konzipiert wird

Bei der konkreten Umsetzung des Konzepts wählt Benedikt einen radikalen Weg: „Man kann eine solche Veränderung nur mit einem Big Bang umsetzen“, ist Benedikt überzeugt. Das sei eine unschöne Situation. „Denn hier geht es vor allem auch darum, eine Kultur zu verändern.“ Während viele Frameworks hier eine behutsame Anpassung der Kultur vorschlagen, glaubt Benedikt – basierend auf dem Buch von L. David Marquet – nicht daran.

Buchtipp: L. David Marquet: „Leadership Is Language: The Hidden Power of What You Say and What You Don’t“, 2020

Ein Tipp aus dem Buch „Leadership Is Language“: „Man bekommt eine neue Kultur nur dann hin, wenn man sie auch ein bisschen erzwingt, also bestimmte Verhaltensweisen auch vorgibt“, so Benedikt. Denn eine Kultur komme nicht alleine davon, dass man sie sich nur wünsche.

Die Etablierung einer neuen Fachlichkeit

Aufteilung in neue Fachlichkeiten – aus dem Vortrag von Benedikt Stemmildt auf dem Digitale Leute Summit 2021.

Wie schon beschrieben: „Wir fangen mit der Fachlichkeit an und leiten alles andere daraus ab“, so Benedikt. Konkret gestaltete sich das bei Blume2000 so, dass man auf die Customer Journey geschaut hat. Und davon wurden dann drei Fachlichkeiten abgeleitet:

„Jemand, der sich um den Warenkorb kümmert, interessiert nicht, wie der Artikel dort hineingekommen ist“, begründet das Benedikt anhand eines Beispiels. „Die Idee dahinter ist, dass auch immer ein Product Owner eine Fachlichkeit übernimmt.“ Ein schöner Nebeneffekt: Dadurch, dass man sich so gleich an der Kundensicht orientiert habe, seien auch passende KPI entstanden. Und: Bisher wurde überhaupt noch nicht über Menschen oder Technik gesprochen, sondern darüber, was produktseitig zusammengehöre, so Benedikt.

Zweiter Schritt: Schlussfolgerungen für die Teams

Benedikt Stemmildt während seines Vortrags auf dem Digitale Leute Summit 2021.

Organisatorische Fragestellungen wurden daraus abgeleitet. Ein Punkt war Benedikt dabei besonders wichtig: Die alte Situation, in der Frontend- und Backend-Teams auf zwei Seiten standen, sollte aufgelöst werden. Man habe sich deshalb für interdisziplinäre Teams entschieden, „die einer Fachlichkeit zugeordnet sind.“ Sehr wichtig sei an dieser Stelle auch, den Stakeholder mit in dieses Team zu integrieren. „Das ist ein schwieriger Schritt, den viele Unternehmen nicht schaffen.“

Konkret: Von den früheren Rollen wurde die Arbeit nun in Fullstack-Rollen umorganisiert. „Das klingt einfach“, so Benedikt. „Aber es geht dabei um Menschen, die sich auch verändern müssen.“ Es sei dabei hilfreich, wenn die Mitarbeiter mehrere Fähigkeiten besitzen. Aber: „Es geht nicht darum, dass alle alles können müssen“, so Benedikt. „Sondern es geht mehr darum, dass sich die Mitarbeiter mit allem beschäftigen und auch Interesse daran haben.“

Modern Agile als methodische Vorgehensweise

Als theoretische Grundlage für solche Überlegungen zitiert Benedikt das Modern Agile Framework. Das wird anhand von vier Bereichen festgemacht:

Auf der Modern-Agile-Website beschreibt das Framework den Ansatz dahinter so: „Agilität wird modernisiert. Dank der Pioniere und Praktiker von Lean und Agile haben wir jetzt einfachere, sicherere und schnellere Wege, um großartige Ergebnisse zu erzielen. Wir nennen diese neuen Ansätze „Modern Agile“, weil sie sich weit über die frühen agilen Methoden hinaus entwickelt haben.“

Eine sehr konkrete Schlussfolgerung für die Art, wie die Teams bei Blume2000 nun zusammenarbeiten, ist das Mobprogramming: Dabei sitzt das Team gemeinsam am Computer und diskutiert über Schritte, die programmiert werden müssen. Die Tastatur wird herumgereicht.

Buchtipp: Simon Harrer, Jochen Christ, Martin Huber: „Remote Mob Programming: At home, but not alone“, 2020

Letzter Schritt: Blick auf die Technik

Erst ganz am Ende wird nun die IT-Architektur entsprechend der neuen Fachlichkeit und Organisation umstrukturiert. Benedikts erklärtes Ziel: „Hier wollen wir Unabhängigkeit schaffen.“ Genauso, wie die Fachlichkeiten entkoppelt sind, soll sich das auch in der Architektur widerspiegeln. Das ist das exakte Gegenteil von Microservices mit synchroner Organisation, die, so ist Benedikt überzeugt, letztendlich zu komplexen und unübersichtlichen Gebilden führen und somit zu Geschwindigkeitsverlust.

Die Unabhängigkeit muss aber sehr konsequent eingehalten werden. Das führt zum Beispiel dazu, dass jeder Fachlichkeit eine eigene UI und Datenhaltung zugewiesen wird. Man wolle hier Services erstellen, die vollwertig einen Anwendungsfall abbilden. Das ist nicht unbedingt einfach – und es ergeben sich hier auch zwei konkrete kritische Fragestellungen, so Benedikt:

Bei Blume2000 wurde natürlich viel darüber nachgedacht, wie nun das Frontend organisiert werden soll. Die Lösung: mit einfachem HTML. Dabei werde die Regel verwirklicht, dass man keinen synchronen Call auf die Bereiche eines anderen Teams zulasse. „Es gibt also in der gesamten Architektur keinen API-Call“, so Benedikt.

Bühne mit Benedikt auf dem Digitale Leute Summit 2021.

Stattdessen werden die Inhalte im Frontend der komplett getrennten Bereiche „Erkunden“, „Entscheiden“ und „Erfüllen“ ganz einfach über einen Link miteinander verbunden, sie haben einfach unterschiedliche Linkadressen.

Aber was geschieht, wenn ein Teil eines anderen Bereichs im Frontend benötigt wird? Als Beispiel nennt Benedikt eine Produktübersichtsseite, die zu „Entscheiden“ gehört. Aber da könnten dann auch Hinweise auf Produkte eingebaut sein, die zusätzlich interessant für den Kunden sein könnten – aber eher zum Team „Erkunden“ gehören.

Das werde dann mit Server Side Includes (SSI) oder Ajax realisiert, so Benedikt. Eine intelligente Lösung, denn wie konkret der Schnipsel-Code aussieht, der so transferiert wird, ist völlig egal. Das Team „Entscheiden“ muss sich nicht weiter darum kümmern.

Ein anderer Punkt sind die sehr beliebten Code-Libraries. Auch diese werden einfach – weitestgehend – nicht mehr teamübergreifend verwendet. Dass alle beteiligten Teams daran gearbeitet hatten, hatte ohnehin in der Vergangenheit viele Nachteile: „Die Gefahr ist dann, dass bei einer Veränderung die ganze Plattform zusammenbricht“, so Benedikt. Seine Lösung: „Wir teilen einfach gar nichts.“ Weder Code, noch Leute, noch Datenbanken.

Natürlich dürften Dinge aber kopiert werden. „In 98 Prozent der Fälle ist das viel schlauer, als das in eine Library auszulagern.“

Als letzte Ebene stellt sich die Frage, wie mit den Daten umgegangen wird. Die Lösung: Es gibt eine asynchrone Datenreplikation. Sprich: Die Daten werden einfach kopiert. Denn natürlich gebe es Anwendungsfälle, bei denen unterschiedliche Bereiche die gleichen Daten benötigen. „Allerdings replizieren sich die einzelnen Teams nicht alle Daten, sondern nur die Attribute, die für sie interessant sind.“ Und nicht nur das: Sie kopieren sie zusätzlich auch in eine Datenstruktur, die für das Team am besten passt. Diese Synchronisierung lässt sich einfach mit einem CronJob oder Event-basiert realisieren.

„Geschwindigkeit erreicht man, indem man von der Fachlichkeit kommt, in die Organisation geht und dann in die Technik“, fasst Benedikt zusammen. Und dabei sollte immer der Fokus auf der Unabhängigkeit liegen. „Ich werde dadurch echt schnell, weil sich die Teams auch nicht mehr absprechen müssen.“

Auf dem Digitale Leute Summit 2021 in Köln sprach Benedikt Stemmildt über die Umorganisation der gesamten Webarchitektur von Blume2000 und deren zugrundeliegenden generellen Frameworks und Philosophien.

Über Benedikt Stemmildt: Benedikt (@slashbene) ist CIO bei Blume 2000. Er beschäftigt sich sehr stark mit Softwarearchitektur mit einem Fokus auf Kundennutzen, gibt sein Wissen auch als Trainer weiter. Vor seiner Anstellung bei Blume2000 war er bei Breuninger und Otto.de tätig.

Autor: Jörg Stroisch

Deep Dive Robert Stephenson, Produktmanager bei Spotify, über den Weg zu einer zielgerichteten Auswertung von Daten
Vorheriger Artikel
Deep Dive Sebastian Clauß, Die neue Abteilung, über die wichtigen Aspekte bei der Entwicklung einer App
Nächster Artikel
DIGITALE LEUTE
NEWSLETTER