Best brains backlog grooming juni2012
-
Upload
bestbrainsdk -
Category
Documents
-
view
943 -
download
2
description
Transcript of Best brains backlog grooming juni2012
Backlog grooming med User Stories
14. juni 2012
Jesper Thaning
BestBrains
Dagsorden
§ Fra ide til færdig feature § User stories § Grooming
§ Estimering § Nedbrydning § Klargøring
3
Hvad er en User Story?
… en måde at skrive krav på … sæ7er brugeren i centrum
User Stories gør det nemmere at: • få fokus på det mest nødvendige • smide det ikke-værdiskabende væk
5
Hvad er en god User Story? En god User Story er: Værdiskabende
6
En god User Story er: Værdiskabende Lille
7
En god User Story er: Værdiskabende Lille Uafhængig
8
En god User Story er: Værdiskabende Lille Uafhængig og kan: Estimeres
9
En god User Story er: Værdiskabende Lille Uafhængig og kan: Estimeres Forhandles
10
En god User Story er: Værdiskabende Lille Uafhængig og kan: Estimeres Forhandles Testes
11
Skabelon for en User Story
Som <BRUGERROLLE>, ønsker jeg at <MÅL> således at <VÆRDI> Som <HVEM>, ønsker jeg at <HVAD> således at <HVORFOR>
Beskrivelse Som en bilist ønsker jeg at vælge en ledig benzinstander således at jeg kan tanke benzin uden at skulle bruge mit kreditkort
Standervalg
13
Hvor kommer User Stories fra?
Hvad er råstofmaterialet for User Stories?
User Story
Ideer
Business Cases
Behov
Mål
14
EsDmering i Story Points
Princip: Man vælger en “baseline”-‐story og giver den f.eks. 2 point. Andre stories esDmeres i forhold Dl baseline, ud fra kompleksitet, omfang, sværhedsgrad. Ikke Dd! Halvt så stor = 1 point Lidt større = 3 point Ca. dobbelt så stor = 5 point Fire gange så stor = 8 point …
EsDmering: Planning poker
Det værdifulde ligger ikke i at fastlægge, hvor store Dng er.
Det værdifulde (og svære) ligger i at adskille Dngene for at kunne Zerne det der ikke skaber værdi.
17
Nedbrydning: Motivation for at nedbryde Hvorfor nedbryde store user stories? • For at kunne prioritere mellem vigtig og mindre vigtig funktionalitet • Mindre user stories er nemmere at kode, teste, acceptere og måle fremdrift på • Afdække og indkapsle afhængigheder • Undgå at teamet finpudser for meget (gold-plating) 9 metoder til at nedbryde User Stories
18
Nedbrydning: Nedbrydningsteknikker
Metode#1: Nedbrydning i handlinger i en arbejdsproces For at kunne implementere en simpel end-to-end og putte komplicerede trin på bagefter
• … ønsker jeg at vælge stander • … ønsker jeg at vælge benzin • … ønsker jeg at tanke benzin • … ønsker jeg at betale for benzin • … ønsker jeg at modtage kvittering for benzin
Som bilist ønsker jeg at købe benzin uden at skulle bruge mit kreditkort
19
Nedbrydning: Nedbrydningsteknikker
Metode#2: Nedbrydning i implementering af hver enkel forretningsregel
• … som almindelig kunde ønsker jeg at købe benzin • … som VIP kunde ønsker jeg at købe benzin • … ny kunde ønsker jeg at købe benzin som
Som kunde ønsker jeg at købe benzin
20
Nedbrydning: Nedbrydningsteknikker
Metode#3 Nedbrydning i stor indsats og efterfølgende Den første User Story bærer den tekniske byrde for de efterfølgende
Som en benzinkunde kan jeg betale for benzin med VISA, MasterCard, Diners Club, eller American Express, for at …
…kan jeg betale med én af kreditkorttyperne (VISA, MC, DC, AMEX). …kan jeg betale med alle fire kreditkorttyper (VISA, MC, DC, AMEX) (givet at en type allerede er implementeret).
21
Metode#4 Nedbrydning i simpel/kompleks Hvad er den simpleste version af denne funktionalitet? De mere komplekse variationer følger efter
• … mulighed for at indtaste kilometertal tilbage i tiden • … mulighed for at indtaste kilometer tal for flere biler
Som en kunde ønsker jeg at indtaste kilometertal
22
Nedbrydning: Nedbrydningsteknikker
Metode#5 Nedbrydning i variationer i data Hvilke typer af data skal systemet kunne håndtere. Hvad er den mest basale type?
Som kunde ønsker jeg at oplysninger om benzinstationen som jeg vil købe benzin på
• … oplysninger om stationens placering • … oplysninger om stationens standere • … oplysninger om stationens andre services • … oplysninger om stationens udstyr
23
Nedbrydning: Nedbrydningsteknikker
Metode#6 Nedbrydning i input metode Hvordan ser den simple brugergrænseflade ud? Den mere brugervenlige og smarte?
• … kan jeg vælge en stander med angivelser af hvilken type benzin man kan tanke • … kan jeg vælge en stander, der passer til min registrerede benzintype
Som kunde kan jeg vælge en benzin stander
24
Nedbrydning: Nedbrydningsteknikker
Metode#7 Nedbrydning i ydeevne Hvordan får vi det til at fungere? Hvordan får vi det til at gå hurtigt?
• … langsom betaling der viser et timeglas • … under 1 sekunder, så kunden ikke behøver at vente på betaling
Som kunde kan jeg betale for benzinen
25
Nedbrydning: Nedbrydningsteknikker
Metode#8 Nedbrydning i operationer Oprettelse, læsning, ændring, nedlæggelse
• … oprette en benzintype • … ændre en benzintype • … slette en benzintype
Som kunde kan jeg registrere min benzintype i programmet
Bemærk at det er forskellige brugsscenarier eller situationer der kræver operationerne
26
Nedbrydning: Nedbrydningsteknikker
Metode#9 Nedbrydning i undersøgelse (spike) og implementation
• … hvordan kan systemet integrere med gængse smartphone navigatorer? • …implementere en løsning med beskeder i navigator
Ved dårlig forståelse af implementationen. Et område som teamet ikke har opereret i før enten teknisk eller forretningsområde.
Som kunde ønsker jeg at min navigator kan komme med forslag om at tanke billig benzin
27
Nedbrydning: Nedbrydningsteknikker
Metode#1 Nedbrydning i handlinger i en arbejdsproces Metode#2 Nedbrydning i implementering af hver enkel forretningsregel Metode#3 Nedbrydning i stor indsats og efterfølgende Metode#4 Nedbrydning i simpel/kompleks Metode#5 Nedbrydning i variationer i data Metode#6 Nedbrydning i inputmetode Metode#7 Nedbrydning i ydeevne Metode#8 Nedbrydning i operationer Metode#9 Nedbrydning i undersøgelse (spike) og implementation
Klargøring: Acceptkriterier
Yderligere detaljering af en User Story • Hvad skal med? • Hvad skal ikke med? • Hvad skal demoes? • Forretningsregler der skal overholdes
HVORFOR? • Undgå tilbageløb og ventetid
Klargøring: Testscenarier
Testeksempler: • Undgå tilbageløb i implementering – fejl • Klar ide om hvornår User Story er færdig
Overskrifter på: • Forventet opførsel (solskinsscenarie) • Eksempler på uønsket opførsel (negativ scenarier)