Warum pragmatisches Starten oft sinnvoll ist — aber ohne klare Grenzen, Tests und Spezifikation schnell technische Schuld erzeugt.
In einem Integrationsprojekt sollte eine neue Plattform wiederkehrende Anbindungen vereinheitlichen. Der erste Use Case wirkte überschaubar: Daten aus einem System übernehmen, transformieren und für ein anderes System bereitstellen.
Also wurde pragmatisch gestartet. Das war nicht falsch. In echten Projekten ist am Anfang selten alles vollständig spezifiziert.
Dann kam der nächste Fachfall. Dann eine Ausnahme für ein Legacy-System. Dann ein Sonderfall im Mapping. Dann ein technischer Workaround, weil ein angebundenes System sich anders verhielt als erwartet. Dann eine weitere Abweichung, weil ein Prozess fachlich doch nicht ganz gleich funktionierte wie der vorherige.
Jede einzelne Änderung war nachvollziehbar. Keine davon sah gefährlich aus. Aber zusammen entstand Code, bei dem niemand mehr sicher sagen konnte, welche Änderung welche Sonderfälle betrifft.
Das Problem war nicht, dass pragmatisch gestartet wurde. Das Problem war, dass die Struktur nicht mitgewachsen ist.
Integrationsplattformen werden selten auf einen Schlag unwartbar. Sie werden unwartbar, wenn Sonderfälle, Workarounds und fachliche Logik wachsen — aber Spezifikation, Tests und technische Grenzen nicht.
Neue Integrationsplattformen entstehen oft unter Zeitdruck. Bestehende Systeme müssen angebunden, Datenmodelle übersetzt, externe APIs integriert und Legacy-Verhalten berücksichtigt werden. Der erste Use Case ist dabei selten das Problem.
Gefährlich wird es, wenn die Plattform nach und nach immer mehr Verantwortung übernimmt: Mapping, fachliche Sonderfälle, technische Workarounds, Fehlerbehandlung, Anbieter-spezifische Abweichungen und Logik, die eigentlich klarer abgegrenzt sein müsste.
Dann funktioniert die Plattform zwar weiter. Aber jede Änderung wird schwieriger. Nicht weil der Code „unschön" ist, sondern weil niemand mehr sicher einschätzen kann, welche Nebenwirkungen eine Anpassung hat.
Unwartbarer Integrationscode entsteht selten durch schlechte Entwickler. Er entsteht, wenn Anforderungen wachsen, Sonderfälle ungeordnet eingebaut werden und niemand früh genug entscheidet, wo fachliche Logik endet und technische Integration beginnt.
Pragmatisch zu starten ist oft sinnvoll. Das Problem entsteht, wenn aus einem pragmatischen Start nie eine explizite Struktur wird. Der erste Use Case wird zur impliziten Architektur — und jeder neue Fall wird irgendwie daran angehängt.
Nach den ersten Use Cases bewusst nachziehen: Welche Regeln sind Standard? Welche sind Sonderfälle? Welche Logik gehört in die Plattform — und welche nicht?
Am Anfang ist ein Sonderfall noch sichtbar. Später steht er einfach mitten in der normalen Logik. Neue Entwickler sehen nicht mehr, ob etwas fachlich gewollt, technisch notwendig oder nur ein historischer Workaround ist.
Sonderfälle explizit machen: als eigene Regel, eigene Klasse, eigene Testfälle und mit klarer Begründung. Ein Workaround darf existieren — aber er muss als Workaround erkennbar bleiben.
Eine Integrationsplattform soll Systeme verbinden, Daten übersetzen und technische Unterschiede kapseln. Sie wird gefährlich, wenn sie zur Ablage für ungeklärte fachliche Entscheidungen wird.
Fachliche Verantwortung klar trennen: Was entscheidet ein Fachservice? Was übersetzt die Integrationsschicht? Was ist nur technischer Adapter-Code?
Bei Integrationslogik reicht es nicht, zu prüfen, ob der Standardfall funktioniert. Das Risiko steckt in Kombinationen: Legacy-System plus Sonderprozess plus optionales Feld plus Fehlerfall.
Tests müssen nicht nur Outputs prüfen, sondern Entscheidungen: Wann greift welche Regel? Welche Kombinationen sind erlaubt? Welche Fälle werden bewusst nicht unterstützt?
Der Endzustand ist nicht einfach „hässlicher Code". Der Endzustand ist Code, den niemand mehr sicher ändern kann. Jede Anpassung wird zum Risiko, weil unklar ist, welche Sonderfälle noch irgendwo daran hängen.
Refactoring braucht fachliche Sicherheit: nachvollziehbare Regeln, gute Testabdeckung, klare Grenzen und eine Struktur, in der neue Fälle nicht automatisch weitere Verzweigungen erzeugen.
Diese Fragen helfen, früh zu erkennen, ob eine Integrationsplattform sauber wächst — oder ob sie beginnt, Sonderfälle und Workarounds ungeordnet aufzusammeln.
| Frage | Gesundes Signal | Warnsignal |
|---|---|---|
| Sind Standardfälle und Sonderfälle getrennt? | Ausnahmen sind explizit modelliert. | Sonderfälle stecken verteilt im Code. |
| Gibt es klare Verantwortlichkeiten? | Fachlogik, Mapping und technische Adapter sind getrennt. | Die Plattform entscheidet alles. |
| Sind Workarounds sichtbar? | Temporäre Lösungen sind dokumentiert und begründet. | Workarounds wirken wie normales Verhalten. |
| Decken Tests echte Varianten ab? | Fehlerfälle, Kombinationen und Sonderfälle sind getestet. | Nur der Happy Path ist abgesichert. |
| Kann man eine Änderung sicher einschätzen? | Betroffene Regeln und Schnittstellen sind nachvollziehbar. | Jede Änderung fühlt sich wie Glücksspiel an. |
| Wächst die Struktur mit? | Neue Anforderungen führen zu klaren Erweiterungspunkten. | Neue Anforderungen führen zu weiteren Verzweigungen. |
Wenn mehrere Warnsignale zutreffen, ist das kein Zeichen für schlechte Entwickler. Es ist ein Zeichen dafür, dass die Plattform mehr Struktur braucht, bevor sie weiter wächst.
Eine Integrationsplattform bleibt nicht automatisch wartbar, nur weil gute Architekturentscheidungen getroffen wurden. Entscheidend ist, wie diese Entscheidungen im Code landen.
Guter Integrationscode ist nicht der Code, der beim ersten Go-Live am schnellsten funktioniert. Guter Integrationscode ist Code, den ein Team auch Monate später noch sicher ändern, testen und erweitern kann.
Ich unterstütze FinTechs dabei, komplexe Integrationslösungen zuverlässig umzusetzen — mit stabilen Schnittstellen, sauberer Architektur und wartbarem Code, ohne dafür eine Festanstellung aufbauen zu müssen.
Mein Fokus liegt auf APIs, Systemintegration und wartbaren Schnittstellen im FinTech-Umfeld. Ich arbeite besonders gerne dort, wo gewachsene Systemlandschaften, Legacy-Anbindungen, externe APIs und komplexe Backend-Logik sauber in umsetzbaren, testbaren Code übersetzt werden müssen.
Ich unterstütze FinTech-Teams bei der Umsetzung komplexer Integrationsarbeitspakete — besonders dort, wo viele Systeme, Sonderfälle und Legacy-Anforderungen sauber in wartbaren Code übersetzt werden müssen.
Mit einem Klick zum Orientierungsgespräch →15 Minuten · unverbindlich · kein Pitch · stefanie@quims.se