lørdag 15. mars 2014 F# Jobb PSWinCom
Siden jeg startet i PSWinCom har det vært viktig for oss i utviklingsavdelingen å bruke litt av tiden vår på å holde oss oppdaterte, utvide horisonten og lære hverandre nye ting.
Hver uke setter vi av én time til å gjøre noe helt annet enn det vi normalt holder på med. Vi har sett videoer, holdt presentasjoner for hverandre og hatt små coding dojo-sesjoner.
Men det har vært litt vanskelig å passe på at det skjer hver uke. Ofte skipper vi timen vår når vi har det hektisk, når ingen har rukket å forberede noe. "Den tekniske timen" blir fort glemt.
For å få mere ut av disse timene bestemte vi oss i år for å gjøre det litt anderledes. Det vi forsøker på nå er å i felleskap velge oss et tema som mange har lyst å lære mer om, og så fokusere på dette over en periode på ca to måneder.
Det første temaet vi valgte var F#. I to måneder vil vi som team bruke én time i uken på å lære mer om dette språket, og hva det kan gjøre for oss.
Vi bruker ulike måter å lære på. Jeg holdt en ultrarask presentasjon av språket (en komprimert utgave av den jeg holdt på NNUG i januar). Den neste timen lagde jeg en oppgave som de andre skulle løse i felleskap. Mellom dette gav jeg litt hjemmelekse - noen små øvingsoppgaver som utviklerne kunne bryne seg på om de ville.
Innholdet den tredje uken var videoen F# for Parallel and Asynchronous Programming.
Etter dette har det stoppet litt opp pga. endel omstendigheter, men målet nå er at vi over noen uker skal forsøke å bruke F# til å løse et reelt problem som vi allerede vet hvordan vi løser i C#. Dermed vil vi bedre kunne se hvilke fordeler F# kan gi oss, og erfare hvordan komponenter skrevet i F# vil fungere inn i vårt eksisterende produkt.
Det vi ønsker å oppnå ved å fokusere på F# i to måneder er rett og slett å finne ut om språket kan gi oss noe. Hva er F# bra på, og hva er det mindre bra på. Selvsagt kan ikke F# løse noe som C# ikke kan, men F# og funksjonell programmering kan lære teamet å tenke på nye måter, og personlig håper jeg vi vil oppleve at enkelte ting blir mindre komplekse og enklere å implementere.
Målet er at vi skal bli såpass komfortable at vi tørr velge F# som implementasjonsspråk når vi skal igang med å løse en ny oppgave - uavhegig om vi velge å gjøre det eller ikke.
Allerede etter første time om F# var det én utvikler som valgte å bruke det nye språket til å implementere noe som skulle i produksjon. Det var utrolig gøy å se! Og hvorfor ikke - den beste måten å lære på er å kaste seg ut i det. Nå når alle på teamet blir eksponert for språket er ikke rissikoen ved å ta dette valget så veldig stor.
Valget førte derimot til at vi måtte gjøre et grep for å støtte F# i TeamCity, noe den ikke gjorde ut av boksen. Men det var ikke så vanskelig å få til etter at vi fant oppskriften på nettet (et greit tips for dem som trenger det).
Når de to månedene er over vil vi gjøre en retrospective og reflektere over hva som fungerte og hva som ikke fungerte så bra - i forhold til F#, men også i forhold til hvordan vi tilnærmet oss utfordringen. Etterhvert håper jeg vi som team blir gode på å sette oss grundig inn i nye ting og teknologier.
Hva synes du om valget vårt? Bruker du F# i jobben? Hva gjør dere på din arbeidsplass for å motivere hverandre til å lære? Som vanlig setter jeg veldig stor pris på kommentarer!