Innlegg: Katastrofemedisin hindrer datakrasj
Et enkelt prinsipp som legene utviklet under første verdenskrig, gjør at vi nå kan utvikle bedre og billigere programvare.
Svaret ble et sett av sorteringskriterier, kalt «triage» – fransk for sortering. Prinsippet brukes fortsatt på store ulykkessteder. Med tidlige og raske ekspertvurderinger deler helsepersonell de skadde i to grupper: de som har nytte av behandling det er mulig å gi, og de som ikke har det.
Fra Norge har ikt-verdenen nå fått en metode som på lignende vis hjelper systemutviklere å sortere. Hos Tietoevry og hos Digitaliseringsdirektoratet har den alt spart arbeid og bedret kvaliteten på datasystemer.
Metoden viser utviklerne allerede på «tegnebrettet» hvilke arbeidsoppgaver som kan få et datasystem til å krasje, om de ikke vies nok oppmerksomhet i utviklingsfasen.
Verktøyet er resultatet av et prosjekt der vi som er forskere og vi som representerer ikt-industri og systemeiere har samarbeidet, med støtte fra Forskningsrådet. Bakteppet er at datasystemer er som oss alle.
Får de for mye å gjøre, møter de nemlig veggen. Det skjer hvis de får flere brukere på en gang enn forutsatt, eller om brukerne gir datasystemet tyngre oppgaver enn det er laget for. Systemet har «skaleringsproblemer», heter dette på fagspråket.
Betydningen av riktig skalering i dataverdenen blir lettest å forstå om du sammenligner datasystemer med sykehus.
Et sykehus har mange ulike arbeidsoppgaver. Noen må gjøres ofte, noen er lette og noen haster mer enn andre. Da koronaen kom ble det klart at arbeidskrevende respiratorbehandling av mange dødssyke samtidig, kunne knekke sykehusene. Som mottrekk økte de kapasiteten ved å kjøpe flere respiratorer og frigjøre sykepleiere fra annet arbeid.
På lignende vis analyserer metoden vår arbeidsoppgavene til et datasystem. Noen oppgaver er tunge, andre er hyppige og noen haster mer enn andre. Eksperter vurderer hver oppgave og gir den separate «verdier» for hvor tung den er, hvilken frekvens den har og hvilken hastegrad. Enten lav, middels eller høy.
At verdiene angis hver for seg, er den sentrale innovasjonen som gjør det håndterbart å vurdere hvor krevende hver arbeidsoppgave er.
Kombinasjonen «høy-høy-høy» er opplagt skummel og må vies omtanke for å bli løst best mulig. Sammen vurderer ekspertene om også kombinasjoner som «høy-middels-høy» kan knekke systemet. Akkurat slik feltlegene vurderte hvem som ville ha best effekt av behandling, sirkler metoden inn de delene av datasystemet der «krasjforebygging» må til.
Mulighetene for å tilføre datasystemer ekstra ressurser, på linje med «respiratorer og sykepleiere», ligger eksempelvis i å gi systemet flere prosessorer. Men dette er ikke rett frem.
Det blir som når flere personer sammen skal løfte en tung gjenstand. Kanskje klarer hver av dem 30 kilo. To kan samarbeide perfekt og løfte 60 kilo. Men seks personer klarer neppe å samarbeide perfekt om å løfte 180 kilo. Slik er det også med prosessorer.
Desto viktigere er det for systemutviklere å vite nøyaktig hvilke av datasystemets arbeidsoppgaver de bør bruke kreftene sine på for å få systemet til å tåle økte arbeidsmengder.
Til nå har skaleringsproblemer ofte blitt oppdaget først etter at arbeidsoppgavene er ferdige. Slik kostbar brannslukking gir forsinkelser.
Metoden vår endrer dette. Når ekspertene på forhånd vet hvilke arbeidsoppgaver som kan få datasystemet til å bryte sammen, kan de gi verdifulle innspill underveis. Dette sparer både tid og penger. Mindre stress blir det også.
Metoden trenger fortsatt mer utprøving. Samtidig utvider vi den slik at den kan analysere programvaresikkerhet og drift av kritiske datasystemer.
Det hele altså ved hjelp av et gammelt og enkelt prinsipp fra katastrofemedisin.