Techniques for Effectively Slicing User Stories by Naresh Jain

129
Copyright © 2014, AgileFAQs. All Rights Reserved. Techniques for Effectively Slicing User Stories Workshop Naresh Jain [email protected] @nashjain http://nareshjain.com

description

In order to achieve my goals, as a buyer of your product, I want awesome feature. AT: make sure your users stories don't get in the way. Users Stories, the tool teams use to break big ideas into small demonstrable deliverable, are easy to describe and challenging to write effectively. In this hands-on workshop you'll learn how to write great user stories and acceptance criteria, that everyone on the team understands. We'll learn various techniques to slice your stories using the tracer-bullet approach. We will discuss what elements should be included in the stories, what criteria you should keep in mind while slicing stories; why the size of your user story is important and how to make them smaller and efficient. Agenda: What do you do to Large Stories? Spike, Split, Stub & Timebox (SSST) technique. Core Slicing Techniques: 1. System Slice 1.a. Static vs. Dynamic 1.b. Real-time vs. Batch Processing 1.c. Build vs. Buy 1.d. Automated vs. Manual Steps 1.e. Defer certain roles 2. Behavioural Slice 2.a. Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton 2.a.1. Acceptance Criteria 2.b. By-pass certain steps in the workflow 2.c. Focus on Happy Path First (edge cases later) 2.d. No options - 1 option - Many options 3. Incrementally improve ‘Ilities' (Usability, Scalability, Reliability, etc.) 3.a. Simpler UI (even consider using a standard UI) 3.b. Minmal Data 3.c. Improve Performance Iteratively

Transcript of Techniques for Effectively Slicing User Stories by Naresh Jain

Page 1: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Techniques for Effectively Slicing

User Stories Workshop

Naresh Jain [email protected]

@nashjain http://nareshjain.com

Page 2: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Agenda

Quick intro to user stories

Spike, Split, Stub & Timebox (SSST) technique to manage large stories

Splitting metaphor

Specific techniques to split stories

High-level techniques to create and prioritise stories

Page 3: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

What are we really trying to build?

User Stories

Page 4: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

What is a Story?

Page 5: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story is a smallest piece of functionality that add business value

What is a Story?

Page 6: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story is a smallest piece of functionality that add business value

Stories should follow Ron Jeffries’ 3 Cs

Card – Placeholder for conversation

Conversation – Actual discussion between dev team and user

Confirmation – Acceptance criteria to determine when the story is finished

What is a Story?

Page 7: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Typical Story Format

Story Title - Actor Action Context

Page 8: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a .. <user who requires this feature>

Typical Story Format

Story Title - Actor Action Context

Page 9: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a .. <user who requires this feature>

I want .. <do something>

Typical Story Format

Story Title - Actor Action Context

Page 10: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a .. <user who requires this feature>

I want .. <do something>

So that... <user goal/business justification>

Typical Story Format

Story Title - Actor Action Context

Page 11: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Title: Keen Reader subscribes to a blog

As a keen reader of your blog

I want to subscribe to your blog

So that I can stay up-to-date with the new posts

Story Example

Page 12: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

!

Title: Social Networking Enthusiast uploads profile picture

As a Social Networking Enthusiast

I want to upload my profile picture

So my friends can see how I look and recognise me

Another Story Example

Page 13: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

What makes a good Story?

Page 14: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories should follow the INVEST principle:

What makes a good Story?

Page 15: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories should follow the INVEST principle:

Independent

What makes a good Story?

Page 16: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories should follow the INVEST principle:

Independent

Negotiable

What makes a good Story?

Page 17: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories should follow the INVEST principle:

Independent

Negotiable

Valuable

What makes a good Story?

Page 18: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories should follow the INVEST principle:

Independent

Negotiable

Valuable

Estimate-able

What makes a good Story?

Page 19: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories should follow the INVEST principle:

Independent

Negotiable

Valuable

Estimate-able

Small

What makes a good Story?

Page 20: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories should follow the INVEST principle:

Independent

Negotiable

Valuable

Estimate-able

Small

Testable

What makes a good Story?

Page 21: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

What do you do to Large Stories?

James Grenning - Story Weight Reduction Toolkit!http://www.renaissancesoftware.net/blog/archives/48

Page 22: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

SSST

Spike

Slice

Stub

Time-box

What do you do to Large Stories?

James Grenning - Story Weight Reduction Toolkit!http://www.renaissancesoftware.net/blog/archives/48

