onsdag 15. juli 2009

Bedre nå slår best senere

En veldig sann blogpost, som samtidig kanskje får ting til å høres enklere ut enn de er: Bedre nå slår best senere.

Jeg har vel knapt vært på ett prosjekt hvor vi ikke har utsatt å gjøre en liten forbedring vi kunne gjort i dag, fordi vi ser at vi kan gjøre en større forbdedring i morgen som inkluderer eller overflødiggjør den lille forbedringen vi kunne gjort i dag. Og da er det jo bortkastet tid å gjøre dagens forbedring. Eller?

Eksempel:

- Ja, variabelnavnene i denne klassen er helt på bærtur, men vi må gjøre en opprydning i flere variabelnavn og bør se alt under ett.

- Ja, dette brukergrensesnittet er helt ubrukelig, men vi skal gjøre en større endring i funksjonaliteten uansett, så da vil vi lage et nytt grensesnitt.

- Ja, denne koden er helt spaghetti, men i stedet for å forsøke å forbedre den litt nå, bør vi kaste den og skrive den på nytt.

- Ja, vi kan løse problemet for kundene nå med denne lille justeringen, men skal vi først implementere noe slikt må vi gjøre det 100% og da må vi også ta med ... (fyll inn det som passer)

Et viktig kontrollspørsmål når slike innvendinger kommer og vil stoppe en forbedring, er: Når er det planlagt å gjøre denne store forbedringen? Hvis det ikke finnes et konkret svar på dette spørsmålet, bør man virkelig vurdere å gjøre forbedringen nå, og så heller leve med at Den Store Forbedringen en gang i framtiden kanskje overflødiggjør jobben.

Veldig ofte er det ikke snakk om mange timene uansett. I hvert fall ikke for å få til en viss forbedring. Og hvor mye taper vi på å ikke gjøre forbedringen her og nå? Altså bør vi gjøre en kost/nytte-analyse som delvis ser bort i fra at Den Store Forbedringen kommer, og ser på nytten ved å løse problemet med én gang uavhengig av hva vi tror vil skje om noen uker eller måneder.

I realiteten er det selvfølgelig ikke så enkelt. Man vil jo gjerne ofte tro på at den store forbedringen er rett rundt hjørnet og snart, snart vil bli inkludert i en iterasjonsplan. Og dessuten har man kanskje så mange forbedringer man ønsker å gjøre at man uansett må prioritere - og da virker det selvfølgelig fornuftig å nedprioritere de tingene som uansett vil bli håndtert på et senere tidspunkt.

Som en tommelfingerregel tror jeg likevel at bedre nå må slå best senere mye oftere enn det som skjer i praksis.

4 kommentarer:

Halstein Tonheim sa...

Desverre er dei få timane det tar å gjere den lille forbetringa i dag mykje meir målbar enn dei teoretiske månedane med opprydding som kan oppstå dersom ein ikkje held eit ryddig hus. Forbetrar ein litt i dag er det 5 "tapte" timar, medan den såkalla konsekvensen av å ikkje gjere det kan ikkje talfestast nøyaktig og sikkert nok. Og det som ikkje kan talfestast passar ikkje modellen økonomane lærte på skulen; kan ikkje rekne utan tal.

Logikken er altså som følger: Sidan ein ikkje kan måle og kalkulere nøyaktig kor lang tid det vil ta å slanke seg etter å ha vorte feit kan ein ikkje godkjenne å bruke 4 timar i veka på å halde seg i god form for å unngå det.

Anne Marie sa...

Nettopp derfor er det så viktig at beslutningsmyndigheten blir gitt til det tekniske teamet, som tross alt er de som også føler problemene rett på kroppen.

Det kan i hvert fall fungere bra dersom man klarer å gjennomføre det i forhold til den tekniske kvaliteten (indre kvalitet). Men når det gjelder ytre kvalitet (features) er det viktig med en produkteier og/eller prosjektleder som også er bevisst på dette.

Bugs ligger i et mellomsjikt mellom indre og ytre kvalitet, og også her er min påstand at man jevnt over vil tjene på å holde antall bugs på et minimum ved at man retter dem så fort man finner dem.

Til slutt må det også bemerkes at man slett ikke trenger å være økonom for å ofre bedre nå for best senere. Jeg tror det ligger som en tendens dypt i oss alle, og tanken bak er egentlig rasjonell nok. Det er bare at i praksis fungerer ikke logikken, og derfor tror jeg at de fleste kan trenge en bevisstgjøring rundt dette - ikke bare økonomene :-)

nch sa...

Et argument for å gjøre den lille forbedringen nå, kontra å vente på de fem sammenhengende regnværsdagene hvor vi skal gjøre ting ordentlig, er at vi ofte ikke vet hva den ordentlige måten å løse problemet på er. Ved å gjøre den lille forbedringen nå oppnår vi ikke bare den lille forbedringen nå, men vi får også muligheten til å lære om dette er en bra måte å løse problemet på.

Så hvis arbeidet med den lille forbedringen fører oss nærmere en forståelse av hva den ordentlige løsningen er, så vil ikke arbeidet være bortkastet selv om de fem sammenhengende regnværsdagene engang skulle komme.

Anne Marie sa...

Et veldig godt argument som jeg skal huske å bruke neste gang situasjonen oppstår!