Internationales Seetransportunternehmen · Marktdaten und Verträge

Von einem System mit UI aus dem Jahr 2011 zu einem neuen Produkt in 9 Wochen

Ein internes Marktdatensystem mit 237.000 Zeilen, gebaut auf 14 Jahre alten UI-Komponenten, neu geschrieben als eigenständiges Produkt. Die Analyse vor dem Code bewies, dass 65 % des Altsystems tot waren — der Kunde zahlte nur für das, was lebte.

  • 9 Wochen bis zum neuen Produkt
  • 65 % des Umfangs nach der Analyse gestrichen
  • 237.000 Zeilen Legacy-Code analysiert

Der Kunde

Ein internationales Seetransportunternehmen, dessen tägliche Arbeit von einem internen System für Marktdaten und Verträge abhängt — Dateneingabe, Recherchen, Excel-Import/-Export, PDF-Berichte und zeitgesteuerte E-Mail-Berichte für Management und Partner.

Die Herausforderung

Das System war über ein Jahrzehnt alt: 237.000 Zeilen Code, eine Oberfläche auf Komponenten aus dem Jahr 2011, die seit Jahren nicht mehr unterstützt wurden, und eine Datenbank mit 119 Tabellen voller längst vergessener Funktionalität. Die Lizenzen waren uralt, das Hosting an veraltete Infrastruktur gebunden, und jede Änderung erforderte Archäologie.

Der klassische Reflex wäre „alles eins zu eins neu schreiben“. Genau das haben wir nicht getan.

Der Ansatz

Vollständige Aufklärung vor dem Angebot. Wir nahmen das alte System auseinander — und, noch wichtiger, seine Live-Datenbank. Die Befunde sprechen für sich: Rund 35 % der Datenbank waren vom Code aus unsichtbar — ein versteckter Trigger, tote Prozeduren, seit 2016 ungenutzt, 19 Views, die niemand liest, Tabellen, auf die keine einzige Codezeile verweist.

Streichen vor dem Bauen. Die Analyse wurde zu einem Checklisten-Gespräch mit dem Kunden: Was davon nutzen Sie tatsächlich? Die Antwort — etwa ein Drittel. 65 % des Systems wurden einvernehmlich gestrichen, bevor die erste Zeile neuen Codes entstand. Der Kunde zahlte nicht dafür, toten Ballast zu portieren.

Parität verifizieren, nicht dem Bauchgefühl vertrauen. Echte Daten aus dem Altsystem wurden für den zeilenweisen Vergleich importiert, und ein unabhängiges Audit glich das neue System Funktion für Funktion mit dem alten ab — bestätigte Abweichungen kamen in einen Plan, nicht in Überraschungen nach dem Launch. Zwei Zwischenreleases durchliefen das Feedback der echten Nutzer.

Ein modernes Fundament ohne alte Fesseln. Das neue System läuft auf .NET 10 mit lizenzfreien UI-Komponenten, automatisierten Hintergrundjobs, PDF- und Excel-Berichten und einem Audit-Trail für jede Aktion. Das alte System lief während des gesamten Übergangs unangetastet weiter.

Das Ergebnis

  • Ein neues, eigenständig gebrandetes Produkt in rund 9 Wochen — inklusive zweier Feedbackrunden mit dem Kunden und einer abschließenden Stabilisierungsphase.
  • Der Kunde zahlte für ~35 % des Altsystems — den lebendigen Teil; der Rest wurde nachweislich als tot belegt und blieb in der Vergangenheit.
  • Keine Lizenzgebühren für UI-Komponenten; ein modernes Erscheinungsbild, das die Nutzer annahmen, ohne ihre Gewohnheiten zu verlieren.
  • Eine dokumentierte Analyse, die beim Kunden bleibt — die Landkarte des Systems existiert jetzt, und die nächste Änderung beginnt nicht mit Archäologie.

Die wertvollste Codezeile ist oft die, die man nicht schreibt: Ein Drittel des Projektpreises wurde gespart, weil wir zuerst bewiesen, was tot war.

Technologie

.NET 10 · ASP.NET Core MVC · EF Core 9 · MariaDB · Quartz.NET