Thomas lærer av historien [Luke 4, 2012]


tirsdag 4. desember 2012 Julekalender Git Meninger

Thomas Pedersen (@thedersen) leder Norwegian .NET User Group avdeling Bergen, og er en meget trivelig og omgjengelig fyr som brenner for faget. Han har bidratt til årets kalender med et enkelt og greit tips som faktisk kan gi deg svært mye om du er villig til å forsøke det.

Thomas-Profil

Hvem er du?
Utflyttet Ålesunder med musikk, foto og programmering som mine store lidenskaper.

Hva er jobben din?
Konsulent i Miles Bergen, for tiden hos kunde i forsikringsbransjen.

Hva kan du?
Har jobbet mye med web-frontend og JavaScript-applikasjoner i det siste, men trives også med mer "hard core" backend utvikling.

Hva liker du best med yrket ditt?
Muligheten til å kontinuerlig forbedre meg og lære nye ting. Ingen to dager er like.

Her følger bidraget fra Thomas...


Lær av historien

Jeg ønsker å dele et tips jeg selv fikk for en del år tilbake. En enkel liten sak dere kan gjøre hver dag, i løpet av 10-15 minutter, og som garantert vil øke kvaliteten på det dere som enkeltperson og som team leverer. Selv har jeg hatt utrolig stor nytte og glede av det, so here we go: 

Bruk noen minutter hver morgen, mens du drikker morgenkaffien, til å lese gjennom gårsdagens innsjekkinger som er gjort av teamet ditt. Både innsjekkingskommentaren og koden. 

That's it. Hvorfor skal du så gjøre dette?

Øker kvaliteten

I flere prosjekter har jeg forsøkt å innføre en eller annen form for code review, uten særlig stort hell. Det fungerer en periode, men så faller man fort tilbake til gamle synder.

Å lese innsjekkingshistorikken er også en form for code review, men en noe mer uhøytidlig og frivillig versjon. Kanskje er det derfor også den som, etter min erfaring, fungerer best?

En code review øker uten tvil kvaliteten på det du og ditt team leverer. Ved å lese over kode som andre har skrevet, vil du garantert finne bugs. Forhåpentligvis ikke alltid, men noen ganger. Kanskje sitter du inne med forretningskunnskap som gjør at du også finner funksjonelle feil. Ofte vil du også se potensielle forbedringer og refaktoreringer som kan gjøres for å heve kvaliteten på kodebasen. Jeg kan også garantere at du vil lære et triks eller to. 

Du får større oversikt i kodebasen og prosjektet

Dette er kanskje den største gevinsten, forutenom at feil blir oppdaget og rettet. Selv i små team er det vanskelig å ha oversikt over hele kodebasen, og ofte opplever jeg utviklere som sitter og løser samme eller lignende problem som en kollega løste for bare noen dager siden. Det er selvsagt ikke mulig å ha hele kodebasen i hodet til en hver tid, selv om du leser all kode som sjekkes inn, men du får i alle fall et mye større overblikk.

Du blir bedre til å sjekke inn

Hæ? Er det så vanskelig da, tenker du kanskje. Ja, det er faktisk det. Noen sjekker inn kode en gang i uken, gjerne hver fredag før de tar helg, mens noen sjekker inn flere ganger i timen. Dette er selvsagt ytterpunktene, og de fleste befinner seg nok et sted i mellom. Selv er jeg tilhenger av å sjekke inn ofte, men har også lært at det kanskje ikke alltid er like fornuftig historisk sett.

Etter at du har brukt innsjekkingshistorikken til noe fornuftig over en tid, vil du også lære å sette pris på innsjekkinger som gir mening, og som ikke bare er en samling filer som må tas backup av. Kanskje du lærer at refaktoreringer og opprydningsarbeid i koden bør være i adskilte innsjekkinger fra ny funksjonalitet? Kanskje du lærer at en innsjekking bør være maks én funksjonell endring og ikke flere? Kanskje du lærer å skrive en innsjekkingskommentar som faktisk gir mening?

Du blir flinkere til å lese kode

Enten vi liker det eller ei, så bruker vi mesteparten av vår tid som utviklere på å lese og forsøke å forstå kode. Jo mer kode du leser, desto flinkere blir du på å lese kode, og ikke minst å skrive kode. Enkelt og greit. 

For en ganske liten innsats, så kan du altså forbedre både deg selv og ditt team veldig mye. Gjør deg selv en tjeneste og bytt ut nettavisen med innsjekkingsloggen allerede i morgen tidlig!


comments powered by Disqus