splittingstories alndc jan2012 - agile alliance...1/11/12 1 spling(user(stories(workshop! @arinsime!...

12
1/11/12 1 Spli%ng User Stories Workshop @ArinSime 434.996.5226 [email protected] Our plan User story primer Why is small so important? Common ways to split stories Hands on pracEce! RetrospecEve

Upload: others

Post on 12-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

1

Spli%ng  User  Stories  Workshop  

@ArinSime  

434.996.5226  [email protected]  

Our  plan  

•  User  story  primer  •  Why  is  small  so  important?  

•  Common  ways  to  split  stories  

•  Hands  on  pracEce!  •  RetrospecEve  

Page 2: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

2

Agile  process  flow  

Build/revise  Backlog  

Plan  an  IteraEon  

Test,  Develop,  Integrate,  Commit  

Daily  Standups  Review/Demo  

Retro-­‐specEve  

User  stories  

Acceptance  Requirements    Priority    EsEmates  

Page 3: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

3

What  is  the  right  story  size?  

Weeks?  

Days?  

Hours?  

How  does  size  affect  prioriEzaEon?  

Highest Priority

Lowest Priority

Page 4: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

4

How  does  size  affect  esEmaEon?  

Highest Priority

Lowest Priority

3 13 8 5 5

Smaller  size  allows  for  error  

Page 5: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

5

How  does  size  affect  the  customer?  

This?   Or  This?  

Summary  of  why  smaller  is  beYer  

•  Smaller  is  easier  to  prioriEze  •  Smaller  is  easier  to  esEmate  

•  Smaller  is  easier  to  change  on  the  fly  

•  Smaller  is  easier  to  course-­‐correct  

•  Finishing  lots  of  small  things  just  feels  good!  

Page 6: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

6

Exercise  #1  

•  Break  into  groups  and  write  some  intenEonally  large  user  stories  

•  Your  project:    Home  kitchen  remodeling  

Exercise  #2  

•  Nominate  a  Product  Owner  in  your  group  •  They  now  take  your  big  stories,  and  bring  them  over  to  another  group  

•  Each  new  group  should  break  down  the  big  stories  into  smaller  ones  

•  Use  one  of  the  anE-­‐paYerns  I  give  you  

Common anti-patterns: http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features

Page 7: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

7

Exercise  #2  Results  

•  Product  Owners  –  what  did  you  observe?  •  Teams  –  what  did  you  observe?  

Split  by  verEcal  slices  of  value  

What  happens  if  you  fire  this  guy?  

Page 8: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

8

AddiEonal  techniques  

•  CRUD  –  Create,  Read,  Update,  Delete  •  External  dependencies  •  Different  paths  through  the  system  

   PracEce  makes  be#er  …  there  is  no  perfect  …  

INVEST  

Independent  

NegoEable  

Valuable  EsEmable  

Small  Testable  

Page 9: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

9

Exercise  #3  

•  Keep  the  same  product  owners/groups  •  Discard  the  “anE-­‐paYern”  cards  you  just  used  to  break  down  the  big  stories  

•  Now  try  to  break  down  the  stories  “the  right  way”  

Exercise  #3  Results  

•  Product  Owners  –  what  did  you  observe?  •  Teams  –  what  did  you  observe?  

Page 10: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

10

Exercise  #4  /  Case  Study  

How  could  we  split  this  story  further?  

As  a  builder,  I  want  to  record  daily  events  so  that  I  have  a  record  for  my  clients  and  myself.  

Case  Study  Mockup  

Page 11: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

11

Case  Study  Acceptance  Criteria  

Scenario  1:  Log  Display  Op9ons  

Given  builder  has  selected  a  date  

When  builder  clicks  "add"  for  a  given  area  Enters  a  note  

And  picks  a  visibility  

Then  the  note  is  displayed  in  the  Job  Notes  under  the  right  heading  area.  

Scenario  2:  Job  Notes  Categories  

Given  a  builder  is  entering  a  note  

When  they  choose  an  area  Then  there  should  be  the  following  

opEons:  

•  Trade  Work  Performed  

•  …  

Scenario  3:  Record  of  User,  Date,  Time  

Given  a  builder  has  entered  a  note  

When  it  displays  Then  the  builder  name,  date  and  Eme  of  

the  note  are  displayed  next  to  the  note.  

Scenario  4:  Loca9on  of  New  Notes  

Given  a  builder  is  adding  a  note  

When  they  click  the  plus  sign  to  add  a  note  

Then  current  notes  in  that  area  are  "pushed  down"  

And  the  Post  Note  box  appears  above  exisEng  notes.  

Case  Study  Acceptance  Criteria  

Scenario  5:  Ordering  of  Notes  

Given  there  are  exisEng  notes  for  an  area  

When  they  are  displayed  under  the  area  heading  

Then  they  should  be  sorted  with  the  most  recent  on  top.  

Scenario  6:  Note  Box  Size  and  Expansion  

Given  that  a  builder  is  entering  a  new  note  

When  he  starts  typing  

Then  the  text  area  box  will  be  2  lines  tall  

And  will  expand  verEcally  as  the  builder  enters  more  lines.  

Scenario  7:  Visibility  Default  

Given  that  a  builder  is  entering  a  new  note  

When  he  starts  typing  Then  the  "Do  not  show  this  item  to  client"  

box  will  default  to  being  unchecked.  

Scenario  8:  Security  

Given  that  a  user  is  not  a  builder  or  is  a  builder  who  does  not  belong  to  the  contractor  account  to  which  the  project  he  is  trying  to  view  belongs  

When  he  tries  to  view  the  job  log  Then  he  receives  an  error  message  

Page 12: SplittingStories ALNDC Jan2012 - Agile Alliance...1/11/12 1 Spling(User(Stories(Workshop! @ArinSime! 434.996.5226 Arin@AgilityFeat.com! Our!plan! • Userstoryprimer • Why!is!small!so!important?!

1/11/12

12

RetrospecAve  What  did  you  learn  today?  What  can  I  do  to  improve  this  workshop?  

@ArinSime  

434.996.5226  [email protected]