Bedre programvare fører til bedre forskning

Bedre programvare fører til bedre forskning

12.01.2018
Programvare og datakompetanse er blitt avgjørende på de fleste forskningsområder, men forskere bruker ofte programvare som er unødvendig komplisert eller utvikler egne koder som blir ubegripelige for andre forskere. Men nå er det hjelp å få, i form av workshops som fremmer utviklingen av bedre programvare i forskningsmiljøer over hele Norden.

– Utviklingen av ny kunnskap blir stadig mer avhengig av kvaliteten på programvaren som brukes i forskningen. Derfor er vi fast overbevist om at utviklingen av bedre programvare også fører til bedre vitenskap, sier Radovan Bast. Han leder prosjektet CodeRefinery og er senioringeniør i Seksjon for digitale forskningstjenester ved Universitetet i Tromsø / Norges arktiske universitet. 

Code Refinery-prosjektet handler i første omgang om å utdanne de som kommer til en workshop for å lære hvordan de kan utvikle og bruke bedre programvare, men ringvirkningene kan være enda viktigere. Det er nemlig meningen at deltakerne etterpå skal kunne gå tilbake til sine egne institusjoner og dele det de har lært, og dermed bidra til å utvikle en bedre programvarekultur.

– I tillegg planlegger vi å etablere en plattform for versjonskontroll av koder, uansett om de er private eller offentlig tilgjengelige. Målet er å gjøre det enklere for forskere å samarbeide om utviklingen og bruken av koder og programmer, med sikte på å oppnå en bedre programkvalitet og enklere kunnskapsoverføring, supplerer Thor Wikfeldt. Han er applikasjonsekspert ved High Performance Computing-senteret som er tilknyttet Kungliga Tekniska högskolan (KTH) i Stockholm.

Finner opp hjulet gang på gang
Det er ikke bare i naturvitenskapene at programvare er blitt sentralt: De fleste fagområder er etter hvert blitt avhengig av digitale tjenester og kompetanse. Men det er altfor vanlig at forskere bruker arbeidsmetoder som er ineffektive eller har gått ut på dato. Radovan Bast og Thor Wikfeldt har mange ganger opplevd at forskere sliter med å gjenbruke og tilpasse programvaremoduler som er skrevet av andre forskere.

Forskerne sliter også når de skal gjøre sine egne moduler og løsninger tilgjengelige for andre brukere. Det ideelle ville være om forskningsprogramvare bygde videre på allerede eksisterende løsninger, på samme måte som nye vitenskapelige artikler bygger videre på allerede publiserte artikler, men slik fungerer det ikke i virkeligheten.

– Dagens praksis minner om å gjenoppfinne hjulet, gang på gang. Forskere skriver kanskje programvare som allerede eksisterer, men som ikke er gjort kjent offentlige. Vi kjenner også flere eksempler på at doktorgradsstudenter har skrevet sin egen programvare, men når studenten forlater forskningsgruppen etter tre-fire år er det ingen som forstår koden lenger. Det ville selvfølgelig vært mye smartere om den neste personen som kom inn i gruppen kunne bygge på programvare som allerede var utviklet, istedenfor å måtte bruke mye tid på å forstå eldre programmer eller tilpasse dem til eget bruk, sier Bast.

– Årsaken til disse problemene er at de som skriver programmer og koder, i mange tilfeller aldri har fått trening i moderne metoder for programvareutvikling. De har isteden fått en hovedopplæring innen sine respektive fagfelt, tilføyer Wikfeldt.

Entusiaster på oppdrag
Bast og Wikfeldt forteller at mange forskere utvikler programvare som er for kompleks, som ikke er reproduserbar, modulær, dokumentert eller testet – eller som er utilgjengelig for andre forskere. Alle disse problemene ble diskutert i workshops som ble holdt i hvert av de nordiske landene i 2017. Den første workshopen ble holdt over tre dager i Espoo i Finland i desember 2016, og den var svært godt besøkt av hovedsakelig doktorgradsstudenter eller postdoktorer fra ulike fagdisipliner: Fra matematikk og informatikk til fysikk, biologi, ingeniørfag og psykologi.