Page 23: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Breakout Session

Story writing exercise

Break out into groups of 3-5 people

Business Problem: Casual daters search for matches online

Use process model to drive out the stories

Keep in mind:

Format: As X I want to Y so I can Z

INVEST principle

Consistent granularity

Page 24: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 25: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Stories are fundamental unit of activity

Business Goals

User Goals

Page 26: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Discovery

Stories are fundamental unit of activity

Business Goals

User Goals

Page 27: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a ____, I want to be able to ____ so

that ____

Product Backlog

Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and

business confidence that this is real and achievable

Discovery

Stories are fundamental unit of activity

Business Goals

User Goals

Page 28: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a ____, I want to be able to ____ so

that ____

Product Backlog

Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and

business confidence that this is real and achievable

Release planningDiscovery

Stories are fundamental unit of activity

Business Goals

User Goals

Page 29: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a ____, I want to be able to ____ so

that ____

Product Backlog

Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and

business confidence that this is real and achievable

As a ____, I want to be able to ____ so

that ____

I will know this is done when _______

Release Backlog

More detailed estimate, and a specific acceptance test – low confidence stories might be

“spiked” or prototyped

Release planningDiscovery

Stories are fundamental unit of activity

Business Goals

User Goals

Page 30: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a ____, I want to be able to ____ so

that ____

Product Backlog

Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and

business confidence that this is real and achievable

As a ____, I want to be able to ____ so

that ____

I will know this is done when _______

Release Backlog

More detailed estimate, and a specific acceptance test – low confidence stories might be

“spiked” or prototyped

Release planning Iteration planningDiscovery

Stories are fundamental unit of activity

Business Goals

User Goals

Page 31: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

As a ____, I want to be able to ____ so

that ____

Product Backlog

Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and

business confidence that this is real and achievable

As a ____, I want to be able to ____ so

that ____

I will know this is done when _______

Release Backlog

More detailed estimate, and a specific acceptance test – low confidence stories might be

“spiked” or prototyped

As a ____, I want to be able to ____ so

that ____

I will know this is done when _______

To do this I must: 1) _____ 2) _____

Iteration Backlog

Possible automation of the acceptance

test

Development team breaks out the detail of work needed to

pass test

Release planning Iteration planningDiscovery

Stories are fundamental unit of activity

Business Goals

User Goals

Page 32: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Slicing Metaphor

Page 33: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

8 Guests - How would you share this cake?

Page 34: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Vertical Slicing

Page 35: Techniques for Effectively Slicing User Stories by Naresh Jain

Horizontal Slicing

Page 36: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 37: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Let’s try slicing

Page 38: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

!

As a Social Networking Enthusiast

I want to upload my profile picture

So my friends can see how I look and recognise me

Social Networking Enthusiast uploads profile picture

Page 39: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Using Acceptance Criteria to Slice Stories

Page 40: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Acceptance Criteria should contain:

ACTOR

VERB – DESCRIBING A BEHAVIOUR

OBSERVABLE RESULT

!To accommodate pre-conditions Acceptance Criteria can be expressed as

Given [Precondition]

When [Actor + Action]

Then [Observable Result]

Acceptance Criteria

Page 41: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Example

Page 42: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Example

Given the user has a valid facebook account and a digital picture on her computer,

When she uploads a picture in facebook,

Then her the picture should be visible to all her friends in her network.

Page 43: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Example

Given the user has a valid facebook account and a digital picture on her computer,

When she uploads a picture in facebook,

Then her the picture should be visible to all her friends in her network.

Given an user is trying to find a friend on facebook,

When the user searches for a person using their name,

Then their profile picture should be displayed along with other details.

Page 44: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Example

Given the user has a valid facebook account and a digital picture on her computer,

When she uploads a picture in facebook,

Then her the picture should be visible to all her friends in her network.

Given an user is trying to find a friend on facebook,

When the user searches for a person using their name,

Then their profile picture should be displayed along with other details.

As owner of facebook,

I want users to upload authentic, personal profile picture,

So facebook's reputation remains intact and facebook stays out of legal hassles.

Page 45: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Roles & Permissions Administration

Example

Page 46: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 47: Techniques for Effectively Slicing User Stories by Naresh Jain

How would you slice this?

Page 48: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Let’s decompose this…

Add new role

Delete existing role

Copy existing role

Update permissions

Search roles

Page 49: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

From a technical point of view

Left & Right Pane

Client side Search functionality

Tree Structure for Permissions

CRUD Services for Roles

