Die Suche nach dem richtigen Schnitt

In Architekturdiskussionen fließt erstaunlich viel Energie
in den richtigen Schnitt.

Module.
Komponenten.
Microservices.
Bounded Contexts.

Als würde irgendwo
die eine Struktur warten,
die alles langfristig richtig macht.

Frühe Gewissheit

Am Anfang fühlt sich Architektur sehr logisch an.

Man kennt die Anforderungen.
Man versteht die Domäne – glaubt man.
Man zeichnet Grenzen.

Alles wirkt sauber.

Ein paar Monate später wirkt dieselbe Struktur
plötzlich wie ein Kompromiss.

Ein Service ist zu klein.
Ein anderer zu groß.
Ein Modul ist eigentlich nur ein historischer Unfall.

Die Realität hält sich selten an Diagramme.

Wenn der Schnitt Organisation wird

Zu diesem Zeitpunkt existiert bereits:

Code.
Deployments.
Monitoring.
Teams.
Verträge zwischen Services.

Der Schnitt ist nicht mehr nur technisch.

Er ist organisatorisch geworden.

Man kann ihn ändern.
Aber man will es nicht.

Wirtschaft statt Eleganz

Später an der Struktur zu drehen, ist teuer.

Migrationen.
Abstimmungen.
Neue Fehler.
Stillstand an anderer Stelle.

Also bleibt vieles, wie es ist.

Nicht weil es perfekt wäre.
Sondern weil es funktioniert.

Systeme sind erstaunlich tolerant
gegenüber suboptimaler Architektur.

Menschen sind es weniger.

Was wirklich zählt

Ob ein System funktioniert,
entscheidet selten die Eleganz seines Schnitts.

Es sind andere Dinge:

Tests, die Vertrauen schaffen.
Deployments, die unspektakulär sind.
Logs, die man nachts versteht.
Refactorings, die möglich bleiben.

Architekturdiagramme beeindrucken schneller.
Engineering hält länger.

Landkarten und Terrain

Module und Services sind oft
keine objektive Systemstruktur.

Sie sind Orientierung.

Eine Landkarte,
damit Menschen sich verständigen können.

Das funktioniert erstaunlich gut.

Bis sich die Landschaft verändert.

Dann merkt man:
Die Karte war nie die Realität.

Zu früh geschnitten

Vielleicht liegt das eigentliche Problem darin,
dass wir Systeme strukturieren müssen,
bevor wir sie wirklich kennen.

Wir schneiden für ein Verständnis,
das wir noch nicht haben.

Und leben danach sehr lange
mit dieser Entscheidung.

Am Ende gewinnt Lieferfähigkeit

Perfekte Architektur altert schnell.

Robuste Software langsamer.

Systeme überleben nicht,
weil sie ideal geschnitten sind.

Sondern weil sie veränderbar bleiben.

Eleganz ist angenehm.
Lieferfähigkeit gewinnt.