Harald spurte i sitt blogginnlegg «Hvorfor er brukskvalitet i scrum så vanskelig?» Her ønsker jeg å komme med et svar på at det slett ikke trenger å være så vanskelig.
- Forfatter
- Tagger
- Kommentarer

Inkrementelt eller iterativt?
Harald påpeker helt korrekt at user storyene som står skrevet i produkt backloggen blir utviklet inkrementelt. Fordi man misoppfatter scrum sitt uttrykk med å levere ferdige deler eller user stories for hver sprint fordi det står at i sprint reviewen skal produkteieren få: “Potentially shippable product increment”. Men hvis du har tenkt å kjøre et iterativt utviklingsløp så kan det ikke være ferdig pakket og klart etter en sprint, eller hva?
Scrum deler inn scope i et x antall user stories. Deretter bestemmes det at x antall user stories skal være ferdig i en sprint. Det er her vi trår feil, etter min mening. En user story må brytes opp og utvikles bit for bit, hvor bitene er det som leveres “ferdig” i en sprint. En user story vil dermed leve over flere sprinter inntil kunden er fornøyd nok med resultatet.
Eksempel: Nytt intranet. En user story i løsningen er: Jeg skal kunne skrive forskjellige typer saker og publisere dette på vårt intranett. Når er denne user storyen ferdig? Er det en user story eller kan denne brytes ned til to, tre, mer?
La oss si at det er en user story. Hva er da biten som skal ferdigstilles i sprint 1? Første bit er at det faktisk er mulig for kunden å opprette en side, skrive tekst, legge til et bilde og sende den ut på det fortsatt ikke-eksisterende intranettet. Er ikke dette også å forvente som out-of-the-box? De resterende bitene før denne user storyen er ferdig vil være å legge på grafisk design, designe sidemalen med nødvendige metadata, definere content typen og etterhvert lage en struktur for hvor denne typen artikler skal “bo”. Muligheten for å publisere på flere språk og til målrette informasjon til brukergrupper kan være ekstra features som kan legges til senere i sprintløpene. I mellomtiden får kunden mulighet til å teste ut hvordan dette fungerer og gi tilbakemelding på hva han savner i den påbegynte user storyen.
Brukersentrert design handler om å ha rom til å forbedre brukergrensesnittet i takt med brukers tilbakemeldinger.
Scrum ivaretar ikke helheten
“Vi må ha tid til å tenke på helheten! Få se hele bildet for å kunne lage et godt grafisk design og en god innholdsstruktur”, ropes det fra kanter som jeg kommer fra. “Dette går ikke på et sprintløp”, “Vi får aldri tid til å gå tilbake!” Det er ikke bare vi designere som roper her. Løsningsarkitektene er også en gruppe som roper. Men den som bør rope høyest er kunden. Hvorfor skal kunden sette i gang et sprintløp hvis han ikke vet hvor han skal løpe, eller hvorfor han skal løpe? Det er så typisk. Kunden er livredd for å kaste bort tid og penger og tenker at jo fortere jeg kommer i gang med løpingen, jo fortere blir jeg ferdig. Men ferdig med hva da? spør jeg da.
Det er ikke en regel eller et mantra i scrum som sier at kunden ikke skal ta seg tid til å få en oversikt over hva som skal lages og hvorfor det skal lages. Et hvert prosjekt er et tiltak som settes i gang for å støtte opp under forretningsvirksomheten. Derfor må det et forporsjekt til eller en sprint 0, for å kartlegge og analysere forretningsbehov (dersom det ennå ikke er utført før vi kommer inn), brukerbehov, lage ny designprofil, designe arkitekturen, lage et konsept. Vi må skaffe oss en oversikt over hvilken retning vi bør begynne å løpe før vi setter i gang.
Gode user stories er alfa omega
Definisjonen av “ferdig” like så. Alle er enige om det, men hvordan få det til? Her er tre strategier:
- John Sjef har fokus på hva som gir forretningsverdi. Definer forretningsmål. Han sier “Følg pengene!” Færre mål mindre utvikling.
- Paul Sjef ønsker ikke å velge løsning for fort. Han ønsker å ha fokus på brukerne, og hva de ønsker å oppnå. “Følg brukerne. Ikke velg løsning for tidlig! ”Paul prioriterer etter hva som er viktigst for brukerne.
- Roger Sjef har et problem. Det han trenger koster mer enn hva han har. Kan jeg ikke få alt på en gang får jeg starte på minste multiplum. Han trenger alle featurene på en gang, men er det nødvendig at alle har den kvaliteten han ønsker med en gang. “Iterativ utvikling gir meg råd til å bygge kvalitet over tid.” Roger prioriterer på følgende måte:
- Hva er en nødvendighet?
- Kan featuren være nyttig i flere situasjoner (fleksibilitet)?
- Hva vil gjøre denne featuren sikrere i sin bruk (sikkerhet)?
- Hva vil gjøre denne featuren mer foretrukket å bruke (komfort, luksus og ytelse)?
Rigide strukturer og stand-up meetings
Jeg har fått prøve ut scrum i flere år nå og gjort en del erfaringer. Første gangen kjørte vi scrum etter boka med de teknikkene som scrum tilbyr, utviklingsløpet var som før, et prosjekt som var ment å være iterativt men som egentlig var tilnærmet fossefall. Det var en vond opplevelse. Spesielt fordi det var så vanskelig å forstå hvordan disse teknikkene skulle få oss raskere til målet og jobbe bedre sammen. De føltes mer som hindere, og skapte bekymringer. Vi hadde blant annet stand-up hver morgen med opptil 20 mennesker. Når dialogen var ferdig hadde vi brukt 45 min og hadde egentlig ikke fått kommunisert sammen. Vi hadde bare fått fram hvor gode vi var på å gjøre oppgavene våre, eller hvor tregt det gikk, og hvor vanskelig det var å si hvor mange timer som faktisk gjenstod.
Første gang jeg var med på en stand-up hadde jeg aldri hørt om scrum, og det er nok mange med meg som har gjort dette før scrum-tiden. Jeg jobbet i et lite selskap, som hadde få ansatte, men med mange forskjellige prosjekter. Vi hadde stand-up for å koordinere ressursinnsats og gi mulighet til å hjelpe hverandre. Hvem trengte bistand til hva og når, eller problemstillinger som hadde dukket opp og som det var ønskelig å drøfte med en eller flere for å finne en løsning. Vi hadde ingen oppgavelapper som ble flyttet på. Men vi skrev opp på en tavle når vi hadde nådd et mål for å synliggjøre for hverandre hvor flinke vi hadde vært. Og det er bra.
Scrum i utviklingsprosjekter vil føre til et resultat som vil matche kundens forretningsmål bedre enn ved en annen metode
Jeg kan ikke være den eneste som mener dette i dag. Scrum er blitt kjempepopulært, og har kastet tradisjonell iterativ utvikling på båten. Hvorfor? Fordi det er åpenbart en gevinst. Alle som har vært på scrum master- eller produkteierkurs har lært at man kommer raskere til målet ved hjelp av scrum.
En av grunnene til det er det tette samarbeidet teamet har underveis med å løse en oppgave i en begrenset periode. Kundens forpliktelser i å være tilstede i sprinten, være tydelig på hva han ønsker seg og gjøre prioritereringer. Løsningens kravspesifikasjon er også ny. Istedetfor detaljerte krav er det nå behov som er beskrevet.
Alle teamdeltagere jobber på de samme user storiene samtidig
En user story skal leve over flere sprinter og bygges sammen lag på lag til kunden er fornøyd med resultatet. Det er derfor man velger iterativ utvikling og ikke inkrementelt fordi man vet hvor man skal gå men ikke helt nøyaktig hvilken løsning som vil være den beste når man starter.
I inkrementel utvikling bygger vi en og en bit ferdig av gangen. Kilde: Jeff Patton.
I iterativ utvikling lager vi først rammeverket, eller en førsteutgave, validerer den og utvikler og legger til flere og flere features eller krav lag på lag. For hvert lag gjøres det en ny validering. Kilde: Jeff Patton.
Tilbake til eksempelet om intranettet. Når noen teammedlemmer setter opp og utvikler minimum av standardoppsettet for å kunne publisere en side, kan andre teammedlemmer begynne å detaljere design. I sprint reviewen er første lag av user storyen ferdig slik at kunden kan teste ut standardutgaven. I tillegg vil han ha skisser på ideer som han kan presentere og korrigere for teamet etter sine ønsker. Neste sprint vil da være å utvikle dette laget. “Men da jobber man jo et hestehode foran?” Ja, men fokuset må være på den samme user storyen. Jeg brukte også begrepet teammedlemmer bevisst fordi utviklere som venter på at noe skal skje skal inkluderes i workshopene hvor skissene blir tegnet. Om utvikleren er med vil det holde om skissene er på papir, utvikleren trenger ikke vente på (elektronisk) dokumentasjonen av detaljert design. Det kan være nødvendig for å kjøre brukertest på papir og avstemme med kundens behov. Man utvikler ikke mer enn det som er bestemt og akkurat nødvendig.
En sprint kan variere i tid fra 2, 3 eller 4 uker. Teamet vil rekke å begynne på flere user stories når sprinten varer i 4 uker fremfor 2. Men et viktig poeng her er at ved 4 uker må man ikke la seg forlede til å tro at da rekker vi å levere et tjukkere lag av user storyen, ja rett og slett bli fullstendig ferdig. Hvor blir det av den iterative utviklingen da?
Er brukskvalitet i scrum vanskelig? Nei, det er ikke det . Det er ikke brukskvalitets sine oppgaver som forsinker prosessen, det er å gjennomføre utviklingen iterativt som er vanskelig, fordi kunden er forledet til å tro at han får løsningen fullstendig ferdig bit for bit, og ikke en løsning som starter på minste nødvendighet og utvikles lag på lag til han mener det nå er så godt som nødvendig til det han trenger.
Kilder: Jeff Patton, http://www.agileproductdesign.com/presentations/user_story_mapping/index.html


Dette var en utrolig god artikkel som poengterer akkurat det jeg også mener er viktige momenter i saken.
Jeg er så skjønt enig med deg i at problemene gjerne ligger i userstoriene mer enn i Scrum. Bruker man en inkrementell tilnærming til scopet i en iterativ prosess (Scrum) gir det vanskeligheter på mange flere områder enn brukskvaliteten.
Takk skal du ha Anita!
Det var en hyggelig tilbakemelding, Sten. Glad du likte den
Denne artikkelen ga meg noen tankevekkere på hvordan vi alle tenker. Med en iterativ prosess kom jeg umiddelbart til å tenke på teknisk gjeld. Sannsynligvis er det slik at også andre fagpersoner får samme tanken, at det man ikke får med i denne sprinten får man ikke med, enten det gjelder teknisk- eller bruks-kvalitet. Utfordringen for oss i en slik prosess blir da å synliggjøre verdien av slike kvaliteter som kan være vanskelig for kunden å kjenne på, men som til syvende og sist blir tatt for gitt, f.eks.sikkerhet, bruks-kvalitet, stabilitet, skalering, fleksibilitet i uventede situasjoner, vedlikeholdbarhet, osv.