Hopp til innhold
Tilbake til alle artikler
Portrett av en mann med briller og hårknute i en oransje stol foran et svart-hvitt veggmaleri

Hvordan evaluere og modernisere en eksisterende kodebase

Å modernisere en etablert kodebase handler mindre om teknologi – og mer om forståelse. Bak hver linje kode ligger historie, prioriteringer og tidligere teamdynamikker som har formet systemet slik det er i dag. Derfor bør modernisering aldri starte med å endre, men med å lytte, observere og kartlegge. Denne artikkelen går gjennom en stegvis tilnærming til trygg og bærekraftig modernisering: fra første møte med kodebasen, via strukturert innsikt og sikkerhetsvurderinger, til mikro-evolusjon og teamforankring. Målet er enkelt: å utvikle systemet videre uten å miste respekten for det som allerede finnes.

En stegvis tilnærming med fokus på respekt, observasjon og mikro-evolusjon

Når man går inn i en etablert kodebase, møter man ikke bare teknologi. Man møter historie, kompromisser, tidligere teamdynamikker, tidsfrister, preferanser – og det som ofte er en stille kamp mellom ambisjon og leveranse. Det kan være fristende å starte moderniseringen umiddelbart: rydde, stramme inn, oppdatere alt som føles gammelt.

Men som jeg skrev i Det tause ansvaret: Å holde standardene samlet som tech lead må den som kommer inn i et nytt (eller gammelt) system først lytte. Ikke diktere. Ikke ommøblere. Ikke «fikse».

Modernisering begynner ikke med endring — den begynner med forståelse.

1. Start med observasjon, ikke forbedring

Når du entrer et eksisterende system:

  • ikke refaktorer umiddelbart
  • ikke introduser nye mønstre
  • ikke flytt mapper bare fordi du kan

Begynn som en vanlig utvikler: plukk bugs, les pull requests, se hvordan teamet beveger seg.

Som beskrevet i Teknisk gjeld som et teamfenomen vokser teknisk gjeld ut av praksisene som allerede finnes i teamet. Du må forstå dem før du evaluerer dem.

2. Kartlegg før du konkluderer

Når du har fått den første følelsen av systemet, lager du en strukturert oversikt.

Teknisk kartlegging

  • språk, rammeverk og runtime-versjoner
  • build/deploy-pipelines
  • testdekning og testtyper
  • logging, observability, feilhåndtering
  • sikkerhetspraksis (se eget punkt)

Strukturell kartlegging

  • monolitt vs. microservices
  • modulgrenser og avhengigheter
  • API-design og eksterne kontrakter
  • dataflyt, validering og domenemodellering

Sosial kartlegging

  • hvem eier hva?
  • hvilke uvaner har etablert seg?
  • hvor oppstår friksjon?
  • hvilke deler er «ingen tør å røre»?

Modernisering uten denne innsikten er ikke modernisering – det er støy.

3. Multi-repo og multi-språk: Slik får du overblikk

Store organisasjoner sitter sjelden på én kodebase – ofte mange, i flere språk, med ulik historikk.

Her gjelder et prinsipp som utforskes i Hvordan etablere tekniske standarder som faktisk etterleves:

Én felles kilde til sannhet – og lokale tilpasninger.

Praktiske grep

  • lag en sentral “engineering standards”-repo for tverrgående praksiser
  • dokumentér lokale avvik i TDR-er (Technical Decision Records)
  • unngå kopiering – lenk til standardene
  • skill mellom språk-spesifikke standarder og felles praksiser

Dette sikrer forutsigbarhet uten å fjerne fleksibilitet.

4. Sikkerhet først – alltid

I eldre kodebaser er sikkerhetsgjeld ofte det mest kritiske – og det minst synlige.

Her finnes ingen fleksibilitet, slik også beskrevet i Teknisk gjeld som et teamfenomen.

Typiske funn:

  • secrets i kode
  • manglende inputvalidering
  • utdaterte biblioteker med kjente CVE-er
  • usikre autentiseringsmønstre
  • manglende logging av kritiske hendelser

Start her

  • dependency scanning (Dependabot, Snyk)
  • secret scanning og Key Vault-integrasjon
  • felles sikkerhetsstandarder i den sentrale repoen
  • PR-sjekker som stopper kritiske avvik
  • inputvalidering som default-mønster

Sikkerhet er ikke “teknisk gjeld”.

Sikkerhet er risiko.

5. Mikro-evolusjon: Små steg, ingen revolusjoner

Når du forstår systemet, kan du begynne å forbedre det – men i små, trygge steg.

Dette innebærer å:

  • forbedre én modul av gangen
  • rydde litt hver gang du først er i koden
  • introdusere nye mønstre i takt med teamet
  • vise effekt i demoer, ikke bare i diff-visninger

Som i Standarder i praksis: Når bør man være rigid – og når bør man være fleksibel?: standarder fungerer bare når de er forankret i teamets rytme.

6. Hvordan motivere teamet til å ta tak i teknisk gjeld

Det hjelper ikke at du vil modernisere – teamet må ville det også.

Tre ting fungerer:

1. Gjør gjeld synlig

Teknisk gjeld er ofte usynlig for prioriteringsmøter.

Gjør den synlig i demoer, dashboards og beslutningsgrunnlag.

2. Knytt gjeld til opplevd smerte

Ikke si «Dette er dårlig design».

Si:

  • «Dette gjør onboarding tregere.»
  • «Dette gir oss feil som er vanskelige å debugge.»
  • «Dette øker risiko i produksjon.»

Smerten er motivasjonen. Løsningen er modernisering.

3. Ta det inn i hverdagen

Et stort “refactor-epic” ingen har tid til, virker ikke.

Integrer forbedringer i alt teamet gjør – litt etter litt – slik anbefalt i boy scout-tankegangen bak gode standarder.

7. En stegvis oppskrift for trygg modernisering

Steg 1 – Observer

Lær systemet og teamet, uten å endre noe.

Steg 2 – Kartlegg

Teknisk, strukturelt og sosialt.

Steg 3 – Prioriter sikkerhet

Alt annet kan vente. Dette kan ikke.

Steg 4 – Etabler felles standarder og TDR-er

På tvers av repoer og språk.

Steg 5 – Moderne-by-default i ny kode

Ikke start med å omskrive alt gammelt.

Steg 6 – Mikroskopisk rydding

Forbedre hver gang du toucher koden.

Steg 7 – Involver teamet

Motivasjon kommer av eierskap, ikke instruksjon.

Steg 8 – Evaluer jevnlig

Standarder og modernisering må leve, ikke fryses.

Avslutning: Modernisering er relasjonelt arbeid

Å oppgradere en kodebase er ikke bare et teknisk prosjekt — det er et kulturelt prosjekt.

Det krever observasjon, respekt, psykologisk trygghet og en porsjon tålmodighet.

Gode tekniske valg fungerer bare når teamet er med.

Modernisering skjer ikke i store løft, men i små evolusjoner.

Og den starter alltid med det samme spørsmålet:

Hva skjer her – og hvorfor?

Når du først har svaret, kommer resten naturlig.

Vi hjelper deg med alt fra teknologiledelse til utvikling

Ensō er et konsulentselskap bestående av seniorkonsulenter med ekspertise til å bistå kundene våre med alt fra teknologiledelse til utvikling.