4 min

Varför jag slutat vara rädd för legacy

Legacy är inte fienden. Det är bevis på att något fungerade. Modernisering börjar med respekt, inte förakt.

Michael Hansson

Legacy är inte fienden.

Det är bevis på att något fungerade.

Om ett system är gammalt och fortfarande används - betyder det att det löste ett problem bra nog för att folk inte bytte ut det.

Det är inte ett misslyckande. Det är ett kvitto på framgång.

Vi pratar om legacy som om det vore en sjukdom

“Vi har massa legacy.” “Vi måste bli av med legacyn.” “Det här legacy-systemet håller oss tillbaka.”

Men vad betyder det egentligen?

Att ni har kod som skrevs för 10 år sen? Att ni har processer som inte följer senaste trenden? Att tekniken inte är “modern” längre?

Jag frågar alltid:

“Funkar det?”

Och oftast är svaret: “Ja, men…”

Och där - i det där “men” - ligger problemet.

För det är inte systemet som är problemet. Det är förväntningarna.

Legacy betyder att ni lyckades en gång

Ett legacy-system är inte ett misslyckande.

Det är något som någon byggde, för att lösa ett verkligt problem, och det fungerade så pass bra att folk fortsatte använda det.

År efter år. Uppdatering efter uppdatering. Trots att andra verktyg kom.

Det är respekt värt.

Problemet är inte att systemet är gammalt.

Problemet är att behoven har förändrats - men systemet har inte hängt med.

Och det är en helt annan sak.

Vad som händer när man behandlar legacy som fienden

Jag ser det varje gång.

Någon bestämmer: “Vi bygger om allt från grunden.”

Och sedan händer det här:

  1. Man kastar bort allt som finns
  2. Man tror att man förstår vad systemet gör
  3. Man bygger nytt, snyggt, modernt
  4. Man märker att 60 % av funktionaliteten saknades - för ingen visste att den fanns
  5. Man lägger till den igen, men nu är det för sent
  6. Projektet drar ut på tiden
  7. Budgeten exploderar
  8. Någon säger: “Vi skulle ha behållit det gamla lite längre”

Det är inte modernisering. Det är brand och återuppbyggnad.

Och det funkar sällan.

Så jobbar man med legacy istället för mot den

1. Förstå varför det finns

Före ni river något - förstå varför det byggdes.

Vad löste det? Vem använde det? Vad skulle hända om det försvann imorgon?

Ibland är svaret: “Ingenting.” Då kan ni skrota det.

Men oftare är svaret: “Kaos.” Och då måste ni respektera det.

2. Bygg bredvid, inte istället för

Istället för att riva och bygga nytt - bygg det nya bredvid det gamla.

Låt de fungera parallellt. Migrera användare successivt. Verifiera att det nya funkar innan ni stänger av det gamla.

Det kallas Strangler Fig-mönstret.

Det tar längre tid. Men det är tryggare.

3. Modernisera där det spelar roll

Man behöver inte bygga om allt.

Ibland räcker det att:

  • Lägga till ett API så andra system kan prata med det
  • Bygga ett nytt gränssnitt framför en gammal motor
  • Flytta den mest kritiska delen och låta resten vara kvar

Modernisering börjar med att förstå var värdet ligger.

Och sedan fokusera där.

4. Sluta skämmas för det

Legacy är inte något att gömma.

Det är historien om vad ni byggt, vad som fungerat, och vad som fortfarande bär.

Om ni fortsätter behandla det som en pinsamhet kommer ni alltid vilja dölja det.

Istället: Var stolta över att ni byggt något som höll.

Och sedan - bygg vidare på det.

På måndag

Nästa gång någon säger “Vi måste bli av med legacyn”, testa att säga:

“Varför funkar den fortfarande?”

Och lyssna.

För svaret brukar avslöja att det ni kallar legacy - är anledningen till att ni fortfarande har verksamhet kvar.

Legacy är inte fienden.

Det är grunden ni står på.

Och man bygger inte framtiden genom att förneka historien.