Irgendwann fällt es auf
Irgendwann sitzt man vor einem System
und stolpert über einen Namen.
Customer.
Komisch.
So nennt das heute eigentlich niemand mehr.
Die Fachbereiche sprechen längst von Accounts.
Oder Partnern.
Oder Teilnehmern.
Je nachdem, mit wem man redet.
Nur der Code nicht.
Der spricht noch die Sprache von vor fünf Jahren.
Es beginnt harmlos
Am Anfang wirken die Begriffe oft völlig richtig.
Jemand benennt eine Tabelle.
Eine API.
Ein Event.
Alle nicken.
Ja.
So heißt das.
Das Problem ist nur:
Man baut die Domäne meistens,
während man sie erst noch versteht.
Die Welt ist noch unscharf
Gerade am Anfang weiß niemand genau,
welche Unterschiede wichtig werden.
Welche Begriffe bleiben.
Welche Konzepte später wieder verschwinden.
Trotzdem muss man anfangen.
Also gibt man Dingen Namen.
Und friert damit den aktuellen Wissensstand ein.
Ein Name ist eingefrorenes Wissen
Ein Jahr später weiß man mehr.
Plötzlich merkt man:
Eigentlich sind das zwei verschiedene Dinge.
Eigentlich ist das gar kein Customer.
Eigentlich beschreibt dieser Begriff etwas völlig anderes.
Die Sprache entwickelt sich.
Der Code nicht.
Zumindest nicht mit derselben Geschwindigkeit.
Der unangenehme Teil
Natürlich könnte man jetzt alles umbenennen.
Die APIs.
Die Events.
Die Datenbanktabellen.
Die Dokumentation.
Die Dashboards.
Die ETL-Strecken.
Die anderen Systeme.
Die Reports.
Oder man lebt einfach damit.
Und genau das passiert meistens.
Die alten Begriffe sterben nicht
Das Merkwürdige ist:
Die Software konserviert Sprache.
Neue Kollegen lernen die alten Begriffe.
Tickets benutzen sie.
Meetings benutzen sie.
Irgendwann passt sich nicht mehr die Software
an die Organisation an.
Sondern die Organisation an die Software.
Nicht weil sie besser ist.
Sondern weil sie existiert.
Große Landschaften sprechen selten eine Sprache
Mit genügend Systemen wird es noch seltsamer.
Das gleiche Ding heißt plötzlich:
- Customer
- Account
- Partner
- Tenant
- Consumer
Man hört irgendwann auf,
nach dem richtigen Begriff zu suchen.
Man lernt einfach zu übersetzen.
Die romantische Vorstellung
Lange dachte ich,
das wäre einfach schlechte Disziplin.
Man hätte konsequenter sein müssen.
Mehr Workshops.
Mehr Glossare.
Mehr Domain-Driven Design.
Mehr gemeinsame Sprache.
Inzwischen glaube ich das nicht mehr.
Sprache ist lebendig
Organisationen verändern sich.
Produkte verändern sich.
Menschen lernen.
Verständnis wächst.
Warum sollte ausgerechnet die Sprache stabil bleiben?
Vielleicht ist genau das die eigentliche Illusion.
Die Vorstellung,
dass man einmal die richtige Sprache findet.
Und sie danach einfach bestehen bleibt.
Ubiquitous. Für einen Moment.
Vielleicht ist eine Ubiquitous Language
gar kein stabiler Zustand.
Vielleicht ist sie immer nur eine Momentaufnahme.
Die bestmögliche Beschreibung dessen,
wie wir die Welt gerade verstehen.
Und wie alles andere in der Software
altert auch dieses Verständnis.
Historische Dokumente
Mit der Zeit betrachtet man Namen anders.
Weniger als Wahrheiten.
Mehr als historische Artefakte.
Fußnoten.
Kleine Hinweise darauf,
wie Menschen die Domäne
zu einem bestimmten Zeitpunkt verstanden haben.
Und manchmal überlebt dieser Name
deutlich länger
als der Gedanke,
aus dem er entstanden ist.