66
© Jeffrey Davidson, 2012 Agile User Stories Are Easy How to Turn Old Fashioned Requirements Into Great User Stories IIBA Fort Worth Chapter – Oct 15, 2012 Jeffrey Davidson

Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Agile  User  Stories  Are  Easy  

How  to  Turn  Old  Fashioned  Requirements  Into  Great  User  Stories  

IIBA  Fort  Worth  Chapter  –  Oct  15,  2012  Jeffrey  Davidson  

Page 2: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Contact  Information  Jeffrey  Davidson,  CSPO  PMC  

 Principal  Consultant,    

 President,  IIBA  Dallas  

 

•  email  [email protected]  

•  blog  http://goodrequirements.com  

•  Twitter  @JeffreyGoodReq  

Page 3: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

4  Takeaways  

Explain: How traditional requirements compare to user stories

Describe: Elements of a good user story

Answer: “What happens to the stuff I used to document?”

Discuss: “Why my teams will love this!”

Page 4: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Simple?  

•  “We can only hope to make reliable those things that we can understand.

•  We can only consider a few things at a time. 

•  Intertwined things must be considered together. 

•  Complexity undermines understanding.”  

“Simple  Made  Easy”  by  Rich  Hickey  @  StrangeLoop  2011  

Page 5: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Capers  Jones  

<500  Function  Points  

Page 6: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Cutter  Consortium,  Mobile  SW  Dev  

30%  Requirements  do  not  reflect  needs  

Page 7: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Forrester  Research  

40%  Executives  Dissatisfied  

Page 8: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Standish  Group,  CHAOS  Reports  

45%  Features  Never  Used  

Page 9: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

IT  Complexity  Crisis  

$3  trillion  Global  impact  of  IT  failures  

Page 10: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  ©  Jeffrey  Davidson,  2012  

Page 11: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Many  forms  of  Government  have  been  tried  and  will  be  tried  in  this  world  of  sin  and  woe.  No  one  pretends  that  democracy  is  perfect  or  all-­‐wise.  Indeed,  it  has  been  said  that  democracy  is  the  worst  form  of  government  except  all  those  other  forms  that  have  been  tried  from  time  to  time.      

–  Winston  Churchill  ©  Jeffrey  Davidson,  2012  

Page 12: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

System  Requirements  Specification  

Use  Cases  

Scope  /  Product  Roadmap  

Charter  /  Vision  Business  Objectives  

Needs    

Features    

Goal  /  Usage  

Details    

Functional  &  Non-­‐functional,  Business  Rules,  Data  Models,  Process    Flows,  State  Charts,  

Activity  Diagrams,  Report  Reqs,  Test  Cases,  Wire  Frames,  …  

Page 13: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Page 14: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Securitization Accounting Release 2 Edit Index Rate

MS10. System determines entered rate is valid. (See AS7)

MS11. System records rate.

MS12. System records System date and time.

MS13. System records User’s identification information.

Alternative Scenarios AS1 User chooses to edit existing rate value.

AS1.1 User selects index name from a list of available index names. (See ASX)

AS1.2 User inputs search date.

AS1.3 User initiates search.

AS1.4 System determines date is valid. (See ASX) (See ASX) (See ASX)

AS1.5 System displays rate value entry screen with existing rate information.

AS1.6 Return to MS8.

AS2 User does not select index name.

AS2.1 User inputs new effective date for rate. (See ASX)

AS2.2 User chooses to input rate value.

AS2.3 System displays rate maintenance screen with all data previously entered by User.

AS2.4 System displays an error message.

AS2.5 Return to MS3.

AS3 System determines rate already exists for date provided.

AS3.1 System displays an error message.

AS3.2 Return to MS4.

AS4 System determines provided date is beyond today’s date.

AS4.1 System displays an error message.

AS4.2 Return to MS4.

AS5 System determines provided date is formatted improperly.

AS5.1 System displays an error message.

AS5.2 Return to MS4.

AS6 User does not input all rate information.

AS6.1 User indicates that rate entry is complete.

AS6.2 System displays an error message to User.

AS6.3 System displays rate value entry screen with all data previously entered by User.

AS6.4 Return to MS8.

AS7 System determines rate is invalid.

AS7.1 System displays an error message to User.

AS7.2 System displays rate value entry screen with all data previously entered by User.

AS7.3 Return to MS8.

Page 15: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Page 16: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

System  Requirements  Specification  

Use  Cases  

Scope  /  Product  Roadmap  

Charter  /  Vision  Business  Objectives  

Needs    

Features    

Goal  /  Usage  

Details    

