IT og teknologi

Funksjonell eleganse

Fellesskap-fire.png
Øystein Øvrebø mener at funksjonell programmering fører til systemer som er lettere å forstå, endre og vedlikeholde. 

Øvrebø3.jpegFrem til Øystein Øvrebø, leder for team bedrift, begynte i Frende for to år siden, hadde han jobbet med objektorientert programmering i 20 år. Nå har han byttet beite og fått smaken på funksjonell programmering. 

- Hva har skjedd? 

- Noen har lest en bok, sier Øystein (bilde) og ler. 

- En bok? 

- Ja. For halvannet år siden begynte vi å utvikle et nytt system for salg av gruppelivsforsikringer hos Frende, og vi visste at noen av de andre teamene på IT hadde positive erfaringer med funksjonell programmering. Utviklerne på teamet vårt var nysgjerrige, vi leste Domain Modelling Made Functional av Scott Wlaschin, og vi ble enige om at vi skulle gå for dette, forteller han. 

- Hvorfor? 

- Funksjonell programmering har rykte på seg for å være tungt, akademisk og matematisk, og det er jo ikke det vi driver med her. Men denne boken var en øyeåpner. Den viste på en pedagogisk måte hvordan vi kunne bruke et funksjonelt språk til å modellere et domene og ende opp med noe som var elegant og lett forståelig. 

- Ingen av dere hadde erfaring med funksjonell programmering fra før? 

- Nei. Vi kjente selvfølgelig til det i teorien, men ingen av utviklerne i teamet hadde brukt det i denne sammenhengen før. 

- Handlet dette også om egeninteresse, at dere ville lære noe nytt, eller var det utelukkende fordi at dette ville være en bedre måte å løse oppgaven på? 

- Begge deler. Vi visste fra andre team at dette var en smart måte å jobbe på, men det er jo spennende å lære noe nytt også. Driver du med programmering, blir du aldri helt utlært. Vi bruker ofte begrepet "bra å ha i verktøykassen". Vi er ikke snekkere, men vi bygger noe, vi også. Og funksjonell programmering er et verktøy det er lurt å kunne bruke. 


Lett å forstå, endre og vedlikeholde 

For utenforstående høres det å gå fra en kjent til en ukjent metode kanskje ut som oppskriften på ineffektivitet, men Øystein ser annerledes på det. Han forteller at læringskurven har vært bratt som unnarennet i Vikersund, men at de er i ferd med å lande med stil. Utviklerne har blant annet deltatt på kurs med Scott Wlaschin, forfatteren bak boken de lot seg inspirere av. De har konsultert utviklere i Frende som har vært borti funksjonelt språk tidligere, og de deler selvfølgelig kunnskap med hverandre underveis i prosessen. 

- Vi hadde nok kommet raskere i gang, og til et visst punkt ville vi kommet lenger, med objektorientert programmering. Men jeg tror at vi hadde gjort flere feil, og at vi ville brukt mye tid på å rette opp igjen disse feilene. En av fordelene med funksjonell programmering er at du blir styrt i en logisk retning som fører til færre feil. Vi må ta hensyn til færre bevegelige deler om gangen, vi kan konsentrere oss om én flyt, og dette gjør prosessen enklere og mer forutsigbar. Forelesere kaller dette gjerne for the pit of success; du faller ned i et hull der det er vanskeligere å gjøre feil. 

- Det høres ikke ut som det dummeste hullet å falle ned i? 

- Nei, det er det ikke. Systemet vi lager skal ha en levetid på minst 20 år, så derfor er det viktig at det er funksjonelt, lett å vedlikeholde, forstå og endre på i ettertid. 

- Er funksjonell programmering en mote eller en bedre måte å programmere på? 

- Begge deler, vil jeg si. Vi ser at den objektorienterte verden blir stadig mer funksjonell, at den blir påvirket av de funksjonelle språkene, og det er jo et slags bevis på at dette er et paradigme som har noe for seg. 

- Så nå har alle utviklerne hos Frende begynt med funksjonell programmering? 

- Nei da. Enkelte team jobber med videreutvikling og vedlikehold av eldre systemer som er laget med objektorientert programmering, og noen foretrekker fortsatt denne måten å jobbe på. Det kan jo hende at mitt team en gang har lyst til å jobbe objektorientert igjen, men da kommer vi nok uansett til å inkorporere noe av det vi nå har lært av å arbeide på funksjonelt vis. 

- Og funksjonell programmering er ikke så akademisk, tungt og matematisk som du hadde sett for deg? 

- Jeg er jo egentlig trommis og har bare ett år med matematikk fra videregående. Det er alt. Kan jeg lære meg funksjonell programmering, så kan alle det, konkluderer Øystein. 

Våre forsikringer