Fremtidens IT-prosjekter
Recap: Vi nærmer oss slutten av vår uke sammen med Kent Beck. Så langt har Code Camp 09 vært lærerikt, utmattende og svært inspirerende. Vi dro hit for å lære å bli gode seniorutviklere. Programmering, kundedialog, planlegging, ledelse, teamarbeid. You name it. Vi har vært gjennom alt fra øvelser knyttet til kundeforståelse, produktutvikling og innovasjon til gårsdagens høydepunkt: Timer med intens parprogrammering i krevende programkode, for anledningen fra et at våre prosjekter innen regnskap og booking-løsninger hjemme i Norge.
Nå gjenstår én dag og vi merker hvordan vi begynner å komme under huden på ekstremprogrammering. Noe av det som fascinerer oss er hvor forskjellig vi opplever vår egen forståelse av denne tankegangen nå, sammenliknet med da vi hadde lest bøkene. Mange lærebøker er dogmatiske og ensidige. Kurs er ofte på samme måten. Drar man på Scrum Master-kurs med Ken Schwaber så er det ikke mye “på den ene siden” og “på den andre siden”. Riktignok er Kent sine bøker verken dikterende eller dogmatiske, men vi ser allikvel det han skriver med helt nye øyne nå: Det er måten å resonnere på og måten å angripe problemer på som er kruttet. Som Kent sier selv så er det første svaret på ethvert ikke-trivielt spørsmål: “Det kommer an på”.
På slutten av gårsdagen tok opplegget en ny vending: Kent holder på å forberede et nytt foredrag og ville ha våre innspill. Han forklarte at temaet er trendene vi ser med måten IT-prosjekter gjennomføres på. Hvilke utviklingsorganisasjoner er konkurransedyktige om 5 og 10 år, og hvem faller fra? Hva gjør de organisasjonene som har suksess om 5 år idag?

Kent tegner først en graf som tar utgangspunkt i leveransesykler: Fra årlig til kvartalsvis, månedlig, ukentlig, daglig og til slutt på timebasis. Annual, Quarterly, Monthly, Weekly, Daily og Hourly, som indikert med forbokstav i bildet over. Den horisontale aksen viser bruksprosent. De tre grafene viser hvordan vi holdt på med systemutvikling tidligere, hva som skjer mange steder idag og hva vi tror kommer til å skje i fremtiden. Synsingen om fremtidsgrafen tar inn over seg hvilke krav kunder og markedet generelt stiller til tilpasningsdyktighet. For Kent er det liten tvil om at vi beveger oss mot stadig kortere leveransesykler. Det er naturlig å spørre seg selv hvor dette skal ende.
“Det er fascinerende hvor vanskelig det er for folk som jobber i tradisjonelle vannfallsprosjekter med årlige leveransesykler å prate med noen i den andre enden av skalaen – de som leverer programvare daglig eller flere ganger om dagen”. Kent blar til en blank side i sin enorme A2-tegneblokk. “I Tyskland er de forøvrig veldig glad i noe som heter V-modell. Har dere hørt om det?”. Vi skal til å bekrefte at også noen i landet vårt holder på med dette, men blir raskt avfeid. “La oss snakke om noe mer interessant” .
Han lager en ny graf, denne gangen med leveransesyklene vertikalt. Horisontalt legger han ut forskjellige teknikker, verktøy, prosesser og andre elementer av det å utvikle programvare. Test-drevet utvikling, automatiserte byggesystemer, dokumentasjon, QA-avdeling, endringshåndtering, og masse mer. Så begynte å han å plotte: Trenger vi en QA-avdeling når vi leverer programvare én gang i året? Ja, uten tvil. Her vil det samle seg opp masse programvare som inneholder feil fordi utviklerne får et annet syn på det å levere. Ugjennomtestet halvfabrikata er gjennomgående og man trenger egne ressurser dedikert til å teste og melde tilbake feil.
Hva med de som leverer programvare daglig? Eller enda mer ekstremt: De veldig få bedriftene som er i stand til å levere ny funksjonalitet på timesbasis? Trenger de en QA-avdeling? Neppe. Her må man jobbe på en måte der feil fanges opp kontinuerlig. En mekanisme kan være å monitorere feilmeldinger som oppstår når de ruller ut ny programvare. Dersom feilmeldingsraten går opp med en ny versjon, vil systemet automatisk rulle tilbake. Dette stiller på sin side store krav til migreringer av data, og dermed blir “Migreringer” en ny kategori på Kent sin plansje. “Trenger et selskap som leverer programvare årlig migreringer?” Antageligvis ikke. Her blir det heller store konverteringsprosjekter som først og fremst er smertefult for kunden. Kent smiler lurt. “Hva hadde skjedd om de hadde brukt XP?”
Slik satt vi med Kent i over en time. Alskens idéer ble kastet frem. Hva med daglige statusmøter? Scrum? Trenger man Scrum når man leverer ny funksjonalitet på timesbasis? Spørsmålene svirrer fortsatt i hodene våre. Vi har begynt å få perspektiv.
Imorgen er siste dag. Diskusjonene har begynt om hva vi skal gjøre. Få mest mulig ut av siste dagen – det blir lenge til neste gang vi har mulighet! Det er tilfredsstillende å merke hvordan vi begynner å forstå Kent Beck. Fra tid til annen klarer vi å forutse hva han svarer på vanskelige spørsmål. Ikke fordi han gir oss detaljerte sjekklister, oppsummeringer, og fasitsvar. Tvertimot fordi han lærer oss å resonnere, se sammenhenger og veie for og imot. Her ligger løsningen til ethvert komplekst problem.
Imorgen planlegger vi å be han presentere kodebasen i JUnit, Java-rammeverket han har skapt for testdrevet utvikling. Oppdatering kommer

Vi kunne forenkle uten å miste detaljene og vi kunne mye enklere se for oss de tekniske aspektene: Vi holdt mulighetsrommet åpent og verdsatte den tvetydigheten som ligger rundt ethvert sammensatt problem.
