Plumbo og sånt…

Gode utviklere bruker ikke Plumbo! Det tror nå i hvert fall jeg… Hvorfor ikke? Jo, fordi de liker å finne ut hva som _egentlig_ er feil, og fikse det.

Har du rusk i rørene? Selvfølgelig er jo Plumbo effektivt der og da – hell litt i røret, vent, skyll med masse varmt vann og rørene er så gode som nye! Eller? Nei… Det er en grunn til at det står på Plumbo-flasken at den ikke må brukes på ditt og datt rør. (Ettersom jeg ikke eier Plumbo klarer jeg ikke å sitere flasken heelt riktig). Men, jeg vet at Plumbo er skadelig for rørene dine, særlig når man har en leilighet fra 1936. I tillegg fungerer det jo bare en liten stund. Hvorfor? Fordi du ikke har fikset roten til problemet.

Plumbo gir ingen tilfredsstillende følelse av å ha fikset problemet.  Det er som et lite hack – du vet at det virker, enn så lenge.

Med mindre du ikke vet bedre da. Men, den dagen du finner ut at Plumbo ikke er verdens smarteste ting å bruke i lengden – forhåpentligvis før rørene dine må skiftes – er det på tide å tenke litt lenger. Kanskje du faktisk må løfte på den risten, stikke hånden ned i røret og finne ut hvorfor vannet ikke renner ut som det skal. Det er ikke bare moro å tømme et rør for rusk, men følelsen i etterkant er myyye bedre. Ekstra smart føler du deg den dagen du finner ut at grunnen til at rusket havner i røret og tetter det er fordi risten som ligger over ikke er tett nok.

Brett opp armene og tør å bli skitten!

Og ja, jeg kom til å tenke på dette da jeg plutselig hadde skrudd fra hverandre hele toalettet mitt, fordi det laget lyder. Jammen meg fant jeg ut hvordan mekanismen for å få vann både inn og ut fungerte; hvordan toalettet har en enkel detektor flytende i vannet for å vite når det skal fylles igjen, hva som gjorde at det lakk og dermed laget lyder når det hele tiden måtte fylles igjen. Jeg kunne jo kalt inn en ekspert, men hvorfor det når man ved å plukke ting varsomt fra hverandre finner helt fint ut hvordan patenten fungerer og hvordan det skal settes sammen igjen.

Jeg hører fremdeles min fars stemme i hodet: “Ikke bruk makt” – hver gang jeg ikke helt forstår hvordan noe fungerer og har lyst å rive det fra hverandre. Dette minner meg om at med litt tålmodighet finner jeg alltid ut hvordan ting henger sammen. Hans moral var alltid at det finnes en patent. Finner man og forstår denne er det sjelden bruk for makt. I tillegg slipper man selvfølgelig å ødelegge ting, noe som er fornuftig når man har en innebygget nysgjerrighet som gjør at man bare _må_ sjekke inni alt som er av fjernkontroller og duppeditter for å se hvordan det fungerer. Det kan nå kanskje også nevnes at jeg ikke noengang, så godt jeg kan huske, har skrudd fra hverandre noe som jeg ikke har klart å sette sammen igjen.

Tar du deg tid til å finne patenten? Tør du å bli skitten til albuene? Kjøper du Plumbo eller ny rist til dusjen?

  • http://tfnico.blogspot.com Thomas Ferris Nicolaisen

    Wow, kudos til å ha fiksa eget toalett! Tror ikke jeg hadde turt det. Jeg var faktisk ivrig plumbo-bruker (dog jeg erke redd for å stikke hånda ned i sluken), men skal tenke meg litt om neste gang. Kanskje bedre med ny rist i stedet :)

    Også fin analogi for systemutvikling!

  • Kristoffer Moum

    Ikke bare er du bilmekaniker på kalde Hemsedaldager, men du er rørlegger også – imponerende! Hvordan får du tid til å programmere?

  • Janniche Haugen

    Takk Thomas! Jeg trodde ikke heller at jeg skulle klare å fikse det, men nysgjerrigheten gjorde at jeg bare måtte se inni for å finne ut om jeg klarte å finne ut hva som gjorde at det laget lyder. Underveis ble det til at jeg plukket fra hverandre mer og mer og til slutt hadde jeg funnet feilen og fikset den:) Analogien kom jeg på da jeg plutselig så at det hadde gått to timer. I de timene hadde jeg ikke tenkt på hva klokka var, hadde glemt det jeg egentlig skulle gjøre og faktisk ikke skrudd på radioen en gang. Nesten samme følelsen som når man er i “flyt” sonen og programmerer :)

  • Janniche Haugen

    Ikke enkelt med den tidsklemma, Kristoffer, men når man er så heldig at man får leve av å programmere blir det plutselig tid til andre ting på fritiden. Det interessante er jo at prinsipper fra arbeidshverdagen også funker på andre ting. Er man nysgjerrig og har behov for å forstå så gjelder det ikke bare teknologi :)

  • Øyvind Kvangardsnes

    Hei Janniche, jeg må si at jeg får mer og mer sansen for plumbo-analogien :)

    Har du noen konkrete eksempler på plumbo?

    F.eks:
    Man har en prodserver som ofte går ned. En restart får den opp igjen levelig kjapt.
    Her tenker jeg at å alltid restarte er å bruke plumbo, fordi man sannsansynligvis har en eller annen bug i koden eller oppsettet som _egentlig_ burde fikses.

  • Janniche Haugen

    Nettopp, Øyvind, en restart i det tilfellet vil jeg si at er Plumbo.
    Andre ting jeg kommer på:

    * ignorere feil i loggene – sende feilene til en dump fil et sted man aldri ser på i steden for å finne ut hvorfor de oppstår
    * øke minnet ved out of memory uten å forstå hvorfor man bruker så mye minne
    * core by accident – man “finner” en kodesnutt som funker men som man egentlig ikke forstår effekt eller bieffekter av
    * skrive store integrasjonstester for å teste domenelogikk, fordi man ved første øyekast ikke ser hvordan man kan dele opp koden til å bli mer testbar – kan kanskje strekke det så langt å si at testing av domenelogikk gjennom nettleser kan være plumbo i enkelte tilfeller…
    * å ignorere tester man har brutt i steden for å refaktorere dem sammen med koden og forstå hvorfor de ble laget

    Jeg tror listen kan bli lang, og som du sikkert ser så går det mye på craftmanship-egenskaper som du kjenner godt til.