Å bruke av egen fritid

Robert C. Martin hadde æren av å holde Keynote-talen på NDC i år. Der snakket han om hvilke prinsipper man bør følge for å kunne kalle seg en profesjonell utvikler. De som har fulgt med på denne bloggen vet at jeg lytter mye til denne mannen, og jeg er enig i det meste han sier.

Flere av prinsippene han presenterte gikk på hvordan vi utviklere bør forplikte oss til å bli bedre. Her er et utvalg:

Kjenn ditt fagfelt - Vi utviklere må kunne utviklingsfaget. Vi må strekke dette til områder utenfor akkurat det vi holder på med og har erfaring med. Vi må lære vår historie, ulike utviklingsmetodikker og prinsipper som har vært brukt opp igjennom vår forholdsvis korte historie - hvorfor de virket, og hvorfor de har blitt endret eller erstattet.

Kjenn ditt domene - Vi utviklere må sørge for å bli eksperter innenfor det forretningsområdet vi jobber i. Skal vi kunne produsere gode løsninger kommer vi ikke utenom at vi må kunne forretningen og forstå brukerne. Dette har jeg vært inne på i blogposten Utviklerprofiler og fire ferdighetskategorier.

Kontinuerlig læring - Vi må sørge for å hele tiden utvikle oss. Programmering er et stort fagfelt, og en utdanning pluss noen års erfaring er bare et lite steg på veien til å bli en mester. Faget er også i kontinuerlig utvikling, og mens mye bygger på kunnskap som allerede er etablert, er vi nødt til å henge med for å kunne utvikle gode løsninger i morgen.

Øv mye - For å bli en god fotballspiller må man øve. For å bli en god musiker må man øve. Det nytter ikke å bare spille kamper eller konserter. Å basere seg på å bare gjøre produksjonskode holder heller ikke. Man må øve på nye tegnikker, og man må repetere gamle for å holde dem ved like. Man må trimme hjernen, og få ting til å sitte i fingrene. Kun da kan man gjøre den beste jobben når det virkelig gjelder.

Og så slipper Uncle Bob den store bomben:

“En profesjonell utvikler bruker 20 timer av sin fritid hver uke på å utvikle seg selv og bli bedre.”

Rundt meg merket jeg at folk reagerte. 20 timer? Av fritiden vår? Nei nå må han roe seg ned.

Jeg har selv brukt omtrent så mye tid av egen fritid på å bli en bedre programmerer det siste halve året (se å bli en .net ninja), men det er faktisk ganske mye, og man må ofre endel for å få det til. Jeg er på god vei til å bli en mye bedre utvikler enn jeg var, og ideelt sett er jeg enig at det hadde vært fint om alle gjorde som jeg har gjort, men det er nok ikke realistisk å få det til (med den innstillingen vi har til jobb i norge i dag).

Fordeling av tid pr uke
Omtrent slik ser uken min ut..

Jeg er enig med Uncle Bob i to ting: For det første må utviklere generelt jobbe mye mer med å bli bedre enn tilfellet er i dag. Og for det andre er jeg enig i at det er utviklernes eget ansvar å sørge for at de utvikler seg. Men våre arbeidsgivere må legge til rette for at utviklingen kan finne sted.

Vår industri må endre sin holdning til hva som er “godt nok”. Vi må innse at vellykket softwareutvikling er mye mer komplisert enn å sette en gjeng halv-erfarne utviklere til å produsere kode. Vi må skape et miljø hvor utvikling av de ansatte er en helt naturlig del av forretningen.

Man må sette av tid til å eksperimentere, og til å øve på grunnleggende ferdigheter. Systemutvikling har mye mer til felles med lege- og advokatyrket, yrker med ekstremt høy kompleksitet og endring, enn til mer forutsigbare yrker som f.eks. bygningsarkitekt eller tradisjonelle ingeniøryrker (flame on..).

Ja, en programmerer må være interessert i å kontinuerlig utvikle seg og sine ferdigheter, og en dyktig programmerer bruker også noe av sin fritid på dette. Men vi må skape større rom og forståelse for at dette skal skje også innenfor arbeidstiden. Ikke bare det å holde seg oppdatert, men å kontinuerlig bli bedre, bør være endel av stillingsinstruksen til enhver utvikler.

