Blog om agile metoder, udvikling og ledelse


balance, arbejde, møder, zonen

Programming, fast and slow

Morten Ulrik Sørensen | 21.03.2020

I min hverdag har jeg typisk to forskellige aktiviteter: jeg producerer, og jeg koordinerer. Begge dele er vigtige, og de er gensidigt afhængige — men det er også to meget forskellige arbejdsopgaver.

Det meste af min arbejdstid bruger jeg som udvikler og spillende træner på et udviklingshold (cirka 10 udviklere, 1 tester, 2 "fra forretningen"). Vi prøver naturligvis at lave et godt produkt, der opfylder brugernes behov, gør dem effektive, og som har en høj kvalitet, både set udefra fra et brugersynspunkt, og set indefra fra et udviklersynspunkt (så vi kan blive ved med at være effektive).

Da jeg kom frisk fra universitetet midt i halvfemserne, forestillede jeg mig, at jeg skulle programmere en masse — det var det, jeg syntes jeg var god til, og det, al min tekniske snilde skulle bruges til. Der gik dog ikke længe før jeg indså, at det er mindst lige så vigtigt at forstå, hvad brugerne har brug for, selv når de ikke selv helt har forstået det endnu.

Vi skal, i prioriteret rækkefølge:

  1. lave det rigtige (typisk: Product Owners hovedansvar)
  2. lave det rigtige rigtigt (udviklernes faglige stolthed)
  3. lave det rigtige rigtigt, hurtigt (vores fælles ansvar om at levere)

Alle tre er vigtige, jeg mener en masse om alle tre, og jeg har heldigvis altid fået lov til at blande mig i alle tre, uanset hvad der har været at formelt definerede roller til mig og andre.

Og konkret i min hverdag betyder det, at jeg hver dag vil nå både at producere (punkt 2 og punkt 3) og at koordinere (punkt 1 og 3).

Når jeg har ladet mig inspirere til titlen på dette indlæg af Daniel Kahnemans udmærkede Thinking, Fast and Slow, så er det fordi jeg også oplever, at jeg arbejder i et "System 1" (som er hurtigt) og et "System 2" (som er langsommere og kræver mere eftertanke).

Indrømmet, selvom jeg siger hurtig og langsom ligesom Kahneman, og synes, der er en parallel, så snakker jeg ikke om det samme som Kahneman. Begge mine arbejdsmodus handler om at tænke sig godt og koncentreret om og hører til i Kahnemans System 2; ingen af dem klares med intuition og af rygmarven. Så for den enkelte person hører begge dele til "langsom tænkning". Men på holdniveau er det to forskellige systemer, et hurtigt-tæt-med-hurtige-beslutninger, og et langsomt-frem-og-tilbage-lad-os-overveje-noget-mere.

Det hurtige

Når jeg producerer og programmerer, alene eller hellere sammen med en par-programmeringsmakker, så er det meste af tiden koncentreret og "i zonen". Det hele foregår mellem skærmen, makkeren og mig, og består af en masse hurtige beslutninger om logik og kodekvalitet. Det føles umiddelbart produktivt, der kommer noget konkret ud af det, vi bygger noget.

Processerne er hurtige, og for holdet "intuitive" (selvom vi tænker os om, vi to foran skærmen).

Det langsomme

Koordineringen foregår mellem flere personer, typisk med forskellige vinkler eller typer af erfaringer, og rigtigt meget handler om sammen at nå en forståelse og sørge for at vi bagefter bruger vores "hurtige tid" rigtigt. Hvad har de brug for? Hvilke muligheder har vi for at dække behovet? Hvilke af behovene giver størst værdi her og nu? Hvem laver hvad? Skal vi dele opgaven op i overskuelige dele og koncentrere os om hver vores område, eller kan vi med fordel være mange om det, der er vigtigst lige nu?

Det tager tid, udbyttet af dagens møde er måske et par konkrete beslutninger, men ofte skal vi bagefter tænke videre hver for sig og mødes igen, måske tages der referat (som måske ligefrem også bliver læst, men ofte er det vigtigste ved referatet at skrive det og tænke (hurtigt) imens.).

Hurtigt og langsomt

Som sagt bruger jeg min tid på begge dele. Jeg føler mig mere produktiv når jeg programmerer, og når jeg i brusebadet eller på cyklen tænker over, hvad jeg gerne vil nå i dag, så er det næsten alt sammen det hurtige, det produktive, programmeringen, jeg lægger et ambitionsniveau for.

Og når dagen så rigtigt går i gang, så er der jo lige de andre opgaver også, og de er jo mindst lige så vigtige, for de handler jo blandt andet om hvordan både jeg og mine kollegaer kan bruge vores tid på at lave det rigtige (puntk 1 i toppen), eller hvordan vi kan gøre det mere effektivt, så vi kan nå noget mere (punkt 3). Meget vigtigt, det ved jeg rationelt godt. Men jeg bliver alligevel utålmodig, hvis jeg ikke får produceret så meget på en dag, som jeg drømte om, da den startede. Derfor bliver min dag ofte en time eller to længere end godt er, fordi jeg lige skal nå et par producerende timer mere.