Modernisering af gammelt system, én funktion ad gangen
Det korte svar: et gammelt system moderniseres sjældent bedst ved at slukke det og tænde et nyt. For de fleste virksomheder virker en faseopdelt udskiftning bedre, hvor det nye system overtager én funktion ad gangen, mens det gamle kører videre, indtil data og brugere er flyttet.
Mange virksomheder kører forretningen på et system, der blev bygget for mange år siden. Det virker stadig, men ingen tør røre det. Den oprindelige udvikler er væk, serveren kører en version, der ikke længere får sikkerhedsopdateringer, og hver ny medarbejder skal læres op i genveje og workarounds. Denne side handler om, hvordan I kommer videre uden et big bang, der lukker driften ned i en uge, og uden at I betaler for at bygge det samme system igen med de samme fejl.
Hvornår er det tid til at udskifte et legacy system?
Små ændringer tager uger, fordi ingen kender koden, og alle er bange for at ødelægge noget
Systemet kører på software eller servere, der ikke længere bliver sikkerhedsopdateret
Medarbejderne fører data i Excel ved siden af, fordi systemet ikke kan det, de har brug for
Det kan ikke tale med jeres nye værktøjer, fx regnskab, CRM eller betaling
Kun én person ved, hvordan det virker, og den person er på vej på pension eller er allerede væk
Genopbyg, refaktorer eller læg et API udenpå?
Der er grundlæggende fire veje. Valget afhænger mindre af teknologien og mere af, hvor sund datamodellen er, og hvor meget af forretningslogikken der stadig passer til den måde, I arbejder på i dag. Et system med rigtige data og forkerte skærme skal behandles helt anderledes end et system, hvor selve strukturen er forkert.
De fire veje ud af et gammelt system, og hvornår hver af dem giver mening.
Tilgang
Passer når
Risiko
Refaktorering
Koden er rodet, men teknologien er stadig vedligeholdt
Lav, men I ender med det samme system, bare pænere
API-lag udenpå
Kernen virker, men den skal tale med nye apps og integrationer
Lav til middel, den gamle kerne skal stadig driftes
Faseopdelt udskiftning
Systemet skal væk, men forretningen kan ikke stå stille
Middel, kræver disciplin om rækkefølge og data
Genopbygning på én gang
Systemet er lille, eller datamodellen er helt forkert
Høj, alt skal virke på skiftedagen
Sådan virker den faseopdelte udskiftning
Udviklere kalder det ofte strangler-mønsteret, opkaldt efter en figenplante, der vokser rundt om et træ, indtil træet kan fjernes. Det nye system bygges ved siden af det gamle og overtager en afgrænset funktion ad gangen. Brugerne mærker en række små skift i stedet for én stor skiftedag.
1
Kortlægning
Vi gennemgår skærme, data og integrationer og finder de funktioner, der gør mest ondt.
2
Lag foran
Et API eller en synkronisering giver det nye system adgang til de gamle data.
3
Første modul
Den mest værdifulde funktion bygges nyt og tages i brug af en lille gruppe.
4
Flyt flere
Modul for modul flyttes brugere og data, mens det gamle system krymper.
5
Sluk
Når intet længere skrives i det gamle system, arkiveres det og lukkes.
Hver fase afsluttes med noget, der er i drift, før næste fase starter.
Datamigrering: det svære er ikke at flytte data
At kopiere tabeller fra en database til en anden er hurtigt. Det tidskrævende er at finde ud af, hvad data faktisk betyder. Felter, der hedder én ting og bruges til noget andet, dubletter af kunder, statusser ingen længere kan forklare, og fritekstfelter med halvdelen af forretningen i. Derfor starter vi altid med en prøvemigrering på en kopi af rigtige data, længe før skiftet.
Beslut hvad der skal med, og hvad der kun skal arkiveres
Ryd op i dubletter og døde statusser før migreringen, ikke efter
Kør migreringen flere gange som script, så den kan gentages på skiftedagen
Lad nøglebrugere tjekke stikprøver: kan de genkende deres egne kunder og ordrer?
Kan gammelt og nyt system køre parallelt?
Ja, og det er ofte den sikreste måde. I en periode skriver det nye modul data, mens det gamle system stadig kan læse dem, eller omvendt. Det kræver en klar regel om, hvilket system der er "sandheden" for hver type data, så ingen retter den samme ordre to steder. Parallel drift skal have en slutdato. Ellers ender I med at vedligeholde to systemer i stedet for ét.
Risici ved at udskifte et gammelt system
Risiko
Hvad der sker
Sådan styrer vi den
Skjult forretningslogik
Det gamle system gjorde noget, ingen vidste
Interview af brugere og gennemgang af rigtige data før design
Dårlig datakvalitet
Fejl flyttes med over i det nye system
Prøvemigrering og oprydning før skiftet
Skopkryb
Alle ønsker lægges oven i udskiftningen
Fast pris pr. fase, nye ønsker prissættes separat
Modstand hos brugerne
Folk bliver i det gamle system
Små skift, nøglebrugere først og en dato for lukning
Hvad koster det at modernisere et gammelt system?
Det afhænger af, hvor mange moduler der skal flyttes, og hvor rodede data er. Vi har ikke en fast listepris for modernisering. I får en skriftlig fastpris pr. fase inden for 24 timer, når vi har set systemet. Som pejlemærke kan et afgrænset første modul holdes op mod vores webapp-pakker, der starter ved 18.000 kr. + 600 kr./md. med 12 funktioner og én integration. Er I i tvivl om, hvorvidt I overhovedet skal have noget skræddersyet, så læs skræddersyet software vs. standardsystem først.
Vi har bygget portaler, der samler data og arbejdsgange fra flere kilder, blandt andet IT-supportportalen til Mannaz og kundeportaler til Grundfos iGRID. Den nye kode er React, Next.js og TypeScript, og I ejer både kode og data. Læs mere om, hvordan vi bygger webapps.
Vi har arbejdet sammen med Ceptiv om flere af vores digitale løsninger, og de er blevet en naturlig del af teamet. De arbejder hurtigt og omsætter idéer til nye designs og klikbare prototyper på kort tid, så vi kan teste med kunderne tidligt i stedet for at diskutere på papir.
Szabolcs Nagy · Lead Global Product Manager, GrundfosLæs casen→
Da vi startede samarbejdet med Ceptiv, var Kirppu én butik i Herlev og en masse ambitioner. Vi havde brug for et bookingsystem, som vores standlejere kunne bruge uden at ringe til os, og vi havde brug for det hurtigt.
Claus Andreassen · Direktør og medejer, Kirppu Group ApSLæs casen→
At få Ceptivs designer ind i vores teams var en af de bedste beslutninger, vi har truffet for produktet. Core, Automate og Express 365 har meget forskellige brugere, og Ceptiv gav dem ét klart designsprog, der stadig føles hjemme i Microsoft 365.
Vi havde brug for en IT-supportplatform, hvor vores medarbejdere, deltagere og facilitatorer selv kan finde svarene, og det er præcis, hvad Ceptiv har givet os. De tog sig tid til at forstå, hvordan folk faktisk bruger vores systemer, og designede en platform, der er enkel at finde rundt i og let for vores IT-team at holde opdateret.
Samarbejdet med Ceptiv har været en fornøjelse. Deres designer satte sig hurtigt ind i et meget komplekst område og omsatte vores krav til en brugerflade, der var klar, varm og nem at bruge for alle, fra forældre til pædagoger.
Dina Raabjerg · Projektleder, Systematic A/SLæs casen→
Ceptiv var en ægte partner på den nye LEGO Service Portal. De bragte vores medarbejderes stemme ind i hvert sprint gennem brugertest, rejsekortlægning og workshops, og omsatte komplekse krav til en portal, der er enkel og reelt rar at bruge.
Sadak Halil · Product Owner, LEGO GruppenLæs casen→
Ceptiv forstod fra første møde, hvad MiGrow handler om: at gøre det let for virksomheder at finde et udviklingsprojekt, de virkelig brænder for. De omsatte vores idéer til et klart koncept, en oprettelse, der er hurtig at komme igennem, og en søgning, der giver mening med det samme.
MyMannaz skulle fungere for tre meget forskellige grupper af mennesker, og det forstod Ceptiv fra den første workshop. De brugte tid med vores koordinatorer, facilitatorer og deltagere og omsatte det, de lærte, til én enkel app i stedet for tre separate systemer.
Ceptiv gav os en UI-designer, der var en del af Cura-teamet fra første sprint. Han satte sig hurtigt ind i et krævende område, fra Fælles Sprog III til virkeligheden på en vagt i hjemmeplejen, og omsatte komplekse krav til skærmbilleder, der er rolige og tydelige for plejepersonale under pres.
Dina Raabjerg · Projektleder, Systematic A/SLæs casen→
Vi kom til Ceptiv med en idé og en klar ambition, og de tog ansvar for hele vejen fra første skitse til færdigt system. De skabte et brand, vi er stolte af, designede hver eneste skærm i portalen og byggede det hele fra bunden: hjemmesiden, panelerne til jobsøgere og arbejdsgivere, administrationen og udbetalingerne.
Dado Bubalo & Joachim Hansen · Medejer, JoberoLæs casen→
Ceptiv forstod fra første dag, at vi sælger tillid, før vi sælger ejendomme. Den nye identitet giver os et roligt og solidt udtryk, der fungerer lige så godt på et prospekt som på en byggeplads. Vores investorer lagde mærke til det med det samme.
Lars Thomsen · Direktør & Partner, Imbro A/SLæs casen→
Vi har arbejdet sammen med Ceptiv om vores prospekter i mange år, og det har gjort en reel forskel. De gav os et standarddesign, der gør et tungt juridisk dokument let at læse og rart at stå med i hånden, og som vi kan genbruge fra projekt til projekt.
Skal vi bygge helt nyt eller opgradere det gamle system?
Hvis teknologien stadig bliver vedligeholdt, og datamodellen passer til jeres forretning, er refaktorering eller et API-lag ofte nok. Hvis platformen er død, eller strukturen er forkert, betaler det sig at bygge nyt, men i faser. Vi anbefaler sjældent en total genopbygning på én gang, fordi alt så skal virke på samme dag.
Hvad er strangler-mønsteret?
Det er en måde at udskifte et system gradvist. Det nye system bygges ved siden af det gamle og overtager én funktion ad gangen, fx ordrer først, så fakturering, så rapporter. Det gamle system krymper, indtil intet længere skrives i det, og så lukkes det. Brugerne oplever små skift frem for én stor skiftedag.
Mister vi data ved en migrering?
Ikke hvis migreringen testes ordentligt. Vi kører migreringen som et script på en kopi af jeres rigtige data flere gange før skiftet, og nøglebrugere tjekker stikprøver. Det, der ikke skal med i det nye system, arkiveres, så I stadig kan slå gamle sager op. Det gamle system slukkes først, når data er bekræftet.
Hvor lang tid tager en modernisering?
Det afhænger af antallet af moduler og kvaliteten af data. Fordelen ved faser er, at det første modul kan være i drift længe før hele projektet er færdigt, så I får værdi undervejs. I den skriftlige plan får I rækkefølgen af faser, hvad hver fase leverer, og en fast pris pr. fase.
Kan det nye system tale med vores øvrige værktøjer?
Ja. Det er ofte en af hovedgrundene til at modernisere. Vi har over 40 færdige integrationer, blandt andet e-conomic, Dinero, MobilePay, HubSpot og Microsoft 365, og vi bygger forbindelser til jeres egne systemer via API eller synkronisering. Det gamle system kan også kobles på i overgangsperioden.
Hvem ejer koden efter moderniseringen?
I gør. Alt, vi bygger, er skrevet fra bunden i React, Next.js og TypeScript, og I ejer både kode og data. Det er en af de vigtigste forskelle fra mange gamle systemer, hvor viden og kode sidder hos én leverandør. Opsiger I aftalen, tager I koden med.
Beskriv jeres projekt, så kontakter jeg jer hurtigst muligt, og vi aftaler et uforpligtende møde. I går derfra med gode råd til, hvordan projektet kommer godt fra start.