Insikter Verksamhetsnära system Tobias Hammarstrand

Förvaltning — vad håller ett system vid liv?

När ett egenutvecklat system börjar krångla tre år efter lansering sitter felet oftast i ägarskapet och förvaltningen, och det är mycket lättare att förebygga än att reda ut i efterhand. Fyra saker avgör om systemet håller, och alla behöver vara bestämda innan det levereras.

De flesta som arbetat med IT-system i producerande bolag känner igen mönstret. Ett egenutvecklat system tas i drift och löser precis det det byggdes för, så verksamheten är nöjd. Tre år senare är systemet fortfarande i drift, men varje ändring tar tre veckor och kräver ett samtal med en specifik person. En säkerhetsuppdatering av en beroende komponent skjuts upp eftersom ingen vet vad den påverkar, och en ny funktion som är "planerad" har legat kvar i backloggen i arton månader.

Koden fungerar oftast, och systemet gör fortfarande det det gjordes för. Det som har hänt är att ägarskapet luckrats upp och dokumentationen halkat efter, medan den tekniska skulden vuxit utan att någon märkt det förrän den blivit för stor att ignorera.

Vad som faktiskt krävs Fyra förutsättningar för lång livslängd

Fyra saker avgör om ett egenutvecklat system håller länge, och alla fyra behöver vara beslutade innan systemet levereras. Den första är namngivet ägarskap. Någon i organisationen behöver känna systemet tillräckligt väl för att fatta prioriteringsbeslut och ha mandat att planera underhållet. Utan en sådan person glider systemet mot ett läge där alla vet att det behöver uppdateras, men ingen ansvarar för att det blir gjort.

Den andra är dokumenterad affärslogik, alltså varför varje regel och undantag finns och inte bara hur koden är uppbyggd. Annars försvinner affärsbesluten som kodats in ur minnet när de som fattade dem slutar, och kvar blir en regel som "alltid har funnits" och som ingen vågar röra.

Den tredje är en definierad förändringsprocess. Önskemål om nya funktioner och felrapporter behöver hamna i en gemensam backlogg, med en kontaktpunkt och en tydlig väg fram till prioritering och genomförande. Utan det lever önskemålen i mejltrådar och muntliga samtal, och det som blir gjort styrs av vem som råkar fråga vid rätt tillfälle.

Den fjärde är planerat tekniskt underhåll. Skjuter man upp plattformsuppdateringar och säkerhetspatchar växer den tekniska skulden, och systemet blir allt svårare att ändra. Därför behöver underhållet planeras som något som återkommer, och inte göras som ett akutprojekt när något slutat fungera.

Gaia har förvaltat ett system åt ett statligt affärsverk sedan tidigt 2000-tal, och längs vägen har i stort sett all teknik bytts ut eller byggts om. Det som hållit systemet levande är att affärslogiken har dokumenterats och ägs, och att det funnits ett kontinuerligt ägarskap på båda sidor.

Samma mönster syns, fast i en annan fas, hos en medicinteknisk koncern som byggt och förvaltat sitt eget verksamhetssystem. När de kom till Gaia hade de drivit systemet i flera år, och det fungerade, men de hade vuxit ur sin egen kapacitet att hålla det i form. Gaia tog då över drift, support och underhåll och har sedan dess också stått för nyutveckling. Tillsammans byggde vi en ny B2B-e-handelsplattform ovanpå den förvaltade grunden, integrerad mot det befintliga verksamhets- och ekonomisystemet. Nu kan deras kunder söka produkter och lägga ordrar själva, med sitt unika sortiment och sina unika priser.

Vad som händer utan det Systemet ingen vågar röra

I en annan artikel i serien skriver vi om systemet som fungerar men som ingen vill gå nära. Det tillståndet är vanligt för egenutvecklade system som levt länge utan aktiv förvaltning. Koden saknar dokumentation, eller har kommentarer som inte längre stämmer med vad den gör, och eftersom ingen kartlagt beroendena vet ingen riktigt vad en ändring på ett visst ställe påverkar.

Affärslogiken gör ändå systemet till en tillgång. Men det har blivit så dyrt att ändra i det att man i stället bygger nödlösningar runt det, och sedan nya nödlösningar runt dem. Vid det laget kostar det mer att hålla systemet vid liv än vad det hade kostat att förvalta det aktivt under alla år.

Ärligt

När ett förvaltningsproblem har blivit för stort att ignorera vill många skriva om allting från grunden, men det är sällan rätt väg. Affärslogiken i systemet är svår att återskapa, eftersom den bär år av beslut och undantag. Modernisering och refaktorering fungerar oftast bättre, men då behöver ni först ta reda på vad som finns i systemet.

Förvaltning som en del av projektet Beslutet fattas innan leveransen

Därför levererar Gaia aldrig ett system utan en förvaltningsplan. Innan systemet tas i drift bestämmer vi tillsammans med er vem som äger det och hur önskemål och tekniska uppdateringar ska hanteras, liksom vad som ingår i det löpande underhållet. Det är de besluten som avgör om systemet fortfarande gör nytta om tre år, långt efter releasedagen.

Om Gaia fortsätter som förvaltningspartner ingår löpande tekniskt underhåll och planerade genomgångar av beroenden och plattformsstatus, och ni har alltid någon att fråga som minns hur systemet är byggt. Vill ni hellre ta över förvaltningen själva lägger vi tid på att dokumentera och föra över kunskapen ordentligt, så att systemet fungerar utan oss.

Ta med dig

  • Förvaltningsproblem i egenutvecklade system är nästan alltid ägarskaps- och dokumentationsproblem, inte tekniska. De förebyggs med namngivet ägarskap, dokumenterad affärslogik, en definierad förändringsprocess och planerat tekniskt underhåll.
  • Systemet som ingen vågar röra är ett förvaltningsproblem som börjar tidigt och byggs upp av utebliven förvaltning snarare än av dålig teknik.
  • Förvaltningsplanen beslutas innan leveransen. Vem som äger systemet och vad som ingår i det löpande underhållet påverkar livslängden mer än de tekniska valen gör.

Gaia System AB

Microsoft Azure, .NET och systemutveckling i Norrköping sedan 1995

Gratis guide

Är ett eget system rätt för er?

Fem frågor som ger en ärlig fingervisning om ett egenutvecklat system är rätt väg för er verksamhet, och som hjälper er att tänka igenom kalkylen innan ni pratar med någon leverantör.

Gå till guiden
Boka ett samtal