Fra empiri til industri

Det er et paradoks at programvare benyttes i stadig flere kritiske systemer samtidig som vi mangler både modeller og empiri for å forstå kompleksiteten i programvareutvikling.
Mange bedrifter står under konstant press i forhold til å ta i bruk nye it-løsninger. Ny teknologi blir ofte anskaffet uten tilstrekklig kunnskap om nytte. Tilsvarende blir andre teknologier ignorert til tross for at de høyst sannsynlig vil være nyttige.

Siden det finnes lite empirisk kunnskap som kan bekrefte nytte, kostnader, begrensninger og risiko, er det vanskelig å ta informerte beslutninger om bruk eller ikke bruk av slik teknologi.

I beste fall leder dette til dårlige beslutninger og sløsing av offentlige midler. I verste fall utgjør det en trussel i forhold til liv og helse. Eksempler på det første har vi blant annet sett i tidligere omtaler i Computerworld av forskning gjennomført ved Simula-senteret. Et tragisk eksempel på det siste, er systemet som ble tatt i bruk av ambulanse-tjenesten i London.

At dette er en viktig problemstilling understrekes også av at Telenors nordiske forskningspris for 2004 nylig ble tildelt en av våre nære samarbeidspartnere, professor Claes Wohlin ved Blekinge Tekniska Högskola i Sverige, for hans forskning innen kvalitet og effektiv utvikling av programvaresystemer.

Empirisk kunnskap

Empirisk kunnskap er erfaringsbasert kunnskap som vi erverver gjennom direkte erfaring og observasjon ) ikke spekulasjon. Empirisk forskning er således forskning som systematisk samler og analyserer informasjon om relevante fenomener. Slik forskning kan anta mange former ) fra kontrollerte eksperimenter til case-studier.

Empiri står i kontrast til teori, som er antagelser og forklaringer om de samme fenomener. Ideelt sett ligger det en teori til grunn for den empiriske forskningen. Deretter kan teorien modifiseres av den empiriske kunnskapen.

På bakgrunn av teorier kan vi bygge modeller som vi kan bruke i praksis. Disse modellene representerer vår forståelse av slike ting som applikasjonsdomener og problemløsningsprosesser. Å teste at modellene er riktige, eller fungerer godt nok, innebærer å teste dem vitenskapelig ved hjelp av empiriske studier.

På den måten sikrer vi at våre teorier og modeller til enhver tid representerer den beste empiriske kunnskapen.

Systematiske oversikter

For å forstå teknologienes gyldighetsområder og begrensninger er det ikke tilstrekkelig med enkeltstående empiriske studier. Vi har behov for systematiske og pålitelige oversikter over resultatene fra flere slike studier.

Innen medisin legges det stor vekt på slike oversikter etter at studier på slutten av 1980-tallet viste at mangel på systematiske oversikter kunne koste liv og at kliniske ekspertvurderinger alt for ofte var dårligere enn resultatene fra systematiske oversikter. Siden den gang har medisinske forskere tatt i bruk det som kalles kunnskapsbasert (eller evidensbasert) medisin.

Det verdensomspennende Cohranesamarbeidet utgjør fundamentet i kunnskapsbasert medisin. Dette er en internasjonal organisasjon som har som mål å hjelpe folk med å ta velinformerte beslutninger på spørsmål i tilknytning til helse og sykdom. Dette skjer gjennom å utføre, oppdatere og sikre lett tilgang til systematiske oversikter over effekten av helsevesenets intervensjoner. Basert på disse oversiktene blir det deretter utarbeidet retningslinjer for praksis som oppmuntrer til bruk av behandlingsformer som har vist seg å være effektive.

Få studier, lav kvalitet

Et alvorlig problem innen systemutvikling er mangelen på gode og relevante empiriske studier. Utfordringen blir ikke mindre av at de studiene som tross alt finnes, ofte peker i forskjellig retning.

Med mindre vi kan forstå disse forskjellene, blir det vanskelig å sammenstille resultatene fra enkelt-studier til systematiske oversikter. Motstridende resultater skyldes flere ting. Forskjell i grundighet i gjennomføringen av studier er en ofte forekommende årsak. En annen er mangelfull rapportering av informasjon om den situasjon og de betingelser studien ble gjennomført under.

Samtidig vet vi at programvare blir stadig større og mer kompleks. Kombinert med en stor og økende endringstakt bidrar dette til at vi blir eksponert for enda større risiko for programvarefeil og tilhørende katastrofer.

Kunnskapsbasert systemutvikling

Skal vi sikre norsk konkurransekraft også i årene som kommer må vi erstatte dagens problemløsningsmodell med mer omfattende og langsiktig forskning som omfatter teoridannelse, modellbygging og empiri. Gjerne etter modell av Cochranesamarbeidet. Denne forskningen vil i sin tur føre til mer effektiv systemutvikling og høyere kvalitet i levert programvare.

Gjennom International Software Engineering Research Network (ISERN), der SINTEF, NTNU og Simula-senteret er de norske medlemmene, jobber vi derfor aktivt med flere initiativ for å styrke den empiriske forskningen i faget. For å lykkes er vi imidlertid avhengig av solid støtte både fra virkemiddelapparat og industri.