Read & Update Service for Permissions

Page 50: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 1Read-only view of Roles & Permissions

Left & Right Pane

Display permissions in a table

Read Service for Roles

Read Service for Permissions

Page 51: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 2Ability to Update Permissions

Tree Structure for Permissions

Update Service for Permissions

Page 52: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 3Add new role

Copy functionality in UI

Create Services for Roles

Page 53: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 4Delete existing role

Delete functionality in UI

Delete Services for Roles

Client side Search functionality

Page 54: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

What Slicing Technique did we use?We started with read-only version and gradually added the ability to update permissions and add new roles.

In other words - We increased the sophistication of the feature.

Page 55: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Devolution

Page 56: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 57: Techniques for Effectively Slicing User Stories by Naresh Jain

How would you slice this?

Page 58: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 1

Full on-screen report for most common occupancy type

Page 59: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 2

Full on-screen report for most common occupancy type but can be filtered by a date-range.

Page 60: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 3Full on-screen report for most common occupancy type but can be filtered by a date-range and room type.

Page 61: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 4Delta on-screen report for most common occupancy type but can be filtered by a date-range and room type.

Page 62: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 5Delta on-screen report for all occupancy type but can be filtered by a date-range and room type.

Page 63: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Story Slicing - 6

Add support for different report formats.

Page 64: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

What Slicing Technique did we use?We started with showing most common, full data and then added more filters to fine tune the data.

In other words - We sophisticated the feature by adding more filters.

Page 65: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing Techniques

Page 66: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Page 67: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. Dynamic

Page 68: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch Processing

Page 69: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. Buy

Page 70: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual Steps

Page 71: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Page 72: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural Slice

Page 73: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Page 74: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance Criteria

Page 75: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance CriteriaBy-pass certain steps in the workflow

Page 76: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance CriteriaBy-pass certain steps in the workflowFocus on Happy Path First (edge cases later)

Page 77: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance CriteriaBy-pass certain steps in the workflowFocus on Happy Path First (edge cases later)No options - 1 option - Many options

Page 78: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance CriteriaBy-pass certain steps in the workflowFocus on Happy Path First (edge cases later)No options - 1 option - Many options

Incrementally improve ‘Ilities' (Usability, Scalability, Reliability, etc.)

Page 79: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance CriteriaBy-pass certain steps in the workflowFocus on Happy Path First (edge cases later)No options - 1 option - Many options

Incrementally improve ‘Ilities' (Usability, Scalability, Reliability, etc.)Simpler UI (even consider using a standard UI)

Page 80: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance CriteriaBy-pass certain steps in the workflowFocus on Happy Path First (edge cases later)No options - 1 option - Many options

Incrementally improve ‘Ilities' (Usability, Scalability, Reliability, etc.)Simpler UI (even consider using a standard UI)Minmal Data

Page 81: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Other Slicing TechniquesSystem Slice

Static vs. DynamicReal-time vs. Batch ProcessingBuild vs. BuyAutomated vs. Manual StepsDefer certain roles

Behavioural SliceAdjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton

Acceptance CriteriaBy-pass certain steps in the workflowFocus on Happy Path First (edge cases later)No options - 1 option - Many options

Incrementally improve ‘Ilities' (Usability, Scalability, Reliability, etc.)Simpler UI (even consider using a standard UI)Minmal DataImprove Performance Iteratively

Page 82: Techniques for Effectively Slicing User Stories by Naresh Jain

Last updated 3/26/2013Copyright © 2011-2013 Agile For All. All rights reserved.Visit http://www.richardlawrence.info/splitting-user-stories/ for more info on the story splitting patterns

www.agileforall.com

HOW TO SPLIT A USER STORYPREPARE THEINPUT STORY

APPLY THESPLITTINGPATTERNS

WORKFLOW STEPS

OPERATIONSBUSINESS RULE

VARIATIONS

INTERFACEVARIATIONS

VARIATIONSIN DATA

SIMPLE/COMPLEX

DEFERPERFORMANCE

BREAK OUT A SPIKE

MAJOR EFFORT

EVALUATETHE SPLIT

Does the big story satisfy INVEST* (except, perhaps, small)?

Are the new stories roughly equal in size?

Does the story describe a workflow?

Can you split the story so you do the beginning and end of the work-flow first and enhance with stories from the middle of the workflow?

Can you take a thin slice through the workflow first and

enhance it with more stories later?

