Denne uken havnet jeg i en diskusjon med kode24-redaktøren, Ole Petter, etter at jeg skrev om David Heinemeier Hansson (DHH) i 37Signals som mener det er umulig å estimere hvor lang tid det tar å utvikle programvare.
Ole Petter argumenterte for at det må være mulig å gi noenlunde realistiske tidsestimater også for kodeprosjekter – i likhet med det meste annet her i verden.
En journalist kan jo ikke si til redaktøren at "jeg aaaaaner ikke når artikkelen kan være ferdig". Man har deadlines å forholde seg til, og har man sagt at artikkelen kommer til lunsj i morgen, så bør den også være ferdig til da.
Likevel mener jeg det er en stor forskjell: Programvareutvikling er faktisk litt vanskeligere enn å skrive en artikkel, i hvert fall for en erfaren journalist. Her er jeg altså mer enig med DHH enn med Ole Petter.
«Jeg mener bransjen må slutte å estimere i hytt og pine.»
Og så mener jeg bransjen må slutte å estimere i hytt og pine. Det å bomme grovt på estimatene kan få store konsekvenser. I sommer skrev for eksempel E24 om fagbevegelsens studieforbund AOF Norge, som gikk konkurs da det viste seg at det nye IT-systemet de hadde kjøpt kostet 50 millioner, i stedet for under 10 millioner som de hadde blitt forespeilet.
Et konsulentselskap eller programvareselskap kan selvfølgelig velge å gi kunden en fastpris, men når vi vet at det å utvikle kompleks programvare ofte kan ta mye lenger tid enn det selv de som er flinkest til å "guesstimere" tror, så vil risikoen antagelig være for stor (bortsett fra for kunden, selvfølgelig).
I en tidligere jobb i et kommunikasjonsbyrå hadde vi en liten utviklingsavdeling som lagde nettsider for kunder. Selgerne ville ha et estimat på forventet tidsbruk, og jeg prøvde sammen med utviklerne å komme opp med estimater slik at selgeren kunne gi kunden riktig pris. Det var nesten umulig – og mest gjetting, for å være ærlig.
Det er selvfølgelig mye lettere å estimere tidsbruk når man har gjort den samme jobben mange ganger – men som DHH skrev, det meste av programvareutvikling handler om nyskapende arbeid. Bygge ting som ikke har vært laget før.
Mener det er umulig å estimere tidsbruk: «Vi har prøvd i flere tiår!»
Ved siden av kode24-jobben driver jeg litt med web- og applikasjonsutvikling. Ofte er det snakk om å lage en nettside som i bunn og grunn er den samme som jeg har laget før, bare med annen design. Da kan jeg med temmelig god treffsikkerhet si at "jeg kan ha nettsiden klar om maks x dager". Jeg har gjort det mange ganger før, kan gjenbruke mye, og jeg trenger ikke å gjette.
Nå i sommer var jeg imidlertid i møte med noen som trengte noe de – kanskje litt naivt – trodde ikke var mer komplisert enn en firmanettside. Jeg forsto raskt at dette var noe helt annet enn en nettside, men en ganske avansert applikasjon som skulle integreres med flere tredjepartsløsninger.
Jeg prøvde så godt jeg kunne å estimere tidsbruken ved å anslå timer for alle de ulike deloppgavene som måtte gjøres og plusse på en del for sikkerhets skyld.
Problemet er at jeg aldri noensinne har vært så usikker på et estimat før, siden prosjektet involverte en masse ukjente faktorer. Jeg vet jeg får det til – men ikke hvor lang tid jeg trenger på å få det til.
Jeg skal jo bygge noe nytt som ikke har vært laget før!
Ukas beste saker:
🥔 AI-oppstart vil ikke ut med modellene de bruker: – Det er vår secret sauce
De ble nettopp ferdig på studiet, men allerede møter du Altek AIs chatbotter på både Øyafestivalen og The Thief.
👖 Utviklere raser etter at ny Rust-versjon skaper store problemer
Endringer i Rust 1.80.0 har skapt problemer for flere Rust-prosjekter. Noen utviklere krever at endringene rulles tilbake.
👶 Mener det er umulig å estimere tidsbruk: «Vi har prøvd i flere tiår!»
– Å droppe estimater kan hjelpe deg med å levere bedre og raskere, mener Ruby on Rails-skaper David Heinemeier Hansson.
📘 AWS-sjefen i lekka opptak: Snart trenger ikke utviklere programmere mer
AWS-direktør Matt Garman mener du snart kan konsentrere deg om å bygge ting, ikke språket du gjør det med.
🍍 Procreate-sjef lover å aldri bruke AI: – Jeg virkelig fucking hater generativ AI
– Bygd på et fundament av tyveri, mener den populære tegneappen, som lover å aldri implementere AI-funksjoner.
🧒 Nye GitHub Autofix skal bøte på mangelen på sikkerhetseksperter
Hevder Copilot Autofix reduserer tiden det tar å fikse sårbarheter fra 90 til 28 minutter.
🦍 Eiril jobba med AI hele sommeren: «Blir ofte skuffa over hvor dum den kan være»
– Av og til blir jeg imponert, men ofte blir jeg skuffa, forteller NTNU-student Eiril Solveig Ugulen, etter en sommer med AI-utvikling hos TV 2.
AI-oppstart vil ikke ut med modellene de bruker: «Det er vår secret sauce»
God helg
En siste ting:
Det hjelper ikke at du selv har god kontroll på det du selv skal kode, når du skal integrere mot noe som andre har laget. Plutselig oppstår det ett eller annet problem du ikke hadde tenkt på, fordi API-et til en tredjepartstjeneste ikke kan levere det du trodde det kunne. Eller har en sær bug som du må vente på at noen andre fikser før du kommer deg videre.
Noen av leserne våre skriver i kommentarfeltet til DHH-artikkelen at det likevel kan være nyttig med estimater for å få igang tankeprosesser. Det er jeg helt enig i. Det er sunt å tenke grundig gjennom på forhånd hvordan man har tenkt å løse en oppgave, hvilke teknologier som (kanskje) er best å bruke til formålet, og så videre.
Men å levere en løsning som koster kunden 50 millioner i stedet for 10, det tenker jeg vi som bransje må slutte med.
Har du forslag til hva vi må gjøre for å få slutt på det – og gjøre programvareutviklingsprosjekter litt mer forutsigbare for kundene? Syng ut i kommentarfeltet – eller send oss et leserinnlegg!
God helg!
– Kurt 🤓