Å programmere for oljeselskap og andre deler av næringslivet kan være stressende. Kunden har stadig nye krav, og kravene endrer seg underveis, ifølge Morten Goodwin.
Han underviser i programmering på Universitetet i Agder, og ser hvor viktig det er å lære studentene å svømme i denne strie og turbulente kravstrømmen.
Raskere resultater
– I næringslivet brukes det som kalles testdrevet utvikling, forteller Goodwin til forskning.no.
Testdrevet utvikling går ut på å dele opp store programmeringsjobber i mindre tester. Hver test løses for seg.
Programmereren lager først en grovskisse til løsningen. Den kan gjerne være både uelegant og tungkjørt for maskinen. Men så forbedres programmet gradvis gjennom prøving og feiling.
Denne måten å jobbe på gir raskere resultater enn den tradisjonelle dype analysen av problemet før en eneste kodelinje av programmering skrives.
- Fraværende i dagens undervisning
Goodwin sammenligner de to metodene med husbygging. Tidligere bygget en snekker hele huset. I dag fordeles husbyggingen på et team av håndverkere, som gjør sin lille del av jobben.
– Den dype og den raske, oppdelte metoden står ikke i motsetning til hverandre. Problemet er bare at den raske, testdrevne utviklingen er fraværende i dagens undervisning, sier Goodwin.
Treningsprogram
Hans forskergruppe har brukt testdrevet utvikling for å gi studentene det de trenger mest: Mengdetrening.
Fra høsten 2014 skal studentene få bryne seg på programmer som tester studentoppgavene. Dermed får de rask tilbakemelding, og trenger ikke å vente på at lærerne skal ha tid til å rette.
Læreprogrammene legger også opp at studentene kan konkurrere med seg selv og hverandre, både i tempo og resultater.
– Vi vil utnytte konkurranseinstinktet og spillappellen, sier Goodwin.
Oppdager feil på høyere nivå
Læreprogrammene til Goodwin og hans gruppe er mer enn den vanlige debuggingen som finnes i de fleste dataprogrammer. Alle har vel sett det røde utropstegnet når man har satt et komma feil i Excel.
Slike feil blir som rettskrivingen i vanlig språk. Men det hjelper lite med perfekt rettskriving hvis setningen er meningsløs.
– Programmet kan være uten kodefeil på detaljnivå, men likevel ikke løse testproblemet. Slike feil på et høyere nivå oppdager vårt læreprogram, sier Goodwin.
Forbereder for næringslivet
Opplæringsprogrammene må skreddersys til den enkelte oppgave. Derfor krever de store ressurser å lage.
– Vi søker midler fra Kunnskapsdepartementet og tar kontakt med andre undervisningssteder for å dele erfaringer, for eksempel Høgskolen i Østfold og Høgskolen i Oslo og Akershus, opplyser Goodwin.
– Idéen er at når studentene er ferdig utlært, skal de kjenne metodene som brukes i næringslivet, understreker han.
Han er ikke redd for at norske programmerere vil bli utkonkurrert av kolleger på lavere lønn i for eksempel India og Øst-Europa.
– Bedriftene trenger uansett sjefer som kan håndverket til disse programmererne, både for å definere oppgavene og for å kontrollere resultatet, sier Goodwin.
- Klassisk utdannelse gir godt grunnlag
– Det næringslivet først og fremst trenger, er gode programmerere, kommenterer Dag Langmyhr til forskning.no. Han er universitetslektor i informatikk på Universitetet i Oslo.
– Selv om våre studenter har en mer klassisk utdanning, vil de etter kort tid i arbeid ute i næringslivet ha lært seg testdrevet utvikling og gjøre en like god jobb.
Annen type programmer
Læreprogrammer av den typen Goodwin beskriver, bruker ikke Universitet i Oslo i dag, opplyser Langmyhr. Studentene får riktignok rask tilbakemelding på andre måter.
– Studentene får ofte utdelt testdata som skal kjøres i programmet de har laget. Disse testdataene har et kjent resultat. Så kan studentene sammenligne sitt eget resultat med fasiten, og straks se om programmet virker slik det skal, sier han. Det er også vanlig at større problemer deles opp i mindre deler som leveres separat.
Gode, men arbeidskrevende
Langmyhr tror at læringsverktøyet som er utviklet ved Universitetet i Agder er en god måte å undervise på, men mener det må være svært arbeidskrevende for de som skal drive opplæringen.
– De må ikke bare lage problemene som skal løses i oppgavene, men dele dem opp i ganske mange delproblemer som man løser gradvis og utvikler trinn for trinn.
– Slik kan programmene simulere forholdet til kunden under testdrevet utvikling. Det krever tett oppfølging, men er som sagt veldig lærerikt, sier Langmyhr.
Menneske, ikke bare maskin
Han understreker likevel at det uansett er viktig med tilbakemelding fra læreren, ikke bare fra et dataprogram.
– En tilbakemelding fra faglærer gir studenten dypere forståelse av hva som kan forbedres, og bidrar bedre til å utvikle de mer vage kvalitetene ved programmering, sier han.
Lenker:
Nettsider om prosjektet Test Centered Learning Tool fra Universitetet i Agder