đŸŽČ — mikrobloggeriet olorm — olorm-45 · olorm-46 · olorm-47

OLORM-46: kortsiktig og langsiktig arbeid med kode

I prosjektet jeg jobber pÄ nÄ, skal jeg inn, gjÞre en jobb, og ut igjen innenfor planlagt tid. Det er mye kode, og jeg har ikke tid til Ä lÊre meg alt. I tillegg har kunde hatt hÞye krav til hva som mÄ inn, og begrenset budsjett.

Jeg fÞler pÄ kroppen at jeg ikke er i stand til Ä gjÞre de beste beslutningene om hvordan en ting bÞr lÞses i kodebasen. Jeg har tid til Ä sette meg delvis inn i eksisterende arkitektur og hvordan det har blitt jobbet, men for Ä faktisk komme i mÄl med det jeg skal gjÞre mÄ jeg sette strek. Det er det pragmatiske valget; kunden har et behov, jeg kommer og gjÞr en jobb, og skal gjÞre den jobben til budsjettert tid. Kodeteknisk vet jeg at det er ting jeg bÞr ta tak i som jeg ganske enkelt ikke rekker.

Jeg er overbevist om at kode kan vĂŠre objektivt god.

Denne typen forbedringer fĂ„r jeg sjelden tid hvis jeg er “inn og ut” pĂ„ et prosjekt.

Å bli en god utvikler krever langsiktighet nok til at man rekker Ă„ sette seg inn i ting, bli produktiv til Ă„ jobbe med koden, sĂ„ oppleve effekten av arkitekturen pĂ„ egen effektivitet, sĂ„ oppleve effekten av forbedret arkitektur.

Akkurat sÄnn har jeg lÊrt Ä programmere. Jeg har satt opp et prosjekt. Prosjektet har etter hvert lÞst problemet det skal lÞse. SÄ har jeg merket at enkelte biter av arkitekturen lugger. SÄ har jeg endret arkitekturen, og fikset problemet.

BÞr man lÊre seg Ä jobbe med produkter og lÊre seg Ä jobbe med kode samtidig? Jeg mener nei. Uten god kode er det null sjanse for at vi klarer Ä lage gode produkter. Men med svÊrt solid kompetanse pÄ kode, er det mye lettere Ä lage gode produkter. Kan du gjÞre en solid forbedring pÄ koden pÄ én dag? Bra. Er du ikke der ennÄ? Da kan ting forbedres! Du kan forbedres, koden din kan forbedres.

Og nÄr forbedringer pÄ produktet kan shippes pÄ én dag i stedet for pÄ to uker, kan jeg love deg at jobben med Ä lage et godt produkt blir lettere.

Kjersti skriver om Ă„ avfeie kundens meninger i LUKE-6 - Kunden tar alltid feil!:

Kanskje vi ville bli bedre pÄ Ä ta utgangspunkt i kundens hypoteser dersom vi samlet sett vet at vi ikke blir «tatt» pÄ Ä feile litt lenger ned i lÞypa (ref punkt 1). Her har jeg egentlig et veldig stort spÞrsmÄl: hvordan balanserer vi vÄrt eget behov for Ä forstÄ med kundens forstÄelse av markedet vi skal inn i? Jeg har en fÞlelse av at vi blander kortene her.

Hvis vi ikke tar kundens hypoteser seriĂžst, bĂžr ikke kunden leie oss inn.

Grav i hva hypotesen er. VÊr ekstremt nÞye pÄ de spÞrsmÄlene. Men ikke pÄstÄ at det er feil! Ikke fÞr du har prÞvd.

Tidpunktet Ä diskutere hypotesene er etter en hypotesetest, ikke fÞr. Snakk om hva den fÞrste effekten vil vÊre hvis det vi gjÞr gÄr bra. Det er hva du vil teste. Snakk om hvilken tidshorisont kunden ser for seg Ä fÄ til det pÄ. Flott, da vet du cirka hvor stor denne klumpen med arbeid er.

SÄ kan du se nÞye om det faktisk fungerte ikke nÄr du har prÞvd pÄ ekte.

Er dette mye Ä forvente? Ja! Bli gjerne god pÄ Ä kode fÞrst. Men ikke avfei det kunden sier fÞr dere har prÞvd: fÞlg Principle of charity fÞr du setter deg selv i kritikkmodus. Bonus: nÄr du viser villighet til Ä prÞve, begynner kunden Ä stole pÄ deg. NÄr kunden stoler pÄ deg, er det mer sannsynlig at du blir hÞrt.

—Teodor