Sådan optimerer du en eksisterende softwareplatform

Sådan optimerer du en eksisterende softwareplatform
Foto: ThisIsEngineering / Pexels

Hvornår er det tid til at optimere frem for at bygge nyt?

Det er et spørgsmål de fleste tekniske ledere og produktejere møder på et tidspunkt: platformen virker, men den er langsom, svær at vedligeholde, eller den kan ikke følge med forretningens vækst. Instinktet er ofte at starte forfra. Men det er sjældent den rigtige løsning.

En fuldstændig genopbygning er dyr, risikabel og tager lang tid. I mange tilfælde kan målrettet optimering af den eksisterende platform levere langt mere værdi for pengene. Det kræver dog, at man ved, hvad man leder efter, og at man prioriterer rigtigt.

Denne guide gennemgår de vigtigste områder at kigge på, når man vil optimere en eksisterende softwareplatform uden at miste det, der allerede fungerer.

Start med en teknisk gennemgang af platformen

Før man retter noget som helst, skal man forstå, hvad der faktisk er galt. Det lyder indlysende, men mange optimeringsprojekter fejler fordi man begynder med løsninger frem for diagnose.

En teknisk gennemgang, også kaldet en koderevision eller teknisk audit, kortlægger platformens tilstand. Her kigger man typisk på:

En god gennemgang resulterer i en prioriteret liste over problemer, ikke en liste over ønsker. Det er afgørende at skelne mellem det, der faktisk bremser platformen, og det, der blot er irriterende.

Ydeevne: Find flaskehalsene før du løser dem

Langsom software er en af de hyppigste klager. Men årsagen kan ligge mange steder: i databaseforespørgsler, i serverbelastning, i klientens browser, i netværkskald til tredjeparter eller i ineffektiv kode.

Profileringsværktøjer hjælper med at kortlægge præcis, hvor tid og ressourcer bruges. Det er langt mere effektivt end at gætte sig frem. Typiske fund inkluderer:

Selv mindre justeringer her kan have mærkbar effekt. Og effekten af hurtigere software mærkes ikke kun internt, det påvirker også brugertilfredshed og konverteringsrater direkte.

A woman writes 'Use APIs' on a whiteboard, focusing on software planning and strategy.
Foto: ThisIsEngineering / Pexels

Arkitektur og skalerbarhed

Mange platforme er bygget til en bestemt skala og begynder at knage, når trafikken eller datamængden vokser. Her er det nødvendigt at kigge på selve arkitekturen.

To af de mest almindelige skift er:

Fra monolit til modulær arkitektur

En monolit er en platform hvor al funktionalitet er tæt sammenflettet i én stor kodebase. Det er fint i starten, men gør det svært at skalere og vedligeholde. En modulær arkitektur, eller i mere ekstreme tilfælde en microservices-tilgang, opdeler systemet i adskilte dele, der kan opdateres og skaleres uafhængigt af hinanden.

Det er ikke et skift man foretager på én gang. Langt de fleste vellykkede migreringer sker gradvist: man udskiller én del ad gangen, tester grundigt og fortsætter.

Horisontal frem for vertikal skalering

Vertikal skalering betyder at give serveren mere hukommelse og processorkraft. Det virker, men har et loft. Horisontal skalering betyder at køre flere servere side om side og fordele belastningen. Det kræver at platformen er bygget til det, men giver langt bedre muligheder på lang sigt.

Hvis man overvejer, hvornår det giver mening at lade specialister se på arkitekturen, er det relevant at læse mere om, hvornår specialudviklet software giver mere mening end standardløsninger, det samme spørgsmål gælder for arkitekturvalg.

Sikkerhed som løbende praksis, ikke engangsopgave

Sikkerhed er en af de første ting der nedprioriteres i en travl hverdag, og en af de dyreste ting at rette op på i bagklogskabens lys. En optimeringsrunde er et oplagt tidspunkt at gennemgå platformens sikkerhedsstatus.

Konkrete ting at kigge på:

Mange af disse problemer løses med relativt simple ændringer, men kræver at nogen faktisk gennemgår koden systematisk. Automatiserede sikkerhedsscannere kan hjælpe, men erstatter ikke en manuel gennemgang af kritiske dele af systemet.

Kode og vedligeholdbarhed

Teknisk gæld er uundgåeligt i ethvert system der har eksisteret i et par år. Spørgsmålet er, om det er håndterbart eller ved at løbe løbsk.

Tegn på at vedligeholdsbyrden er for høj inkluderer: at det tager uforholdsmæssigt lang tid at implementere selv simple ændringer, at udviklere er bange for at røre bestemt kode, og at der jævnligt opstår fejl i dele af systemet man ikke har ændret på.

Her hjælper det at arbejde med:

God vedligeholdbarhed er ikke kun et internt anliggende. Det påvirker direkte, hvor hurtigt man kan reagere på markedet og implementere nye funktioner.

Detailed view of server racks with glowing lights in a data center environment.
Foto: panumas nikhomkhai / Pexels

Integrationer og tredjepartsafhængigheder

De fleste platforme er afhængige af eksterne tjenester: betalingsgateway, booking, notifikationer, analyse, login og meget mere. Disse integrationer er ofte bygget hurtigt og aldrig siden kigget på.

En gennemgang af integrationer bør besvare:

Det er også værd at overveje, om noget der i dag løses via tredjeparter, med fordel kan bygges ind i platformen selv. Det øger kontrollen og reducerer afhængigheder. Læs eventuelt mere om processen med udvikling af hjemmesider og hvad man bør overveje fra starten, mange af de samme principper gælder for platformsudvikling generelt.

Overvågning og datadrevet beslutningstagning

Man kan ikke optimere det man ikke kan måle. En platform uden ordentlig overvågning er som at køre bil uden instrumentbræt: man opdager problemerne for sent og forstår ikke årsagen.

Grundlæggende overvågning bør dække:

Gode overvågningsdata giver også et stærkt grundlag for at prioritere fremtidige optimeringer. I stedet for at basere beslutninger på mavefornemmelser baserer man dem på faktiske mønstre.

Vil man forstå, hvordan tekniske valg også påvirker platformens synlighed udadtil, er artiklen om webudvikling og SEO relevant læsning.

Hvad kræver det at gennemføre en optimering?

En vellykket optimering af en softwareplatform kræver tre ting: en klar forståelse af udgangspunktet, prioritering af indsatsen og kompetente udviklere der kender den type system.

Det er sjældent én persons opgave. De bedste resultater opnås typisk med en kombination af interne ressourcer der kender forretningslogikken, og eksterne udviklere der bringer friske øjne og teknisk dybde til koden.

Har man brug for hjælp til at vurdere en platforms tilstand og kortlægge, hvad der giver mest mening at gøre, er det en god idé at søge rådgivning hos et team med erfaring i netop denne type arbejde. Hos Sahari arbejder vi med softwareudvikling og platformsoptimering, og du er velkommen til at tage kontakt for en uforpligtende snak om din situation.

Kontakt os