Does the story include multiple operations? (e.g. is it about "managing"

or "configuring" something?)

Can you split the operations into separate stories?

Does the story have a variety of business rules? (e.g. is there a domain term in the story like "flexible dates"

that suggests several variations?)

Can you split the story so you do a subset of the rules first and

enhance with additional rules later?

Does the story do the same thing to different kinds of data? Can you split the story to

process one kind of data first and enhance with the

other kinds later?

Can you split the story to handle data from one

interface first and enhance with the others later?

Does the story get the same kind of data via multiple interfaces?

When you apply the obvious split, is whichever story you do

first the most difficult?

Could you group the later stories and defer the decision about which story comes first?

Does the story have a simple core that provides most of the

value and/or learning?

Could you split the story to do that simple core first and enhance it with later stories?

Does the story get much of its complexity from satisfying

non-functional requirements like performance?

Could you split the story to just make it work first and then enhance it to satisfy the non-functional requirement?

Are you still baffled about how to split the story?

Can you find a small piece you understand well enough to start?

Can you define the 1-3 questions most holding

you back?Take a break and try again.

Write a spike with those questions, do the minimum

to answer them, and start again at the top of this process

Write that story first, build it, and start again

at the top of this process.

Does the story have a complex interface?

Is there a simple version you could do first?

Try another pattern on the original story or the larger

post-split stories.

Try another pattern. You probably have waste

in each of your stories.

Try another pattern.

Are there stories you can deprioritize or delete?

Is there an obvious story to start with that gets you early value, learning, risk

mitigation, etc.?

Combine it with another story or otherwise reformulate it to get

a good, if large, starting story.

Is the story size 1⁄10 to 1⁄6 of your velocity?

Is each story about 1⁄10 to 1⁄6 of your velocity?

Do each of the stories satisfy INVEST?

Continue. You need to split it.

You’re done.

Try another pattern to see if you can get this.

You’re done, though youcould try another pattern

to see if it works better.

YES

NO

start here

* INVEST - Stories should be:

1

2

3

IndependentNegotiableValuableEstimableSmallTestable

last resort

YESNO

Page 83: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Page 84: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Problem

If we’re working on a story to contact customers by e-mail, the steps might be:

query db for customers;

send e-mail to customers;

retrieve delivery report;

remove bounced addresses from the system;

mark non-bounced as ‘recently contacted’

But you have to think about

spam-regulation compliance for sending e-mail

speed, accuracy & volume

personalised or generic email content

build vs. buy

Page 85: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Source: Gojko Adzic!http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/

Page 86: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Step 1: Identify tasks

Source: Gojko Adzic!http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/

Page 87: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Step 1: Identify tasks

Step 2: Identify options for tasks

Source: Gojko Adzic!http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/

Page 88: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Step 1: Identify tasks

Step 2: Identify options for tasks

Step 3: Combine results

Source: Gojko Adzic!http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/

Page 89: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Step 1: Identify tasks

Step 2: Identify options for tasks

Step 3: Combine results

Step 4: Trim the hamburger

Source: Gojko Adzic!http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/

Page 90: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Step 1: Identify tasks

Step 2: Identify options for tasks

Step 3: Combine results

Step 4: Trim the hamburger

Step 5: Take the first bite

Source: Gojko Adzic!http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/

Page 91: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Hamburger Method

Step 1: Identify tasks

Step 2: Identify options for tasks

Step 3: Combine results

Step 4: Trim the hamburger

Step 5: Take the first bite

Step 6: Take another bite…& continue

Source: Gojko Adzic!http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/

Page 92: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Before Story SlicingWhere do Stories come from?

Page 93: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 94: Techniques for Effectively Slicing User Stories by Naresh Jain

High Level View of the Process

Page 95: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Product  Discovery  -­‐  Steps

Page 96: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Product  Discovery  -­‐  Steps

Elevator Pitch

Business Goals

Chartering

Page 97: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Product  Discovery  -­‐  Steps

Elevator Pitch

Business Goals

Chartering

Pragmatic Personas

User Goals

Day in Life of each Persona

Scenarios &

Narratives

Personas

Page 98: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Product  Discovery  -­‐  Steps

Elevator Pitch

Business Goals

Chartering

Pragmatic Personas

User Goals

Day in Life of each Persona

Scenarios &

Narratives

Personas

Ac c ept ance !

Criteria

Page 99: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Product  Discovery  -­‐  Steps

Elevator Pitch

Business Goals

Chartering

Pragmatic Personas

