Internationellt sjöfartsföretag · marknadsdata och kontrakt

Från ett system med UI från 2011 till en ny produkt på 9 veckor

Ett internt marknadsdatasystem på 237 000 rader, byggt på UI-komponenter 14 år efter sin tid, omskrivet som en ny produkt. Analysen före koden bevisade att 65 % av det gamla systemet var dött — kunden betalade bara för det som levde.

  • 9 veckor till en ny produkt
  • 65 % av omfattningen skars bort efter analys
  • 237 000 rader legacy-kod analyserade

Kunden

Ett internationellt sjöfartsföretag vars dagliga arbete hänger på ett internt system för marknadsdata och kontrakt — dataregistrering, uppslagningar, Excel-import/export, PDF-rapporter och schemalagda e-postrapporter till ledning och partners.

Utmaningen

Systemet var över ett decennium gammalt: 237 000 rader kod, ett UI byggt på komponenter från 2011 som saknat support i åratal, och en databas med 119 tabeller lager på lager av sedan länge bortglömd funktionalitet. Licenserna var uråldriga, hostingen bunden till föråldrad infrastruktur, och varje ändring krävde arkeologi.

Den klassiska reflexen vore "skriv om allt ett-till-ett". Det var precis det vi inte gjorde.

Angreppssättet

Fullständig rekognosering före offerten. Vi plockade isär det gamla systemet — och, viktigare, dess skarpa databas. Fynden talar för sig själva: cirka 35 % av databasen var osynlig från koden — en dold trigger, döda procedurer oanvända sedan 2016, 19 vyer ingen läser, tabeller utan en enda kodrad som refererar till dem.

Skär bort innan du bygger. Analysen blev ett checklistesamtal med kunden: vad av detta använder ni faktiskt? Svaret — ungefär en tredjedel. 65 % av systemet skars bort i samförstånd innan den första raden ny kod. Kunden betalade inte för att portera dödvikt.

Verifiera paritet, inte magkänsla. Riktiga data från det gamla systemet importerades för jämförelse rad för rad, och en oberoende granskning stämde av det nya systemet mot det gamla funktion för funktion — bekräftade skillnader hamnade i en plan, inte i överraskningar efter lansering. Två delreleaser gick genom feedback från de verkliga användarna.

En modern grund utan gamla bojor. Det nya systemet körs på .NET 10 med licensfria UI-komponenter, automatiserade bakgrundsjobb, PDF- och Excel-rapporter och ett granskningsspår för varje åtgärd. Det gamla systemet fortsatte köra orört under hela övergången.

Resultatet

  • En ny produkt under eget varumärke på cirka 9 veckor — inklusive två omgångar kundfeedback och en avslutande härdningsfas.
  • Kunden betalade för ~35 % av det gamla systemet — den levande delen; resten bevisades dött och stannade i det förflutna.
  • Inga licensavgifter för UI-komponenter; ett modernt utseende som användarna tog till sig utan att tappa sina vanor.
  • En dokumenterad analys som stannar hos kunden — kartan över systemet finns nu, och nästa ändring börjar inte med arkeologi.

Den mest värdefulla kodraden är ofta den man inte skriver: en tredjedel av projektets pris sparades för att vi först bevisade vad som var dött.

Teknik

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