Zurück zum Blog
[ARBEITSWEISE]

7. Mai 2026

Code-Minimalismus: Den Engpass lösen, nicht das Ego

4 MIN. LESEZEIT

In der Agentur-Welt ist Komplexität hochprofitabel. Riesige Architekturen, das Framework der Woche und endlose Microservices rechtfertigen große Teams und teure Monatsretainer. Für ein modernisierendes Mittelstandsunternehmen oder eine wachsende E-Commerce-Marke ist Komplexität dagegen der Feind von Stabilität.

Viele Entwickler bauen Systeme, um ihre eigene intellektuelle Neugier zu befriedigen oder ihren Lebenslauf aufzupolieren. Ich nenne das Ego-getriebene Entwicklung.

Mein Standard ist genau das Gegenteil: weniger bewegliche Teile. Ich füge technische Komplexität nur hinzu, wenn sie direkt Zuverlässigkeit, Umsatz oder Sicherheit schützt. Erledigt ein einfaches Skript den Job eines riesigen Frameworks, gewinnt jedes Mal das Skript.

So übersetzt sich diese Philosophie in die tatsächliche Umsetzung Ihres Projekts.

1. Discovery: Isolieren, bevor Sie neu schreiben

Wenn ein älteres System, etwa ein Legacy-ERP, das mit Shopify synchronisiert, anfängt auszufallen, ist der erste Instinkt vieler Entwickler, alles einzureißen und neu zu bauen. Das ist ein massives, unnötiges Risiko.

Bevor auch nur eine Zeile neuer Code entsteht, muss der exakte Fehlerpfad isoliert werden. Warum scheitert die Integration tatsächlich? Limitiert die Shopify API die Requests? Blockiert die Legacy-Datenbank während der Stoßzeiten? Gibt es merkwürdige Edge Cases in der B2B-Preislogik, die die aktuelle App schlicht nicht abfängt?

Wir schreiben Systeme nicht neu, nur weil der alte Code hässlich ist. Wir identifizieren den exakten operativen Engpass und entwerfen eine gezielte, chirurgisch präzise Lösung dafür. Das respektiert die jahrelange Geschäftslogik, die bereits in Ihren Legacy-Systemen steckt, und modernisiert nur die Teile, die Sie aktiv ausbremsen.

2. Build: Einfache Verträge, explizite Ausführung

Beim eigentlichen Bauen zählt Vorhersagbarkeit. Magie in Software ist nur ein Bug, der auf seinen Auftritt wartet.

Ich setze auf einfache Verträge, deterministische Jobs und explizite Schnittstellen. Genau deshalb baue ich Backends in Go. Go belohnt weder Cleverness noch versteckte Abstraktionen. Es zwingt Entwickler dazu, Fehler direkt zu behandeln und Code zu schreiben, der sich sehr leicht nachvollziehen lässt.

Wenn Ihr Lagerabgleich läuft, sollte er sich nicht auf ein komplexes Geflecht aus Event-Listenern und versteckten Triggern verlassen. Er sollte ein deterministischer Job sein: ERP prüfen -> Daten transformieren -> an Shopify übertragen -> Erfolg oder Fehler loggen.

Fällt ein System aus, sollten Sie genau wissen, wo, warum und wie. Einfacher Code macht das möglich.

3. Review: Optionale Abstraktionen konsequent streichen

Während der Entwicklung rutscht man leicht ins Was-wäre-wenn-Denken. Was, wenn wir irgendwann drei verschiedene ERPs unterstützen müssen? Was, wenn wir den Datenbank-Anbieter wechseln wollen? Bauen wir doch sicherheitshalber eine Abstraktionsschicht.

So werden Systeme aufgebläht.

In der Review-Phase entferne ich optionale Abstraktionen konsequent. Dient ein Pattern oder eine zusätzliche Code-Schicht keinem klaren, messbaren Geschäftsziel im Hier und Jetzt, fliegt es raus. Wir bauen für die exakten Anforderungen von heute. Ändert sich das Geschäft in zwei Jahren, lässt sich sauberer, minimaler Code deutlich leichter refactoren als eine ausufernde, überkonstruierte Architektur, die versucht hat, die Zukunft vorherzusagen, und falsch geraten hat.

4. Handover: Realität dokumentieren

Die meisten Software-Übergaben bestehen aus einer einzigen README-Datei, die erklärt, wie der Server gestartet wird. Das reicht nicht.

Eine echte, minimale Übergabe geht davon aus, dass irgendwann etwas kaputtgeht, und dass die Person, die es repariert, nicht ich sein muss. Es könnte Ihr internes IT-Team sein, um drei Uhr nachts am Black Friday.

Weil die Codebasis minimal ist, muss die Dokumentation kein Labyrinth aus Logik erklären. Stattdessen dokumentiere ich die operative Realität.

  • Operative Annahmen: Welches Datenformat setzen wir beim ERP voraus? Welche Shopify-API-Limits respektieren wir?
  • Fehlermodi: Wie verhält sich das System, wenn es ausfällt? Scheitert es lautlos? Löst es einen Alert aus? Wie sieht der manuelle Override-Prozess aus?

Ihr Nutzen, wenn wir es minimal halten

Wenn Sie einen unabhängigen Entwickler beauftragen, der Ihre operativen Engpässe über das eigene Ego stellt, ergeben sich unmittelbare, sich summierende Vorteile fürs Geschäft:

1. Geringerer Wartungsaufwand

Komplexe Systeme brauchen einen Vollzeit-Babysitter. Minimale Systeme laufen leise im Hintergrund. Wer wo immer möglich native Shopify-Features nutzt und kleine, isolierte Backend-Apps in Go schreibt, senkt Server- und Wartungskosten spürbar.

2. Leichteres Onboarding für zukünftige Engineers

Ich glaube nicht an Vendor-Lock-in. Weil ich expliziten, lesbaren Code ohne obskure Frameworks schreibe, kann jeder kompetente Entwickler mit mittlerem Erfahrungslevel das System innerhalb weniger Stunden verstehen, nicht Wochen.

3. Weniger versteckte Regressionen über die Zeit

Hat eine Architektur weniger bewegliche Teile, sind die Folgen von Änderungen vorhersehbar. Sie aktualisieren keine Versandregel und brechen dabei versehentlich die B2B-Großhandelspreislogik. Minimaler Code bedeutet weniger Seiteneffekte, und das bedeutet: Ihr Store bleibt online und Ihr Umsatz bleibt geschützt.

Ihre Legacy-IT ist kompliziert genug. Die Integration muss es nicht sein.