User Goals

Day in Life of each Persona

Scenarios &

Narratives

Personas

Activity Map

Task MapInteraction DesignUI Sketch

Story Mapping

Ac c ept ance !

Criteria

Page 100: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Product  Discovery  -­‐  Steps

Elevator Pitch

Business Goals

Chartering

Pragmatic Personas

User Goals

Day in Life of each Persona

Scenarios &

Narratives

Personas

Activity Map

Task MapInteraction DesignUI Sketch

Story Mapping

PrioritisationGrouping by ThemesReiterating

Planning

Ac c ept ance !

Criteria

Page 101: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Product  Discovery  -­‐  Steps

Elevator Pitch

Business Goals

Chartering

Pragmatic Personas

User Goals

Day in Life of each Persona

Scenarios &

Narratives

Personas

Activity Map

Task MapInteraction DesignUI Sketch

Story Mapping

PrioritisationGrouping by ThemesReiterating

Planning

User Stories

AcceptanceCriteria

User Story Authoring

Ac c ept ance !

Criteria

Page 102: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 103: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 104: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 105: Techniques for Effectively Slicing User Stories by Naresh Jain

9

A  day  in  the  life  of  Ed  !

Page 106: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 107: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Maps  have  laJtude  and  longitude

54

Page 108: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Maps  have  laJtude  and  longitude

54

time (from the user’s perspective)

Page 109: Techniques for Effectively Slicing User Stories by Naresh Jain

©  2013  Naresh  Jain,  all  rights  reserved,  www.AgileFAQs.com

Maps  have  laJtude  and  longitude

54

time (from the user’s perspective)

priority (time from the planner

and builder’s perspective)

Page 110: Techniques for Effectively Slicing User Stories by Naresh Jain

time

nece

ssity

absolutely necessary

more necessary

less necessary

activity 1 activity 2 activity 3 activity 4

Span Planning

Page 111: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 112: Techniques for Effectively Slicing User Stories by Naresh Jain

time

optio

nalit

y

necessary

less optional

more optional

activity 1 activity 2 activity 3 activity 4

first release

second release

third release

Identify Release from Span Plans

Page 113: Techniques for Effectively Slicing User Stories by Naresh Jain

13

Page 114: Techniques for Effectively Slicing User Stories by Naresh Jain

15

Page 115: Techniques for Effectively Slicing User Stories by Naresh Jain

16

Team  fully  engaged!

Page 116: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 117: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 118: Techniques for Effectively Slicing User Stories by Naresh Jain
Page 119: Techniques for Effectively Slicing User Stories by Naresh Jain

19

Page 120: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Cab Route Optimisation

Most companies provide cab pick and drop services to their employees.

Company wants to

improve the utilisation of the cabs

reduce the cab expenses (lesser # of cabs, reduce total distance travelled by cabs)

reduce the time taken for employees to get to office

Constraints

Employees traveling from different locations at different times (flexi-office hours, shifts, unplanned meetings)

We need to give the cab vendor enough notice to arrange the cabs

Page 121: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Product Discovery

Goals/Themes

CAPTURE TRAVEL AND DATE TIME

VALIDATE ROUTES OF CARS AND TYPE OF CARS

DRIVER AND CAB ALLOTMENT

NOTIFY THE SUBSCRIBERS ABOUT CABS AND DRIVERSCAPTURE

EMPLOYEE TRAVEL PREFERENCE

Specify starting address

Enter my details (Emp ID,Name,Phn,Email ID)

Book a cab by specifying pick up /drop time

CALCULATE ROUTES

Read the rejection reason

View no. of employees, duration, no. of cabs per route

View total number and type of cabs per day in month

Get routes and number of people from system

Allocate driver and cabs to routes

Send sms notification with cab number, driver number and pickup time

MONITORING

Compare with the previous snapshot

Keep a track on average no. of employees per cab

Keep a track on the total distance travelled by the cabs

Monitor successful last minute changes

Monitor the avg. time taken by cabs per route

Page 122: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Low-Fi Prototyping & Interaction Design Testing

Page 123: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Landing Page

Page 124: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Entering their Location

Page 125: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Signing Up

Page 126: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Office In and Out Time

Page 127: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Update Schedule

Page 128: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Generates the Report

Page 129: Techniques for Effectively Slicing User Stories by Naresh Jain

Copyright © 2014, AgileFAQs. All Rights Reserved.

Thank You!

Questions?

[email protected] http://nareshjain.com

@nashjain