Det låter så frestande: att börja med ett rent blad. Att tillämpa allt man lärt sig på en helt ny lösning. Inga kompromisser på grund av befintliga kunder och ett perfekt system med de senaste ramverken. Vi är dock övertygade om att det inte är genom att bygga om ett system som man ger kunderna en hållbar lösning. Stef Roskam, VP Engineering på Otherside at Work, delar vår syn på detta strategiska val:
"Det är ett medvetet beslut att fokusera på stegvis utveckling av Xpert Suite. Och att inte erbjuda kunderna en ny 'version 2' efter några års byggande. Våra kunder uppskattar också detta, eftersom det har en positiv inverkan på kontinuiteten i våra tjänster och på hur nya funktioner görs tillgängliga."
I den här bloggen förklarar vi varför vi väljer inkrementell utveckling och vad det innebär för våra kunder.
Vad är skillnaden mellan ombyggnad och stegvis vidareutveckling?
Låt oss först klargöra vad vi menar med ombyggnad och inkrementell vidareutveckling. Stef förklarar: "Ombyggnad innebär att ett system byggs om helt och hållet, med det gamla och det nya systemet helt separerade från varandra. Det innebär att det blir en hård övergång mellan det gamla och nya systemet för kunden, ofta med en ny implementering, migrering och omfattande användarutbildning.
Inkrementell utveckling fokuserar på att gradvis bygga om eller refaktorisera befintlig kod. Det innebär att vi successivt skriver om eller förbättrar föråldrade delar för att hålla systemet uppdaterat. Den största skillnaden är att det inte sker någon stor, plötslig övergång, utan förändringarna sker gradvis."
Varför Otherside at Work inte väljer att bygga om
För oss är ombyggnation inte en bra lösning, Stef ger flera skäl till detta:
- "Storleken på kodbasen: Hur framgångsrik en ombyggnadsprocess blir beror mycket på storleken på kodbasen. En kodbas på tio manår är betydligt lättare att bygga om än en kodbas på tvåhundra manår.
- Höga kostnader och kundförluster: Om man väljer att bygga om måste man underhålla två system: det gamla systemet och det nya systemet. Det kräver fler personer och det är helt enkelt dyrare. Kunderna kommer också att behöva byta i det långa loppet. Med en plattform som Xpert Suite kräver detta mycket tid för vägledning. Därför finns det alltid kunder som inte vill eller kan genomföra bytet. I praktiken ser man därför att kunder hoppar av under en ombyggnadsprocess.
- Frysning av kod: Vid en fullständig ombyggnad måste utvecklingen av nya funktioner ofta stoppas för det gamla systemet, eftersom all uppmärksamhet och alla resurser går till ombyggnaden. Detta innebär att en "kodfrysning" sker, vilket innebär att kunderna inte får ny funktionalitet under en lång tid. På en marknad där det ständigt sker nyutveckling, till exempel lagar och regler och AI-lösningar, kan det innebära att kunderna hamnar på efterkälken. Med stegvis vidareutveckling kan du omedelbart göra nya utvecklingar tillgängliga inom din befintliga lösning.
- Ny kod är inte alltid omedelbart bättre: Kod som har funnits i 10 år är t.ex. "battle hardened". Koden har testats i många gränsfall och dessa har hanterats genom buggfixar. Koden är också ofta optimerad för att hantera den önskade belastningen. Du vill inkludera dessa egenskaper i din nya kod, men de är inte alltid lätta att förstå. Därför finns det en stor risk att man "kastar bort" bra arbete och gör misstag i den nya koden som redan hade lösts i den befintliga koden."
Fördelarna med inkrementell utveckling
Otherside at Work satsar på stegvis vidareutveckling, eftersom denna strategi erbjuder ett antal viktiga fördelar. Stef förklarar:
- "Minskade risker vid förändringar: Vid inkrementell vidareutveckling tas nya delar i bruk steg för steg, vilket gör att eventuella problem blir omedelbart synliga och kan lösas snabbt. Ibland missar vi kantfall som inte är tillräckligt kunniga och äldre kod är ibland inte lättläst. Men på grund av det inkrementella arbetssättet är dessa risker mindre än med en big bang.
- Gradvis förbättring för kunden: Genom att utveckla inkrementellt implementeras förändringar gradvis, vilket innebär att kunderna lättare kan vänja sig vid nya funktioner. Vid små förändringar delar vi med oss av release notes. Vid större förändringar kan vi välja att genomföra förändringen stegvis genom att först låta några av användarna testa. Om inga problem uppstår eller om de löses kan alla gå vidare. Det gör att tillvänjningsprocessen blir mycket mindre drastisk."
Utmaningar med inkrementell utveckling
Den inkrementella utvecklingen har många fördelar, men det finns också en del utmaningar. Först och främst är det viktigt att programvaran är modulär. De tekniska komponenterna måste kunna bytas ut separat. En av de största utmaningarna är att integrera gamla och nya delar.
Under den stegvisa vidareutvecklingen måste du också ta hänsyn till befintliga användningsområden för din applikation och vad användarna gillar eller inte gillar. Detta kan verka som en utmaning, men är faktiskt en välsignelse i förklädnad. "Det tvingar dig att ta hänsyn till den praktiska tillämpningen av din lösning tidigt i processen, något som blir tydligt först vid en fullständig ombyggnad när de första användarna börjar arbeta med den. Så den stora utmaningen är att hitta rätt balans mellan att ta hänsyn till de begränsningar som finns i praktiken och att våga styra användarna mot förändring."
Slutligen kräver stegvis utveckling disciplin och konsekvens för att säkerställa att programvarans kvalitet gradvis förbättras. Stef säger: "I slutändan kan man inte undvika att förnya allt. Programvaruutveckling för 20 år sedan kan trots allt inte jämföras med idag och de ramverk och plattformar som du kör på har förklarats vara uttjänta. Ibland väljer vi att bara refaktorisera en befintlig modul. Det gör vi om den befintliga koden ligger tillräckligt nära vår målarkitektur. Om kvaliteten på koden är otillräcklig eller ligger för långt från den tänkta arkitekturen måste vi skriva om den. I slutändan kommer vi att förnya allt på det här sättet, men det kommer att ske steg för steg."
Framtiden för Xpert Suite
Xpert Suite är under full utveckling. Stef talar om framtiden: "Vi får fler och fler fristående domäntjänster. En domäntjänst innehåller driften av en fullt definierad funktionell domän, från backend till frontend. Det innebär att de olika komponenterna blir funktionellt och tekniskt mindre och att programvaran kan hanteras oberoende av varandra. Det innebär att vi kan göra uppgraderingar snabbare och enklare, utan att det påverkar resten av systemet. Detta håller utvecklingshastigheten hög och gör det möjligt för oss att kontinuerligt underhålla och utöka vårt paket."
Slutsats: Vad organisationer bör leta efter hos sin mjukvaruleverantör
Tack vare valet av stegvis vidareutveckling har vi kunder som har kunnat använda samma programvara i 15 år, utan större migreringar och allt arbete som följer med det. Samtidigt kan de fortfarande använda nya AI-moduler och programvara som är helt uppdaterad och använder de senaste ramverken.
Stef råder organisationer att ta en ordentlig titt på en programvaruleverantörs rykte och inställning, särskilt om programvaran stöder företagets primära process. "Det är viktigt att vara säker på att din leverantör kan förnya och underhålla programvaran på lång sikt. Alltför ofta ser vi att företag gör ett val baserat på den aktuella funktionaliteten och priset, utan att ta hänsyn till långsiktigheten", säger Stef. "Frågan 'Kommer vi fortfarande att se att den här leverantören presterar bra om fem år?' ställs inte alltid. Och då kan det bli dyrt att vara billig, eftersom det krävs ett stort migreringsprojekt."
Så vad ska man fråga en leverantör om? "Det viktigaste är att fråga hur livscykelhanteringen av programvaran är ordnad. Och naturligtvis också vilka meriter leverantören har på det området. Om en leverantör redan har valt att göra en ombyggnad är det viktigt att ställa ytterligare frågor", säger Stef.
Kontakt
Xpert Suite är en innovativ, datadriven portal för företagshälsa och social trygghet. Portalen vänder sig till medarbetare, chefer, HR-personal, företagsläkare, ombud och försäkringsbolag. Varje användare får sin egen åtkomst som är helt skräddarsydd för deras specifika behov.
Vill du veta mer om Xpert Suite? Vänligen kontakta oss