Deine Datenbanktabelle ist eine schlechte API
Eine gemeinsam genutzte Datenbanktabelle wirkt wie die ultimative Abkürzung: kein API-Design, keine Verträge – nur ein Schema. Der Haken: Diese Bequemlichkeit wird über kurz oder lang zum Bumerang. Sie verwischt Grenzen, bremst Veränderungen aus und macht die unabhängige Weiterentwicklung unnötig schwer. Dieser Artikel zeigt, warum Tabellen (und datenmodellnahe „generierte APIs“) so verlockend sind – und warum sie selten als Integrationsgrenze taugen.
Vergesst die Menschen nicht
Auf dem Papier ist die Architekturvision perfekt. Alle drängenden Defizite der bestehenden Architektur werden adressiert, die Architektur ist optimal auf die Geschäftsdomäne zugeschnitten, viel mehr Arbeit kann zukünftig in einem Team bleiben. Endlich werden wir höheren Speed-to-Market genießen und einen deutlichen Rückgang der (nicht wertschöpfenden, langweiligen) Koordinationsarbeit zwischen Teams haben. Sicherlich werden alle sofort erkennen, wie viel besser unsere neue Architekturvision ist. Pustekuchen.
Von Legacy-Monolithen zu Self-contained Systems
Moderne Architektursysteme teilen die Arbeit in voneinander unabhängige Teams auf. Eine bestehende, monolithische Anwendung muss dafür zerlegt werden.
Back to Basics: Gute Architektur muss nicht „trendy“ sein
Schlägt man ein IT-Magazin oder das Programm einer IT-Konferenz auf, springt dem Leser sofort der Hype ins Gesicht: Gestern waren es Microservices, die uns vor den zu groß geratenen Monolithen retten werden, heute ist es die generative KI, die als Heilsbringer oder Unheilstifter stilisiert wird. Dabei ist es auch ohne dieses Hintergrundrauschen nicht einfach, gute Architekturentscheidungen zu treffen.
Entwickler skalieren anders als Applikationen
Interne Plattformen können die unternehmenseigene Softwareentwicklung beschleunigen, indem sie die mentale Belastung der Entwicklungsteams reduzieren. Als Abstraktionsschichten konzentrieren sie sich auf die wesentliche Fach- und Laufzeitdomäne. Wenn sie sorgfältig gebaut sind, durchbrechen sie alte Konflikte und erlauben zum Beispiel den Entwicklungsteams viel Innovationsfreiheit trotz (oder dank) hoher Standardisierung. Allerdings erfordert dies ein Umdenken über den Wert von Wiederverwendung und auch eine Kehrtwende von Projekten hin zu internen Produkten. Organisationen, die der Versuchung erliegen, bestehende Betriebsschichten oder Frameworks in „Plattformen” umzubenennen, dürfen daher keine Wunder erwarten.
API gut, alles gut
Unternehmen streben häufig eine Modularisierung (wie durch Microservices) an, die Teams unabhängiger voneinander arbeiten lässt. Dabei ist aber ein reines Aufteilen der Applikation in verschiedene Module/Container/Bausteine nicht ausreichend. Die Abhängigkeit oder Unabhängigkeit entscheidet sich vielmehr mit der Gestaltung der Schnittstelle, genauer: Mit der Frage, ob die gewählte Schnittstelle fachliche Implementierungsdetails preisgibt oder diese versteckt.
Architekturentscheidung im agilen Team
Eine schlechte Architekturentscheidung kann Projekte zum Scheitern bringen. Das passiert oft, wenn ein Architekt alle wichtigen Entscheidungen alleine trifft und nie oder sehr spät Feedback bekommt, ob sie gut oder schlecht waren. Oder aber auch, wenn ein “agiles” Team mit dem Architekten die Architekturarbeit aus dem Fenster geworfen hat. Schade, denn wenn man wichtige Entscheidungen nicht einfach dem Lauf der Dinge oder einem Elfenbeinturmbewohner überlässt, findet man viel besser Lösungen.
Event Storming und Domain Story Telling - Ein Vergleich
„Knowledge Crunching” nennt Eric Evans die wichtigen Gespräche mit Domänenexperten, die in seinem Buch „Domain-driven Design” zu tieferem Verständnis der Fachdomäne führen sollen. In den letzten Jahren haben sich für diese Gespräche zwei moderne Workshopformate etabliert: „Event Storming” und „Domain Storytelling”.