Fra et system med 2011-grensesnitt til et nytt produkt på 9 uker
Et internt markedsdatasystem på 237 000 linjer, bygget på UI-komponenter 14 år ute av tiden, skrevet om som et nytt produkt. Analysen før koden beviste at 65 % av det gamle systemet var dødt — kunden betalte kun for det som levde.
- 9 uker til et nytt produkt
- 65 % av omfanget kuttet etter analysen
- 237 000 linjer eldre kode analysert
Kunden
Et internasjonalt sjøtransportselskap hvis daglige arbeid avhenger av et internt system for markedsdata og kontrakter — dataregistrering, oppslag, Excel-import og -eksport, PDF-rapporter og planlagte e-postrapporter til ledelsen og partnere.
Utfordringen
Systemet var over ti år gammelt: 237 000 linjer kode, et grensesnitt bygget på komponenter fra 2011 som hadde vært uten support i årevis, og en database med 119 tabeller lagvis fylt med for lengst glemt funksjonalitet. Lisensene var eldgamle, hostingen bundet til utdatert infrastruktur, og hver endring krevde arkeologi.
Den klassiske refleksen ville vært å «skrive om alt én til én». Det var nettopp det vi ikke gjorde.
Tilnærmingen
Full rekognosering før tilbudet. Vi plukket det gamle systemet fra hverandre — og, enda viktigere, den levende databasen. Funnene taler for seg selv: rundt 35 % av databasen var usynlig fra koden — en skjult trigger, døde prosedyrer ubrukte siden 2016, 19 views ingen leser, tabeller uten en eneste kodelinje som refererer til dem.
Kutt før du bygger. Analysen ble til en sjekklistesamtale med kunden: hva av dette bruker dere faktisk? Svaret — omtrent en tredjedel. 65 % av systemet ble kuttet i felles forståelse før den første linjen ny kode. Kunden betalte ikke for å portere dødvekt.
Verifiser paritet, ikke magefølelse. Ekte data fra det gamle systemet ble importert for sammenligning rad for rad, og en uavhengig revisjon matchet det nye systemet mot det gamle funksjon for funksjon — bekreftede avvik gikk inn i en plan, ikke i overraskelser etter lansering. To mellomversjoner gikk gjennom tilbakemeldinger fra de faktiske brukerne.
Et moderne fundament uten gamle lenker. Det nye systemet kjører på .NET 10 med lisensfrie UI-komponenter, automatiserte bakgrunnsjobber, PDF- og Excel-rapporter og revisjonsspor på hver handling. Det gamle systemet kjørte urørt gjennom hele overgangen.
Resultatet
- Et nytt produkt med egen merkevare på rundt 9 uker — inkludert to runder med kundetilbakemeldinger og en avsluttende herdingsfase.
- Kunden betalte for ~35 % av det gamle systemet — den levende delen; resten ble bevist dødt og forble i fortiden.
- Ingen lisenskostnader for UI-komponenter; et moderne utseende brukerne tok i bruk uten å miste vanene sine.
- En dokumentert analyse som blir hos kunden — kartet over systemet finnes nå, og neste endring starter ikke med arkeologi.
Den mest verdifulle kodelinjen er ofte den du ikke skriver: en tredjedel av prosjektprisen ble spart fordi vi først beviste hva som var dødt.
Teknologi
.NET 10 · ASP.NET Core MVC · EF Core 9 · MariaDB · Quartz.NET