working effectively with user stories

50
WORKING EFFECTIVELY WITH USER STORIES Ken Power

Upload: ken-power

Post on 23-Jan-2015

1.143 views

Category:

Technology


6 download

DESCRIPTION

Slide deck from my talk/workshop at Agile 2012 in Dallas Texas, Tuesday August 14 2012. The title is "Working Effectively with User Stories" The workshop and talk covered four main topics: 1. Silent Grouping: A technique for sizing large sets of user stories 2. Definition of Ready 3. Backlog Grooming 4. Tracking Progress as part of Daily Standups

TRANSCRIPT

Page 1: Working effectively with user stories

WORKING EFFECTIVELY WITH USER STORIES Ken Power

Page 2: Working effectively with user stories

Agenda • Sizing (large) sets of User Stories quickly • Definition of Ready • Backlog Grooming • Daily tracking of progress of User Stories

Page 3: Working effectively with user stories

About me

• My day job § Co-Founder, Agile Office at Cisco §  Internal Agile & Lean Coach/Consultant

• Extra-curricular activities § Fellow of the Lean Systems Society (http://LeanSystemsSociety.org/) § Award-winning publications in Agile and Lean product development § Frequent speaker at major international Agile and Lean conferences §  Involved in organizing international Agile and Lean conferences §  Industry/academic collaborative research on Agile and Lean software development § Blog: http://SystemAgility.com/

Page 4: Working effectively with user stories

Size: How big is the work?

Duration: How long will it take?

Date: When will the work be done?

Staffing: Who will do the work?

What are we estimating?

Page 5: Working effectively with user stories

RELATIVE SIZING

Page 6: Working effectively with user stories

How big is the pile of work?

Page 7: Working effectively with user stories

SIZING USER STORIES

Page 8: Working effectively with user stories
Page 9: Working effectively with user stories

1 2 3 5 8 13 21 34

Page 10: Working effectively with user stories

The Basic Steps

http://systemagility.com/using-silent-grouping-to-size-user-stories/

Power, Ken. "Using Silent Grouping to Size User Stories." In Agile Processes in Software Engineering and Extreme Programming 12th International Conference (XP 2011). Madrid, Spain: Springer Lecture Notes in Business Information Processing (LNBIP), 2011.

Page 11: Working effectively with user stories

1 2 3 5 8 13 21 34 Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Page 12: Working effectively with user stories

The 6 myths of Product Development

D.#G.#Reinertsen,#“The$principles$of$product$development$flow$:$second$genera8on$lean$product$development”.#Redondo#Beach,#Calif.:#Celeritas,#2009.###S.#Thomke#and#D.#Reinertsen,#"Six$Myths$of$Product$Development,"#Harvard#Business#Review,#vol.#90,#pp.#84G94,#May#2012#

High utilization of resources [and people] will improve performance Processing work in large batches

improves the economics of the process Our plan is great; we

just need to stick to it

The more features we put into a product, the more customers will like it

We will be more successful if we get it right the first time

The sooner the project is started, the sooner it will be finished

Page 13: Working effectively with user stories

Waste in Product Development “Eliminating waste is the most fundamental lean principle, the one from which all the other principles follow. Thus, the first step to implementing lean development is learning to see waste.”

- Poppendieck and Poppendieck 2003

1.  Extra Features 2.  Delays 3.  Handoffs 4.  Extra Processes 5.  Partially Done Work 6.  Task Switching 7.  Defects 8.  Unused Employee

Creativity

Page 14: Working effectively with user stories

Premature Precision “Both business and programmers are tempted to fall into the trap of premature precision. Business people want to know exactly what they are going to get before they authorize a project. Developers want to know exactly what they are supposed to deliver before they estimate the project. Both sides want a precision that simple cannot be achieved, and are often willing to waste a fortune trying to attain it.”

-  Robert C. Martin (Uncle Bob) “The Clean Coder: A Code of Conduct for Professional Programmers”

Page 15: Working effectively with user stories

STARTING RIGHT

Page 16: Working effectively with user stories

Reminder: Definition of Done

Page 17: Working effectively with user stories

Sycnhronization Point Definitions of Ready & Done act as focusing anchors for teams, management, and everyone involved in creating and delivering the product

Page 18: Working effectively with user stories

Concept Happy User

Do something cool

As a User I want to do something cool with the product So that I can benefit in some way

Page 19: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept Time

Page 20: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept

Done

Time

Page 21: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept

Ready

Done

Time

Page 22: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept

Ready

Done

Time

Page 23: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept

Ready

Done

Time

Page 24: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept

Ready

Done

Time

Page 25: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept

Ready

Done

Time

Page 26: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Concept TStart TEnd Ship It Done Accept

Ready

Done

Time

Page 27: Working effectively with user stories

Product Owners

Team

Leve

l of F

ocus

on

the

Use

r Sto

ry

Time Concept TStart TEnd Ship It Done Accept

Ready

Done

Page 28: Working effectively with user stories

Why have a Definition of Ready?

• So everyone knows when a User Story is really ready to be pulled in by the team §  It does not need to be “100% defined” with all acceptance criteria, etc. §  It does need to be “ready enough” so that the team is confident they can successfully deliver

Page 29: Working effectively with user stories

Exercise/Discussion:

So, what do we need to do to make sure a User Story is really Ready to be pulled

in by the team?

Page 30: Working effectively with user stories

Definition of Ready for a User Story

• User Story defined • User Story Acceptance Criteria defined • User Story dependencies identified • User Story sized by Delivery Team • Scrum Team accepts Ux artefacts • Performance criteria identified, where appropriate • Person who will accept the User Story is identified • Delivery Team has reviewed and accepted the User

Story •  Team has a good idea what it will mean to Demo the

User Story

Page 31: Working effectively with user stories

Definition of Ready for an Iteration

•  The Iteration Backlog is prioritized •  The Iteration Backlog contains all defects, User

Stories and other work that the team is committing to § No hidden work § Examples of ‘other work’ might include lab setup, build environment maintenance, creating a test app, working on your manager’s pet project, supporting another product

• All team members have noted their capacity for the Iteration

• All User Stories meet Definition of Ready

Page 32: Working effectively with user stories

“Never pull anything into a Sprint that is not Ready. Never let

anything out of a Sprint that is not Done.”

- ? Sorry: can’t recall the Source!

Page 33: Working effectively with user stories

Consequences of not being Ready •  The Team is estimating and forecasting that they can

finish vague and incomplete stories. •  They waste time and energy trying to get clarity from the

Product Owner on exactly what the story means. • People get frustrated and annoyed and run around in

circles rather than getting down to work. •  That one vague story actually turns out to be five real

stories once the work is actually begun. •  They work on the wrong thing, or the right thing in the

wrong way, forcing the work to be re-done. Jeff Sutherland (2012). "The Dangers of Not Being Done, Or Ready For That Matter”. Available from http://scrum.jeffsutherland.com/

Page 34: Working effectively with user stories

BACKLOG GROOMING

Page 35: Working effectively with user stories

Continuously Groom the Backlog and Re-evaluate where you are

Scope Current Active Iteration

(Iteration N)

Next Iteration (Iteration N

+1)

Iteration N+2 to N+3

Distant Future

(Iteration N+4 and Beyond)

% Certainty

75% 50% 25% N/A

Backlog Item

granularity

Epics, User Stories, Use

Cases

Epics, Themes,

Features, Use Cases

Epics, Themes, Features,

Ideas

Ideas, Features,

Themes, Wish lists

Page 36: Working effectively with user stories

TRACKING PROGRESS

Page 37: Working effectively with user stories

Typical Daily Standup questions •  What did you do since we last met? •  What will you do before we meet again? •  What obstacles are in your way?

Page 38: Working effectively with user stories

But …

Page 39: Working effectively with user stories

Dreyfus model for individual, team and organization progression

Novice

Advanced Beginner

Competent

Proficient

Expert

3-5 x

5 – 10+ x

1-2 x

Breakeven

Performance

Competence / Capability

Not aware that the problem exists, or can’t conceive that there is a different

way of doing things

Little or no experience;

Need a recipe

Can start to break away from fixed rules, but have difficulty

troubleshooting; Can start using advice in correct

context; Can start formulating some

principles but no “big picture”; No holistic understanding, and

don’t want it yet

Need the big picture Frustrated by oversimplified information Can reflect on previous poor task performance; can reflect and revise to perform better next time Can learn from experience of others; can understand and apply maxims (as distinct from recipes)

Primary sources of knowledge and information in any field Continually look for better methods and better ways of doing things Vast body of experience they can tap into and apply in the right context Work from intuition, not reason Can distinguish between irrelevant details and important details

Page 40: Working effectively with user stories
Page 41: Working effectively with user stories

Pay attention to body language

Page 42: Working effectively with user stories

Planned (Ready) In Progress Ready for

Test Done Accepted

Focus on the Work Items

Page 43: Working effectively with user stories

Add some project context

27 days since last Customer Release 48 days to next Customer Release 6 days to end of Iteration 4 open defects

Page 44: Working effectively with user stories

Add some event context

27 days since last Customer Release 48 days to next Customer Release 6 days to end of Iteration 4 open defects

Time Off: Mary (Holidays – 3d) Joe (Holidays – 1 wk) John (Training – 2d) Exec Demo Tue 13th Customer Visit Thursday 15th

Page 45: Working effectively with user stories

Time Off: Mary (Holidays – 3d) Joe (Holidays – 1 wk) John (Training – 2d) Exec Demo Tue 13th Customer Visit Thursday 15th

Understand how the work is aging

27 days since last Customer Release 48 days to next Customer Release 6 days to end of Iteration 4 open defects

Story Title

As a .. <user who requires this

feature> I want ..

<goal> So that...

<business justification>

||| Story Title

As a .. <user who requires this

feature> I want ..

<goal> So that...

<business justification>

|||| || \

Page 46: Working effectively with user stories

Time Off: Mary (Holidays – 3d) Joe (Holidays – 1 wk) John (Training – 2d) Exec Demo Tue 13th Customer Visit Thursday 15th

Personalize the Work Items using Avatars

27 days since last Customer Release 48 days to next Customer Release 6 days to end of Iteration 4 open defects

Story Title

As a .. <user who requires this

feature> I want ..

<goal> So that...

<business justification>

||| Story Title

As a .. <user who requires this

feature> I want ..

<goal> So that...

<business justification>

|||| || \

Page 47: Working effectively with user stories

Identified In Progress Resolved

Keep an Obstacle Board Becomes a record of

improvements

Obstacle Title

Scrum Master: Name Date Opened: 8-Jan-2012 Date Closed: 14-Feb-2012 Description: alsdals,d askdkas asdkma Asdasd lasdlkalskd alksdl asd asdaskl Resolution: askdmkasd asd asdj nasd Asdasdj asjdj nasd

Page 48: Working effectively with user stories

The best time to have Daily Standups is at natural break points in the day

Time: Monday Tuesday

09:00

12:30

Lunch Time

1:30

5:00

First thing in the morning

Just before Lunch

Late in the afternoon

Just after Lunch

Just examples: your times may

vary

Lunch Time

Uninterrupted Focus Time Uninterrupted

Focus Time

Uninterrupted Focus Time Uninterrupted

Focus Time

Page 49: Working effectively with user stories

Size User Stories using Silent Grouping

Don’t start working on anything that is not Ready

Understand the life cycle of the work through User Stories

Continuous groom your backlog to get things Ready

Summary

Page 50: Working effectively with user stories

Thank You!