Radovan Bast tok doktorgraden i kjemi før han gikk helhjertet inn for programmering og databehandling, mens Thor Wikfeldt tok doktorgrad i fysikk og fikk mye erfaring med koding og datasimuleringer. Begge beskriver seg selv som «entusiaster på oppdrag» for å hjelpe andre forskere til å bli mer produktive når de utvikler og bruker programvare.

– Fysikere og kjemikere har skrevet koder og programvare i årevis, og brukt verktøyene til for eksempel å simulere atomers og molekylers oppførsel. Også biologifaget er etter hvert blitt svært avhengig av databehandling. Vi har hittil hatt flest deltakere fra naturvitenskapene, men vi vil gjerne også involvere flere forskere fra humaniora og samfunnsfagene. Også disse forskerne gjennomfører undersøkelser som genererer mye data, og de bør behandles og analyseres med de beste verktøyene som er tilgjengelige, sier Bast.

Det er aldri for sent
Workshopene og undervisningsmaterialet som tilbys i Code Refinery-prosjektet er egnet for personer med et bredt spekter av programmeringserfaring.

– I de første verkstedene møtte vi noen forskere som hadde skrevet programmer i årevis, og noen som nettopp hadde begynt. Poenget er at selv om folk har skrevet kode i lang tid, er det aldri for sent å lære seg en bedre praksis og bruken av nye verktøy. Men det er selvsagt alltid en god idé å starte tidlig, sier Wikfeldt.

Radovan Bast legger til at det er nødvendig med en viss basiskunnskap for å kunne delta i et Code Refinery-opplegg.

– Vi underviser nemlig ikke i programmeringsspråk, og vi har ingen intensjon om å erstatte tiltak som for eksempel det etablerte og innflytelsesrike Software Carpentry-prosjektet ved Software Sustainability Institute, understreker han.

Skaper nordisk merverdi
De to kode-entusiastene håper at innsatsen deres vil skape en merverdi for de nordiske forskningsmiljøene, som er vesentlig større enn det prosjektet i seg selv koster.

– Dette prosjektet ble «født» under et kurs som ble gitt for første gang på KTH i 2014. Vi har hatt en finansiering for to år, men behovet for samarbeid og utdanning vil være der i mange år framover. Derfor planlegger vi å utvikle et felleskap som kan sørge for at ideene bak initiativet blir vedlikeholdt, og at gode kode- og programmeringsmetoder blir bygd inn i forskerutdanningen, avslutter Bast.

--

Code Refinery-workshop var til daglig nytte

Verena Kutschera er postdoktor ved Institutionen för ekologi og genetik ved Uppsala universitet. Hun satte stor pris på deltakelsen i en CodeRefinery-workshop i Stockholm i februar 2017.

– Jeg jobber med evolusjonær genomikk og bioinformatikk og kombinerer eksisterende programvare med egne koder for å utvikle nye metoder for dataanalyse. Jeg har ikke bakgrunn fra informatikk, men har isteden utviklet mitt eget system for å skrive og dokumentere kode og prosesser, forklarer Kutschera.

Kutschera beskriver seg selv som en forsker som legger mer vekt på å bruke programvare enn å utvikle den. Workshopen ble en ganske intens introduksjon til programvareutvikling.

– I løpet av øktene i Stockholm lærte jeg ting jeg har hatt praktisk nytte av i hverdagen. Vi lærte for eksempel hvordan vi kan sette opp automatisert testing av kode, og hvordan det er mulig å omskrive komplisert kode slik at den blir lettere å forstå. Denne kunnskapen vil trolig gjøre det lettere for andre medlemmer i min forskningsgruppe, eller i andre prosjekter, å vite nøyaktig hvordan dataene er blitt behandlet. Jobben blir også enklere for andre forskere som måtte ønske å verifisere mine forskningsresultater når de er publisert, sier Kutschera.

Fakta om prosjektet

  • CodeRefinery er et prosjekt i regi av Nordic e-Infrastructure Collaboration (NeIC)
  • Kickoff var i september 2016
  • Prosjektet tar sikte på å lære forskere å bruke bedre verktøy og bli mer produktive når de utvikler og bruker programvare
  • CodeRefinerys nettsted: http://coderefinery.org
  • Twitter: @coderefine

Tekst: Bjarne Røsjø

Foto: Terje Heiestad

Nyhetsbrev

Hold deg oppdatert på nyheter om våre aktiviteter og utlysninger gjennom vårt nyhetsbrev på e-post.

Abonnér her