Knagger:

Kategorier: .net ninja.
RSS feed for kommentarene. Tilbaketråkk.

9 kommentarer til “Å bruke av egen fritid”

  1. Jonas Follesø Says:

    Et poeng du ikke tar med er at vi i Norge har 40 timer arbeidsuke. Om du ikke jobber overtid er ikke 20 timer på læring så fryktelig mye. Og da er ting som NDC, ComputerWorld, Blogger etc. inkludert i de timene.

    40 timers uke er et av prinsippene i XP (som vi i Norge tar som en selvfølge) - men som i USA er sett på som “radikalt” - hvor normen er at mange jobber opp mot 50-60 timer. Om disse personene kom ned på Norskt nivå ville de frigitt overtid til læring. Og om de bruker tiden på å lære ville de kanskje ikke behøvd å jobbe like mye overtid i førsteomgang?

    Poenget mitt er: om du ikke jobber overtid (følger vanlig norsk arbeidstid) er ikke 20 timer så mye for langt :)

    Fin post!

  2. Brad Storm Says:

    Interessant og garantert veldig sant.

    Men et nøkkelord slår meg: motivasjon. Og den er påvirket av indre og ytre faktorer.

    Indre motivasjon: at man faktisk er der man ønsker å være, at man har valgt yrket som programmerer fordi det er virkelig det man ønsker. Og at man har en “perfeksjonistisk” personlighetstype, gjerne også høyt utviklet konkurranseinnstinkt, som alltid tråler etter å bli bedre. Siden folk er forskjellig er det viktig å identifisere hvem som har denne indre motivasjonen. De som ikke har det kan sjelden “presses” til å bli mer motiverte - det ligger rett og slett ikke i deres natur.

    Ekstern motivasjon: Ha muligheten/en arbeidsplass til å programmere mye (unngå for mye rutine/vedlikehold), ha muligheten til å prøve/feile (å kunne feile er viktig!), og gjerne ha et kompetent miljø rundt seg av samme type mennesker som også er ute etter å forbedre seg. Et slikt arbeidsmiljø vil konservative ledere sky som pesten siden de ikke vil føle kontroll over situasjonen, men kreativismen og engasjementet miljøet skaper vil kunne generere både kvalitative og innovative løsninger.

    Men igjen… langt fra alle programmerere er av typen som ønsker å virkelig strekke seg forbi det “komfortable” og langt fra alle arbeidsmiljøer tilrettelegger for den motivasjonen som trengs. Det handler vel om å være bevisst på hva man egentlig vil med programmeringen?

  3. Torbjørn Says:

    Takk for kommentarene! Her er et par tidligere blogposter med andre utsagn av Uncle Bob som passer veldig bra inn i diskusjonen:

    En karriære innen programmering
    For mange utviklere som ikke bryr seg

    ..hvor Bob blant annet sier: “I think one of the problems we have as an industry is that we got way too many people slinging code. And we should probably reduce the number of people slinging code to the group that cares about it.”

  4. Paul Says:

    From my experience:
    - If I am NOT very concentrated at work, I am barely able to create anything, only handling “current issues” (emails, questions, meetings, support, technical impediments)
    - If I am WELL concentrated at work, I can in addition write required amount of (so-so-sloppy) code
    - If I stay a couple of extra hours at work, I can clean up this code without getting everyone else to feel “WTF are you doing, the refactoring guy”
    - Almost no chance I can learn something new without investing substantial amount of my spare time…and usually I don’t have enough time to invest :(

  5. Torbjørn Says:

    Paul, it sounds to me like what you’re stuck in a negative feedback loop. When you work extra to try to catch up on what you weren’t able to do during the day, you end up exhausted, and the next morning you’re not able to do much because you can’t consentrate. Which again makes you stay late while your frustration increases.

    This needs to be taken seriously..

    You should stop trying to compensate for bad performance during normal work hours by working extra in eavenings and weekends.

    I suggest you first make sure you’re relaxed (get a good nights sleep), and when you’re ready you come in to the office a bit earlier than usual, ideally before anyone else. Then for the first two or three hours you ignore all the distractions, emails, messenger, and blog feeds included (everything can wait three hours), and you do the best work possible - exactly the way you think it should be done. Nothing matters except this little timebox.

    You might loose concentration after a while, or get disturbed, but that is ok. Babysteps! If the rest of the day is a disaster you should still feel ok, cause you accomplished to stay focused for two to three hours. Or you might continue through the day, you never know. And when you’ve been at the office for the normal amount of working hours, you leave! Leave something interesting not done - then it’s easier to start up again the next morning.

    Do this a couple of days. And a couple of days more. It should not take long to break out of the loop if you supply the right kind of pressure to the system.

    Finally, a small tip about refactoring: Don’t talk about it as a separate step in the development process - it should be an integrated part of writing code. And don’t say you’re done with a feature until you’ve done the refactoring you believe is needed. But don’t try to produce perfect code, or weeks may go by without delivering any business value, which is supposed to be the reasone why people are paying you to code.

    I hope your situation improvs.., good luck!

  6. Johannes Brodwall Says:

    Dette hadde vært en veldig god kandidat til en lyntale og/eller open space på Smidig 2009-konferansen dersom du har anledning til å komme. :-)

    Du kan registrere lyntaler på http://smidig2009.no/talks/new.

  7. Thomas Ferris Nicolaisen Says:

    Hei Torbjørn, i lys av at jeg selv har slitt med å få tid til min egen selvutvikling den siste tiden, så prøvde jeg nettopp å sette opp min egen kake:

    http://spreadsheets.google.com/ccc?key=0An8Hqi7cIbIvdEVTeEM3VVJMSHRNRzBabHMwQ0w0dGc&hl=no

    Det blir liksom ikke mer enn 10 timer fritid, og av dette skal jo familie og frue ha sin del. Og etterhvert skal man jo ha unger og greier :)

    Ikke for å grave i privatlivet ditt, men hvordan ser timene dine ut konkret? Hvis jeg skal gjette så ser det ut som du jobber mindre og sover mindre enn meg. Stemmer?

  8. Torbjørn Says:

    Hei Thomas. Har du ikke rotet litt med utregningen din; i kolonnen for soving regner du med 7 timer * 7 dager, men totalt regner du kun med 5 dager. Du mangler rett og slett 48 timer i kaken din - gratulerer, du har ganske mye mer fritid enn du trodde!

    Når det gjelder timene mine konkret så har jeg akkurat gått gjennom en ganske stor omveltning - jeg har blitt pappa - og holder på å tilpasse meg til dette. Du kan forvente flere poster om hvordan man best utnytter tiden og motiverer seg til selvutvikling i tiden som kommer.

    Apropos: Ble tipset om en artikkel som heter How To Do What You Love i dag - http://www.paulgraham.com/love.html - hvor det blant annet blir sagt at du skal like jobben din så mye at konseptet “fritid” ikke lenger gir noen mening.

  9. Thomas Ferris Nicolaisen Says:

    Sannelig, jeg bommet grovt på timer totalt, må ha tenkt arbeidsuke i det jeg fylte inn den. Ja, da ser det jo ikke så værst ut! Takk for tips, ser frem til flere poster om dette. Gratulerer med pappaskapet forresten!

Skriv en kommentar

Torbjørn Marø

Torbjørn er systemutvikler og et aktivt medlem av .NET-miljøet i Bergen. Dette er hans blog.

Mulig relaterte linker

Siste kommentarer


Torbjørn: Skulle forresten ikke forundre meg om IronRuby - slik som mi...

Torbjørn: Er faktisk litt forvirret over de ulike strategiene man kan...

Jonas Follesø: Tips er og å se hvordan man lytter på events i IronRuby, s...

Torbjørn: Jeg unnlot med vilje å nevne ruby's implementasjon av Obser...

Odd Rune: Foretrekker ofte å bruke Observer jeg - http://ruby-doc.org...

Torbjørn: Takk for linken - gir god mening! Kanskje PSWinCom burde ha...

Bård Strøm: Ja, jeg er på. Interessante betraktninger når jeg nå skal...