Functional  &  Non-­‐functional,  Business  Rules,  Data  Models,  Process    Flows,  State  Charts,  

Activity  Diagrams,  Report  Reqs,  Test  Cases,  Wire  Frames,  …  

Page 17: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Conversation,  Acceptance  Criteria,  

Documentation  

User  Stories  

Epic  Stories  

Charter  /  Vision  Business  Objectives  

Needs    

Features    

Goal  

Details    

Page 18: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

user  stories:  what  

Page 19: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

user  story  

Page 20: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

promise  ©  Jeffrey  Davidson,  2012  

Page 21: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

acceptance  criteria  ©  Jeffrey  Davidson,  2012  

Page 22: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

acceptance  criteria  ©  Jeffrey  Davidson,  2012  

Page 23: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

acceptance  criteria  ©  Jeffrey  Davidson,  2012  

Page 24: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012   Sco8  Sehlhorst,  h8p://www.tynerblain.com/blog,  2010  

acceptance  criteria  ©  Jeffrey  Davidson,  2012  

Page 25: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

user  stories:  how  

Page 26: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

independent    negotiable    valuable    

estimate-­‐able    small    testable    

INVEST  by  Bill  Wake,  www.xp123.com,  2003  

Page 27: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

independent  ©  Jeffrey  Davidson,  2012  

Page 28: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

negoLable  ©  Jeffrey  Davidson,  2012  

Page 29: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  ©  Jeffrey  Davidson,  2012  

valuable  ©  Jeffrey  Davidson,  2012  

Page 30: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  ©  Jeffrey  Davidson,  2012  

esLmate-­‐able  ©  Jeffrey  Davidson,  2012  

Page 31: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

small  ©  Jeffrey  Davidson,  2012  

Page 32: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

testable  ©  Jeffrey  Davidson,  2012  

Page 33: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

first:  epic  stories  one  user’s  viewpoint    customer  benefit    

ui:  later    sized  for  the  horizon      

FOCUS  based  on  User  Stories  Applied,  2004  

Page 34: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  ©  Jeffrey  Davidson,  2012  

first:  epic  stories  ©  Jeffrey  Davidson,  2012  

Page 35: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

one  person’s  viewpoint  

©  Jeffrey  Davidson,  2012  

Page 36: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  ©  Jeffrey  Davidson,  2012  

customer  benefit  

©  Jeffrey  Davidson,  2012  

Page 37: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  ©  Jeffrey  Davidson,  2012  

ui:  later  ©  Jeffrey  Davidson,  2012  

Page 38: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

for  the  horizon  sized  

©  Jeffrey  Davidson,  2012  

Page 39: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

user  stories:  compare  

©  Jeffrey  Davidson,  2012  

Page 40: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012   Sco8  Sehlhorst,  h8p://www.tynerblain.com/blog,  2009  

Informal  Use  Case  

Formal  Use  Case  

Use  Case  Brief  User  

Story   More  Less  

More  

Less  

 Detail  Captured  

Doc

umen

tation

 Ove

rhea

d  

Page 41: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012   Sco8  Sehlhorst,  h8p://www.tynerblain.com/blog,  2009  

Informal  Use  Case  

Formal  Use  Case  

Use  Case  Brief  

More  Less  

More  

Less  

 Detail  Captured  

Doc

umen

tation

 Ove

rhea

d  

Page 42: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012   Sco8  Sehlhorst,  h8p://www.tynerblain.com/blog,  2009  

Informal  Use  Case  

Use  Case  Brief  

More  Less  

More  

Less  

 Detail  Captured  

Doc

umen

tation

 Ove

rhea

d  

Page 43: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Securitization Accounting Release 2 Edit Index Rate

Document Info Project Name: Securitization Accounting Release 2 Use Case ID: 008 Use Case Name: Edit Index Rate Related Story Cards:

Change History

Date (yyyy-mm-dd)

Version Description Author

2005-03-30 0.1 Initial Draft Julie 2005-04-07 0.2 Reviewed Draft Adam

Use Case Header Info Description: The Funding Accountant wants to input and store new rates for the month in order to

use them in the revolving transaction funding calculation.

Assumptions: Index rates are available for input from the proper source.

Frequency: Once per month.

Actor(s): Funding Accountant.

Trigger: User receives new rates for the month.

Preconditions: User has logged into the System AND

User has new rate ready to enter into System.

Success End Conditions:

System stores rate and User’s identifying information.

Use Case Story User gets the new index rates for the day from BANK. They then go in to FMS and input the new rate information, including the rate itself and the effective date, into FMS and save the information to the System. User may also choose to view or edit past rates.

Use Case Steps

