Fra et system med UI fra 2011 til et nyt produkt på 9 uger
Et internt markedsdatasystem på 237.000 linjer, bygget på UI-komponenter 14 år bagud, omskrevet som et nyt produkt. Analysen før koden beviste, at 65 % af det gamle system var dødt — kunden betalte kun for det, der var i live.
- 9 uger til et nyt produkt
- 65 % af omfanget skåret væk efter analysen
- 237.000 linjer legacy-kode analyseret
Kunden
En international søtransportvirksomhed, hvis daglige arbejde afhænger af et internt system til markedsdata og kontrakter — dataindtastning, opslag, Excel-import/-eksport, PDF-rapporter og planlagte e-mailrapporter til ledelse og partnere.
Udfordringen
Systemet var over ti år gammelt: 237.000 linjer kode, en brugerflade bygget på komponenter fra 2011, som havde været uden support i årevis, og en database med 119 tabeller lag på lag af forlængst glemt funktionalitet. Licenserne var ældgamle, hostingen bundet til forældet infrastruktur, og hver ændring krævede arkæologi.
Den klassiske refleks ville være "omskriv det hele én til én". Det var præcis det, vi ikke gjorde.
Fremgangsmåden
Fuld rekognoscering før tilbuddet. Vi skilte det gamle system ad — og, vigtigere endnu, dets live-database. Fundene taler for sig selv: omkring 35 % af databasen var usynlig fra koden — en skjult trigger, døde procedurer ubrugte siden 2016, 19 views ingen læser, tabeller uden en eneste linje kode, der refererer til dem.
Skær væk, før der bygges. Analysen blev til en tjekliste-samtale med kunden: hvad af alt dette bruger I faktisk? Svaret — cirka en tredjedel. 65 % af systemet blev skåret væk efter fælles aftale, før den første linje ny kode. Kunden betalte ikke for at portere dødvægt.
Verificér paritet, ikke mavefornemmelse. Rigtige data fra det gamle system blev importeret til række-for-række-sammenligning, og en uafhængig audit matchede det nye system mod det gamle funktion for funktion — bekræftede forskelle røg ind i en plan, ikke i overraskelser efter lanceringen. To mellemliggende releases gik gennem feedback fra de rigtige brugere.
Et moderne fundament uden gamle lænker. Det nye system kører på .NET 10 med licensfri UI-komponenter, automatiserede baggrundsjobs, PDF- og Excel-rapporter og et audit trail på hver handling. Det gamle system kørte urørt videre gennem hele overgangen.
Resultatet
- Et nyt produkt under eget brand på cirka 9 uger — inklusive to runder kundefeedback og en afsluttende stabiliseringsfase.
- Kunden betalte for ~35 % af det gamle system — den levende del; resten blev bevist dødt og forblev i fortiden.
- Ingen licensgebyrer for UI-komponenter; et moderne udseende, brugerne tog til sig uden at miste deres vaner.
- En dokumenteret analyse, der bliver hos kunden — kortet over systemet findes nu, og den næste ændring starter ikke med arkæologi.
Den mest værdifulde linje kode er ofte den, du ikke skriver: en tredjedel af projektets pris blev sparet, fordi vi først beviste, hvad der var dødt.
Teknologi
.NET 10 · ASP.NET Core MVC · EF Core 9 · MariaDB · Quartz.NET