Hva gjør man når eksisterende kildekode er uleselig ("spaghetti code") og vanskelig å vedlikeholde?
Når koden er blitt uleselig «spaghetti code» og teknisk gjeld bremser utviklingen, kan det lønne seg å bygge MVP-en på nytt med en tech-stack teamet behersker. Vurder først om de verste delene kan refaktoreres, siden en full omskriving er ressurskrevende.
Slik løser du det
Vurder å bygge MVP-en på nytt fra bunnen av med en ny tech-stack for å sikre et robust fundament og bedre vedlikeholdbarhet. Dette er et fornuftig råd når koden har blitt det utviklere kaller «spaghetti code» – kode som er så rotete, sammenfiltret og udokumentert at det er vanskelig å forstå hva som skjer hvor, og der en liten endring ett sted ofte gir uventede feil et annet sted.
Først, noen begreper: En MVP (Minimum Viable Product) er den enkleste versjonen av produktet ditt som likevel gir reell verdi til brukeren og lar deg teste om idéen fungerer. En «tech-stack» er samlingen av teknologier, programmeringsspråk og rammeverk produktet bygges med (for eksempel React i frontend, Node.js i backend, og en database som PostgreSQL).
Hvorfor anbefale en omskriving fra bunnen? Fordi teknisk gjeld – snarveiene og rotet som hoper seg opp over tid – på et tidspunkt koster mer å rydde i enn å starte på nytt. Når hver ny funksjon tar uforholdsmessig lang tid og introduserer feil, bremser det hele selskapet. Et rent fundament gir raskere utvikling fremover og lavere risiko.
Konkrete steg: Start med å definere kjernefunksjonaliteten MVP-en faktisk trenger (kutt alt unødvendig). Velg en tech-stack teamet behersker godt og som det finnes mye dokumentasjon og hjelp til. Sett opp god kodestruktur og enkel versjonskontroll med Git fra dag én, og skriv lesbar, dokumentert kode.
En viktig fallgruve å være obs på er likevel dette: en full omskriving er ressurskrevende, og man bør ikke gjøre det lettvint. Vurder først om de verste delene kan refaktoreres (ryddes opp gradvis). Men der koden er hopeløst uleselig og hindrer videre framdrift, er det ofte både raskere og tryggere å bygge MVP-en på nytt med et solid fundament.
Begreper forklart
- Spaghetti code
- Kode som er så rotete og sammenfiltret at en liten endring ett sted ofte gir uventede feil et annet sted.
- MVP
- Minimum Viable Product – den enkleste versjonen av produktet som likevel gir reell verdi og lar deg teste idéen.
- Tech-stack
- Samlingen av teknologier, programmeringsspråk og rammeverk et produkt bygges med.
- Teknisk gjeld
- Snarveiene og rotet i koden som hoper seg opp over tid og som til slutt koster mye å rydde i.
- Refaktorering
- Å rydde opp i og forbedre eksisterende kode gradvis uten å skrive alt på nytt.