Main Success Scenario MS1. System displays rate maintenance screen.

MS2. User chooses to create new rate value. (See AS1)

MS3. User selects index name from a list of available index names. (See AS2)

MS4. User inputs new effective date for rate.

MS5. User chooses to input rate value.

MS6. System determines date is valid. (See AS3) (See AS4) (See AS5)

MS7. System displays rate value entry screen.

MS8. User inputs rate information. (See AS6)

MS9. User indicates that rate entry is complete.

Page 44: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

=  

Page 45: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

=  ?  

Page 46: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

=  ?  ?   ?  

Page 47: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Page 48: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Communicating  with  Examples  

©  Jeffrey  Davidson,  2012  

Page 49: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Behavior  Based  Requirements    

•  Functional  Behavior  

•  Story  format  

Page 50: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

– – context

You & Your conditi

on

What you do

What you see

Simple  Structure  

event response

Page 51: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

– – Given

You & Your conditi

on

What you do

What you see

Simple  Structure  

When Then

Page 52: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Helpful  Guidelines  

Given:    I  am  documenting  reqs  

When:  I  write  req  using  business  terms  

Then:  My  business  partners  will  understand  the  req  

Page 53: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Helpful  Guidelines  

Given:    I  am  documenting  reqs  

When:  I  write  req  using  design  agnostic  behavior  

Then:  My  requirements  may  be  reused  

Page 54: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Helpful  Guidelines  

Given:    I  am  documenting  reqs  

When:  I  write  req  using  natural  language  

Then:  My  requirements  will  be  understood  

Page 55: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Helpful  Guidelines  

Given:    I  am  documenting  reqs  

When:  I  add  example  scenarios  with  data  

Then:  I  can  validate  what  has  been  built  meets  the  goals  

Page 56: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Power  of  BBR  Comes  From  .  .  .  

•  Precise  grammatical  structure      

•  Discovery  &  understanding    

•  Captured  conversation    

Page 57: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Power  of  BBR  Gives  .  .  .  

•  Shared  Understanding  

•  Definition  of  “Done”  

•  Automation  enables  Continuous  Integration  

•  Examples  enable  Living  Documentation  

Page 58: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

– – Given

You & Your conditi

on

What you do

What you see

When Then

Page 59: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Who  Benefits?  

Everyone!

•  Seriously,  it  helps  everyone    •  Sponsors •  Business partners •  Users

•  Testers •  Developers •  Analysts

Page 60: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Ferryboats  &  Bridges  

Page 61: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

questions?  

Page 62: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Recap  •  I  N  V  E  S  T    with    F  O  C  U  S  

•  Document  what  the  job  needs  

•  Given  –  When  –  Then:  Communicate  with  Behavior  Based  Requirements  

•  Everyone  will  love  your  your  User  Stories  when  you  build  bridges  of  understanding  

Page 63: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Resources:  User  Stories  Cockburn,  Alistair.  Wri$ng  Effec$ve  Use  Cases.  Addison-­‐

Wesley;  2000.  

Cohn,  Mike.  User  Stories  Applied  for  Agile  So:ware  Development.  Addison-­‐Wesley;  2004.  

Go8esdiener,  Ellen.  The  So:ware  Requirements  Memory  Jogger.  Goal/QPC;  2005.  

Sehlhorst,  Sco8.  h8p://www.tynerblain.com/blog  

Page 64: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Resources:  Given  –  When  –  Then    Gojko  Adzic  BDD  /  Specification  by  Example  

gojko.net

Liz  Keogh    BDD     lunivore.com

Chris  Matts    Invented:  Feature  Injection     theitriskmanager.wordpress.com

Dan  North  Invented:  BDD   dannorth.net

Martin  Fowler  Co-­‐invented:  Ferryman  &  Bridge  builder      martinfolwer.com  

 

Page 65: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Share  &  Tell  

This  is  licensed  under  Creative  Commons  Sharealike  [CC  BY  3.0]  

•  Please  use  it    

•  Please  share  it    

•  Please  improve  it    

•  As  long  as  you  credit  me  somewhere  

Page 66: Agile&UserStories&Are&Easy& - Good Requirements · AS1.1 User selects index name from a list of available index names. (See ASX) AS1.2 User inputs search date. AS1.3 User initiates

©  Jeffrey  Davidson,  2012  

Agile  User  Stories  Are  Easy  

How  to  Turn  Old  Fashioned  Requirements  Into  Great  User  Stories  

IIBA  Fort  Worth  Chapter  –  Oct  15,  2012  Jeffrey  Davidson  

 

       email:  [email protected]  blog:  http://goodrequirements.com