En Software Craftsman finner seg en lærling


tirsdag 6. april 2010 Mentoring

Synes du folk som Uncle Bob og Corey Haines har mye fornuftig å si? Mener du at vi må hjelpe hverandre å bli bedre utviklere? Har du lyst å kunne kalle deg selv en Software Craftsman? Har du signert Software Craftsmanship manifestet? Svarer du ja på ett av disse er mitt neste spørsmål: Har du funned deg en lærling???

De som støtter ideen om Craftsmanship, og som mener programmerere kontinuerlig må jobbe aktivt med å bli bedre, må ta konsekvensene av dette. Dette betyr blant annet at du bør finne deg en mentor som kan være din veileder, og at du tar deg en lærling som du kan være veileder for. Både du og din mentor vil lære av at han hjelper deg, og på samme måte vil du og lærlingen din begge lære mye av deres sammarbeid.

Så med disse tankene i hodet tok jeg turen innom Norsk Freakforum og registrerte meg som villig læremester. Og etter kort tid tok Olaf kontakt…

Min lærling

CropperCapture[63] Olaf er en 19 år gammel IKT-lærling som har syslet litt med programmering i et års tid (C#, C++, Java, og VB.NET), og som har planer om å ta Informatikk på NTNU. Han hadde lyst til å lære mer, spesielt i C#, og ville gjerne bli min lærling.

Jeg sa at jeg ville fokusere på å lære ham profesjonell softwareutvikling, ting som god bruk av objektorientering, ren kode, og praksiser som testdreven utvikling etc. Han vet nok ikke helt hva dette innebærer enda, men min plan er å gi ham balast han ikke vil få i et Informatikk-studie, som vil gjøre ham til en smidig utvikler av kvalitets-prgramvare. Underveis tetter vi hull i grunnleggende programmeringskunnskaper når de dukker opp.

Jeg begynte med å gi Olaf en rimelig grei programmeringsoppgave. Første gangen fulgte jeg ganske nøye med mens han jobbet, og kunne gi ham noen tips underveis. Når programmet fungerte som spesifisert gjorde jeg en grundigere code review, og gav ham tips om forbedringer han kunne forsøke. Og slik har vi fortsatt – han koder litt, jeg gjør en review og tilbakemelding, og han koder videre. Etterhvert varierer jeg hva jeg fokuserer på, og han lærer forhåpentligvis mer og mer.

Olaf gav meg i alle fall raskt en god tilbakemelding:

"Ja allerede nå føler jeg at jeg har lært mere innen objekter og klasser. Tidligere har de ikke virket så logiske å forstå, men føles nesten som jeg har fått en diger lyspære over hodet. Frem til nå har jeg ikke brukt objekter, rett og slett fordi jeg ikke har forstått det, men nå som jeg måtte bruke objekter, ble det fort enklere å få den motivasjonen til å lære."

Teknisk oppsett

For å dele filer har vi valgt å bruke DropBox. Olaf kan da dele prosjektene sine med meg, og Visual Studio gir meg øyeblikkelig beskjed når han har lagret en ny endring (f.eks. når han kompilerer programmet). Dermed kan jeg følge med nesten i real time, uten å måtte bruke en eller annen form for delt desktop-løsning. Jeg kan også legge til filer i prosjektet med tips og nye oppgaver, og dette har fungert fint sålangt.

Utover dette kommuniserer vi via epost – så slipper vi å måtte være online og tilgjengelige samtidig, og vi kan gjøre det vi skal når det passer hver av oss best.

Min bønn til dere andre med litt erfaring

Jeg vil på det sterkeste anbefale alle i min situasjon om å forsøke å finne seg en lærling. Det krever ikke så mye – vi snakker om langsiktige sammarbeid hvor læremesteren kan være støttespiller for en som ønsker å bli en bedre utvikler – og man trenger ikke legge så mye tid i det fra uke til uke. Spre litt av den erfaringen du har opparbeidet deg. Hvis vi er mange nok som gjør dette vil kvaliteten i bransjen kunne øke dramatisk.

Råd til blivende softwareutviklere

Det finnes mange utviklere i Norge som brenner for faget sitt, og som har masse erfaring å by på. De samles ofte på såkalte brukergrupper, og jeg vil anbefale alle som er insteressert i å lære programmering om å oppsøke disse. For .NET-utviklere har vi NNUG, som finnes i åtte byer i Norge. Java-utviklere har javaBin, Rubyister i Oslo har irb.no, og det finnes sikkert mange flere (skriv en kommentar om du vet om noen). Det er gratis å bli med på slike møter, og kvaliteten på det man får se er som regel veldig bra. Og så kan man regne med å få litt pizza.

Et annet sted man kan treffe ivrige utviklere er på twitter. Se for eksempel henriksen's liste over norske .net-utviklere, eller fkalseth's norwegian-dev-community-liste. Følg med på hva folk snakker om, delta i samtalene, finn ut hvem som kan være potensielle mentorer for nettopp deg – og spør dem om de har lyst til å bli det!

Utviklere må selv ta ansvar for karriæren sin, og må jobbe aktivt med læring. Med en læremester å støtte seg til kan man korte ned tiden det tar å bli en dyktig programmerer.


comments powered by Disqus