Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Techniques for 
Effectively Slicing 
User Stories 
Workshop 
Naresh Jain 
naresh@agilefaqs.com 
@nashjain 
http://nareshja...
Agenda 
Quick intro to user stories 
Spike, Split, Stub & Timebox (SSST) technique to manage large stories 
Splitting meta...
User Stories 
What are we really trying to build? 
Copyright © 2014, AgileFAQs. All Rights Reserved.
What is a Story? 
Copyright © 2014, AgileFAQs. All Rights Reserved.
What is a Story? 
Story is a smallest piece of functionality that add business value 
Copyright © 2014, AgileFAQs. All Rig...
What is a Story? 
Story is a smallest piece of functionality that add business value 
Stories should follow Ron Jeffries’ ...
Typical Story Format 
Story Title - Actor Action Context 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Typical Story Format 
Story Title - Actor Action Context 
As a .. <user who requires this feature> 
Copyright © 2014, Agil...
Typical Story Format 
Story Title - Actor Action Context 
As a .. <user who requires this feature> 
I want .. <do somethin...
Typical Story Format 
Story Title - Actor Action Context 
As a .. <user who requires this feature> 
I want .. <do somethin...
Story Example 
Title: Keen Reader subscribes to a blog 
As a keen reader of your blog 
I want to subscribe to your blog 
S...
Another Story Example 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
! 
Title: Social Networking Enthusiast uploads p...
What makes a good Story? 
Copyright © 2014, AgileFAQs. All Rights Reserved.
What makes a good Story? 
Stories should follow the INVEST principle: 
Copyright © 2014, AgileFAQs. All Rights Reserved.
What makes a good Story? 
Stories should follow the INVEST principle: 
Independent 
Copyright © 2014, AgileFAQs. All Right...
What makes a good Story? 
Stories should follow the INVEST principle: 
Independent 
Negotiable 
Copyright © 2014, AgileFAQ...
What makes a good Story? 
Stories should follow the INVEST principle: 
Independent 
Negotiable 
Valuable 
Copyright © 2014...
What makes a good Story? 
Stories should follow the INVEST principle: 
Independent 
Negotiable 
Valuable 
Estimate-able 
C...
What makes a good Story? 
Stories should follow the INVEST principle: 
Independent 
Negotiable 
Valuable 
Estimate-able 
S...
What makes a good Story? 
Stories should follow the INVEST principle: 
Independent 
Negotiable 
Valuable 
Estimate-able 
S...
What do you do to Large Stories? 
James Grenning - Story Weight Reduction Toolkit! 
http://www.renaissancesoftware.net/blo...
What do you do to Large Stories? 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
SSST 
Spike 
Slice 
Stub 
Time-box 
J...
Breakout Session 
Story writing exercise 
Break out into groups of 3-5 people 
Business Problem: Casual daters search for ...
Stories are fundamental unit of activity 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
Business Goals 
User Goals
Stories are fundamental unit of activity 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
Discovery 
Business Goals 
Us...
Stories are fundamental unit of activity 
Product Backlog 
As a ____, I want to 
be able to ____ so 
that ____ 
Discovery ...
Stories are fundamental unit of activity 
Product Backlog 
As a ____, I want to 
be able to ____ so 
that ____ 
Might have...
Stories are fundamental unit of activity 
Product Backlog 
As a ____, I want to 
be able to ____ so 
that ____ 
Might have...
Stories are fundamental unit of activity 
Product Backlog 
As a ____, I want to 
be able to ____ so 
that ____ 
Might have...
Stories are fundamental unit of activity 
Product Backlog 
As a ____, I want to 
be able to ____ so 
that ____ 
Might have...
Slicing Metaphor 
Copyright © 2014, AgileFAQs. All Rights Reserved.
8 Guests - How would you share this cake? 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Vertical Slicing 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Horizontal Slicing
Let’s try slicing 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Social Networking Enthusiast uploads profile picture 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
! 
As a Social Ne...
Using Acceptance 
Criteria to Slice Stories 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Acceptance Criteria 
Acceptance Criteria should contain: 
ACTOR 
VERB – DESCRIBING A BEHAVIOUR 
OBSERVABLE RESULT 
! 
To a...
Example 
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...
Example 
Given the user has a valid facebook account and a digital picture on her computer, 
When she uploads a picture in...
Example 
Given the user has a valid facebook account and a digital picture on her computer, 
When she uploads a picture in...
Roles & Permissions 
Administration 
Example 
Copyright © 2014, AgileFAQs. All Rights Reserved.
How would you slice this?
Let’s decompose this… 
Add new role 
Delete existing role 
Copy existing role 
Update permissions 
Search roles 
Copyright...
From a technical point of view 
Left & Right Pane 
Client side Search functionality 
Tree Structure for Permissions 
CRUD ...
Story Slicing - 1 
Read-only view of Roles & Permissions 
Left & Right Pane 
Display permissions in a table 
Read Service ...
Story Slicing - 2 
Ability to Update Permissions 
Tree Structure for Permissions 
Update Service for Permissions 
Copyrigh...
Story Slicing - 3 
Add new role 
Copy functionality in UI 
Create Services for Roles 
Copyright © 2014, AgileFAQs. All Rig...
Story Slicing - 4 
Delete existing role 
Delete functionality in UI 
Delete Services for Roles 
Client side Search functio...
What Slicing Technique did we use? 
We started with read-only version and gradually added the ability to update 
permissio...
Devolution 
Copyright © 2014, AgileFAQs. All Rights Reserved.
How would you slice this?
Story Slicing - 1 
Full on-screen report for most common occupancy type 
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. 
Copyright ©...
Story Slicing - 3 
Full on-screen report for most common occupancy type but can be filtered 
by a date-range and room type...
Story Slicing - 4 
Delta on-screen report for most common occupancy type but can be filtered 
by a date-range and room typ...
Story Slicing - 5 
Delta on-screen report for all occupancy type but can be filtered by a date-range 
and room type. 
Copy...
Story Slicing - 6 
Add support for different report formats. 
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 tu...
Other Slicing Techniques 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Other Slicing Techniques 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
System Slice
Other Slicing Techniques 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
System Slice 
Static vs. Dynamic
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Copyright © 2014, AgileFAQs. A...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Copyright © 201...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Other Slicing Techniques 
System Slice 
Static vs. Dynamic 
Real-time vs. Batch Processing 
Build vs. Buy 
Automated vs. M...
Can you split the operations 
into separate stories? 
Can you split the story so you 
do a subset of the rules first and 
...
Hamburger Method 
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-...
Hamburger Method 
Source: Gojko Adzic! 
http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/ 
Copyrigh...
Hamburger Method 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
Step 1: Identify tasks 
Source: Gojko Adzic! 
http://...
Hamburger Method 
Step 1: Identify tasks 
Step 2: Identify options for tasks 
Source: Gojko Adzic! 
http://gojko.net/2012/...
Hamburger Method 
Step 1: Identify tasks 
Step 2: Identify options for tasks 
Step 3: Combine results 
Source: Gojko Adzic...
Hamburger Method 
Step 1: Identify tasks 
Step 2: Identify options for tasks 
Step 3: Combine results 
Step 4: Trim the ha...
Hamburger Method 
Step 1: Identify tasks 
Step 2: Identify options for tasks 
Step 3: Combine results 
Step 4: Trim the ha...
Hamburger Method 
Step 1: Identify tasks 
Step 2: Identify options for tasks 
Step 3: Combine results 
Step 4: Trim the ha...
Before Story Slicing 
Where do Stories come from? 
Copyright © 2014, AgileFAQs. All Rights Reserved.
High Level View of the Process
Product 
Discovery 
-­‐ 
Steps 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserved, 
www.AgileFAQs.com
Product 
Discovery 
-­‐ 
Steps 
Elevator 
Pitch 
Business 
Goals 
Chartering 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserve...
Product 
Discovery 
-­‐ 
Steps 
Elevator 
Pitch 
Business 
Goals 
Chartering 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserve...
Product 
Discovery 
-­‐ 
Steps 
Elevator 
Pitch 
Business 
Goals 
Chartering 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserve...
Product 
Discovery 
-­‐ 
Steps 
Elevator 
Pitch 
Business 
Goals 
Chartering 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserve...
Product 
Discovery 
-­‐ 
Steps 
Elevator 
Pitch 
Business 
Goals 
Chartering 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserve...
Product 
Discovery 
-­‐ 
Steps 
Elevator 
Pitch 
Business 
Goals 
Chartering 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserve...
9 
A 
day 
in 
the 
life 
of 
Ed 
!
Maps 
have 
laJtude 
and 
longitude 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserved, 
www.AgileFAQs.com 
54
Maps 
have 
laJtude 
and 
longitude 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserved, 
www.AgileFAQs.com 
54 
time 
(from th...
Maps 
have 
laJtude 
and 
longitude 
© 
2013 
Naresh 
Jain, 
all 
rights 
reserved, 
www.AgileFAQs.com 
54 
time 
(from th...
Span Planning 
time 
necessity 
absolutely 
necessary 
more 
necessary 
less 
necessary 
activity 1 activity 2 activity 3 ...
Identify Release from Span Plans 
time 
optionality 
necessary 
less 
optional 
more 
optional 
activity 1 activity 2 acti...
13
15
16 
Team 
fully 
engaged!
19
Cab Route Optimisation 
Most companies provide cab pick and drop services to their employees. 
Company wants to 
improve t...
Product Discovery 
Copyright © 2014, AgileFAQs. All Rights Reserved. 
Goals/ 
Themes 
CAPTURE 
TRAVEL AND 
DATE TIME 
VALI...
Low-Fi Prototyping & Interaction Design Testing 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Landing Page 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Entering their Location 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Signing Up 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Office In and Out Time 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Update Schedule 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Generates the Report 
Copyright © 2014, AgileFAQs. All Rights Reserved.
Thank You! 
Questions? 
nashjain@agilefaqs.com 
http://nareshjain.com 
@nashjain 
Copyright © 2014, AgileFAQs. All Rights ...
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Upcoming SlideShare
Loading in …5
×

Techniques for Effectively Slicing User Stories by Naresh Jain

8,013 views

Published on

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

Published in: Software

Techniques for Effectively Slicing User Stories by Naresh Jain

  1. 1. Techniques for Effectively Slicing User Stories Workshop Naresh Jain naresh@agilefaqs.com @nashjain http://nareshjain.com Copyright © 2014, AgileFAQs. All Rights Reserved.
  2. 2. 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  3. 3. User Stories What are we really trying to build? Copyright © 2014, AgileFAQs. All Rights Reserved.
  4. 4. What is a Story? Copyright © 2014, AgileFAQs. All Rights Reserved.
  5. 5. What is a Story? Story is a smallest piece of functionality that add business value Copyright © 2014, AgileFAQs. All Rights Reserved.
  6. 6. What is a Story? 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  7. 7. Typical Story Format Story Title - Actor Action Context Copyright © 2014, AgileFAQs. All Rights Reserved.
  8. 8. Typical Story Format Story Title - Actor Action Context As a .. <user who requires this feature> Copyright © 2014, AgileFAQs. All Rights Reserved.
  9. 9. Typical Story Format Story Title - Actor Action Context As a .. <user who requires this feature> I want .. <do something> Copyright © 2014, AgileFAQs. All Rights Reserved.
  10. 10. Typical Story Format Story Title - Actor Action Context As a .. <user who requires this feature> I want .. <do something> So that... <user goal/business justification> Copyright © 2014, AgileFAQs. All Rights Reserved.
  11. 11. Story Example 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  12. 12. Another Story Example 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
  13. 13. What makes a good Story? Copyright © 2014, AgileFAQs. All Rights Reserved.
  14. 14. What makes a good Story? Stories should follow the INVEST principle: Copyright © 2014, AgileFAQs. All Rights Reserved.
  15. 15. What makes a good Story? Stories should follow the INVEST principle: Independent Copyright © 2014, AgileFAQs. All Rights Reserved.
  16. 16. What makes a good Story? Stories should follow the INVEST principle: Independent Negotiable Copyright © 2014, AgileFAQs. All Rights Reserved.
  17. 17. What makes a good Story? Stories should follow the INVEST principle: Independent Negotiable Valuable Copyright © 2014, AgileFAQs. All Rights Reserved.
  18. 18. What makes a good Story? Stories should follow the INVEST principle: Independent Negotiable Valuable Estimate-able Copyright © 2014, AgileFAQs. All Rights Reserved.
  19. 19. What makes a good Story? Stories should follow the INVEST principle: Independent Negotiable Valuable Estimate-able Small Copyright © 2014, AgileFAQs. All Rights Reserved.
  20. 20. What makes a good Story? Stories should follow the INVEST principle: Independent Negotiable Valuable Estimate-able Small Testable Copyright © 2014, AgileFAQs. All Rights Reserved.
  21. 21. What do you do to Large Stories? James Grenning - Story Weight Reduction Toolkit! http://www.renaissancesoftware.net/blog/archives/48 Copyright © 2014, AgileFAQs. All Rights Reserved.
  22. 22. What do you do to Large Stories? Copyright © 2014, AgileFAQs. All Rights Reserved. SSST Spike Slice Stub Time-box James Grenning - Story Weight Reduction Toolkit! http://www.renaissancesoftware.net/blog/archives/48
  23. 23. 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  24. 24. Stories are fundamental unit of activity Copyright © 2014, AgileFAQs. All Rights Reserved. Business Goals User Goals
  25. 25. Stories are fundamental unit of activity Copyright © 2014, AgileFAQs. All Rights Reserved. Discovery Business Goals User Goals
  26. 26. Stories are fundamental unit of activity Product Backlog As a ____, I want to be able to ____ so that ____ Discovery Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and business confidence that this Copyright © 2014, AgileFAQs. All Rights Reserved. is real and achievable Business Goals User Goals
  27. 27. Stories are fundamental unit of activity Product Backlog As a ____, I want to be able to ____ so that ____ Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and business confidence that this Copyright © 2014, AgileFAQs. All Rights Reserved. is real and achievable Release planning Discovery Business Goals User Goals
  28. 28. Stories are fundamental unit of activity Product Backlog As a ____, I want to be able to ____ so that ____ Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and business confidence that this Release Backlog Release planning Copyright © 2014, AgileFAQs. All Rights Reserved. is real and achievable As a ____, I want to be able to ____ so that ____ I will know this is done when _______ More detailed estimate, and a specific acceptance test – low confidence stories might be “spiked” or prototyped Discovery Business Goals User Goals
  29. 29. Stories are fundamental unit of activity Product Backlog As a ____, I want to be able to ____ so that ____ Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and business confidence that this Release Backlog Release planning Iteration planning Copyright © 2014, AgileFAQs. All Rights Reserved. is real and achievable As a ____, I want to be able to ____ so that ____ I will know this is done when _______ More detailed estimate, and a specific acceptance test – low confidence stories might be “spiked” or prototyped Discovery Business Goals User Goals
  30. 30. Stories are fundamental unit of activity Product Backlog As a ____, I want to be able to ____ so that ____ Might have an initial estimate (perhaps for both analysis and development), and an expression of technical and business confidence that this Release Backlog Copyright © 2014, AgileFAQs. All Rights Reserved. is real and achievable As a ____, I want to be able to ____ so that ____ I will know this is done when _______ More detailed estimate, and a specific acceptance test – low confidence stories might be “spiked” or prototyped Iteration Backlog As a ____, I want to be able to ____ so that ____ I will know this is done when _______ To do this I must: 1) _____ 2) _____ Possible automation of the acceptance test Development team breaks out the detail of work needed to pass test Release planning Iteration planning Discovery Business Goals User Goals
  31. 31. Slicing Metaphor Copyright © 2014, AgileFAQs. All Rights Reserved.
  32. 32. 8 Guests - How would you share this cake? Copyright © 2014, AgileFAQs. All Rights Reserved.
  33. 33. Vertical Slicing Copyright © 2014, AgileFAQs. All Rights Reserved.
  34. 34. Horizontal Slicing
  35. 35. Let’s try slicing Copyright © 2014, AgileFAQs. All Rights Reserved.
  36. 36. Social Networking Enthusiast uploads profile picture 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
  37. 37. Using Acceptance Criteria to Slice Stories Copyright © 2014, AgileFAQs. All Rights Reserved.
  38. 38. Acceptance Criteria 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] Copyright © 2014, AgileFAQs. All Rights Reserved.
  39. 39. Example Copyright © 2014, AgileFAQs. All Rights Reserved.
  40. 40. 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. Copyright © 2014, AgileFAQs. All Rights Reserved.
  41. 41. 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. Copyright © 2014, AgileFAQs. All Rights Reserved.
  42. 42. 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. Copyright © 2014, AgileFAQs. All Rights Reserved.
  43. 43. Roles & Permissions Administration Example Copyright © 2014, AgileFAQs. All Rights Reserved.
  44. 44. How would you slice this?
  45. 45. Let’s decompose this… Add new role Delete existing role Copy existing role Update permissions Search roles Copyright © 2014, AgileFAQs. All Rights Reserved.
  46. 46. 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  47. 47. Story Slicing - 1 Read-only view of Roles & Permissions Left & Right Pane Display permissions in a table Read Service for Roles Read Service for Permissions Copyright © 2014, AgileFAQs. All Rights Reserved.
  48. 48. Story Slicing - 2 Ability to Update Permissions Tree Structure for Permissions Update Service for Permissions Copyright © 2014, AgileFAQs. All Rights Reserved.
  49. 49. Story Slicing - 3 Add new role Copy functionality in UI Create Services for Roles Copyright © 2014, AgileFAQs. All Rights Reserved.
  50. 50. Story Slicing - 4 Delete existing role Delete functionality in UI Delete Services for Roles Client side Search functionality Copyright © 2014, AgileFAQs. All Rights Reserved.
  51. 51. 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. Copyright © 2014, AgileFAQs. All Rights Reserved.
  52. 52. Devolution Copyright © 2014, AgileFAQs. All Rights Reserved.
  53. 53. How would you slice this?
  54. 54. Story Slicing - 1 Full on-screen report for most common occupancy type Copyright © 2014, AgileFAQs. All Rights Reserved.
  55. 55. Story Slicing - 2 Full on-screen report for most common occupancy type but can be filtered by a date-range. Copyright © 2014, AgileFAQs. All Rights Reserved.
  56. 56. Story Slicing - 3 Full on-screen report for most common occupancy type but can be filtered by a date-range and room type. Copyright © 2014, AgileFAQs. All Rights Reserved.
  57. 57. Story Slicing - 4 Delta on-screen report for most common occupancy type but can be filtered by a date-range and room type. Copyright © 2014, AgileFAQs. All Rights Reserved.
  58. 58. Story Slicing - 5 Delta on-screen report for all occupancy type but can be filtered by a date-range and room type. Copyright © 2014, AgileFAQs. All Rights Reserved.
  59. 59. Story Slicing - 6 Add support for different report formats. Copyright © 2014, AgileFAQs. All Rights Reserved.
  60. 60. 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. Copyright © 2014, AgileFAQs. All Rights Reserved.
  61. 61. Other Slicing Techniques Copyright © 2014, AgileFAQs. All Rights Reserved.
  62. 62. Other Slicing Techniques Copyright © 2014, AgileFAQs. All Rights Reserved. System Slice
  63. 63. Other Slicing Techniques Copyright © 2014, AgileFAQs. All Rights Reserved. System Slice Static vs. Dynamic
  64. 64. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Copyright © 2014, AgileFAQs. All Rights Reserved.
  65. 65. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Copyright © 2014, AgileFAQs. All Rights Reserved.
  66. 66. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Copyright © 2014, AgileFAQs. All Rights Reserved.
  67. 67. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Copyright © 2014, AgileFAQs. All Rights Reserved.
  68. 68. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Copyright © 2014, AgileFAQs. All Rights Reserved.
  69. 69. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Copyright © 2014, AgileFAQs. All Rights Reserved.
  70. 70. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria Copyright © 2014, AgileFAQs. All Rights Reserved.
  71. 71. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria By-pass certain steps in the workflow Copyright © 2014, AgileFAQs. All Rights Reserved.
  72. 72. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria By-pass certain steps in the workflow Focus on Happy Path First (edge cases later) Copyright © 2014, AgileFAQs. All Rights Reserved.
  73. 73. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria By-pass certain steps in the workflow Focus on Happy Path First (edge cases later) No options - 1 option - Many options Copyright © 2014, AgileFAQs. All Rights Reserved.
  74. 74. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria By-pass certain steps in the workflow Focus on Happy Path First (edge cases later) No options - 1 option - Many options Incrementally improve ‘Ilities' (Usability, Scalability, Reliability, etc.) Copyright © 2014, AgileFAQs. All Rights Reserved.
  75. 75. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria By-pass certain steps in the workflow Focus 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) Copyright © 2014, AgileFAQs. All Rights Reserved.
  76. 76. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria By-pass certain steps in the workflow Focus 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  77. 77. Other Slicing Techniques System Slice Static vs. Dynamic Real-time vs. Batch Processing Build vs. Buy Automated vs. Manual Steps Defer certain roles Behavioural Slice Adjusting Sophistication - MVF (Minimum Viable Feature) or Walking Skeleton Acceptance Criteria By-pass certain steps in the workflow Focus 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 Improve Performance Iteratively Copyright © 2014, AgileFAQs. All Rights Reserved.
  78. 78. Can you split the operations into separate stories? Can you split the story so you do a subset of the rules first and enhance with additional rules later? Could you split the story to just make it work first and then enhance it to satisfy the non-functional requirement? Does the story get much of its complexity from satisfying non-functional requirements like performance? Does the story have a simple core that provides most of the value and/or learning? When you apply the obvious split, is whichever story you do first the most difficult? Does the story get the same kind of data via multiple interfaces? Visit http://www.richardlawrence.info/splitting-user-stories/ for more info on the story splitting patterns Try another pattern. Copyright © 2011-2013 Agile For All. All rights reserved. Last updated 3/26/2013 1 www.agileforall.com HOW TO SPLIT A USER STORY PREPARE THE INPUT STORY APPLY THE SPLITTING PATTERNS WORKFLOW STEPS OPERATIONS BUSINESS RULE VARIATIONS INTERFACE VARIATIONS VARIATIONS IN DATA Could you split the story to do that simple core first and enhance it with later stories? SIMPLE/COMPLEX DEFER PERFORMANCE BREAK OUT A SPIKE MAJOR EFFORT EVALUATE THE 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?) 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?) 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? Could you group the later stories and defer the decision about which story comes first? 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. 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 you could try another pattern to see if it works better. YES NO start here * INVEST - Stories should be: 2 3 Independent Negotiable Valuable Estimable Small Testable last resor t YES NO
  79. 79. Hamburger Method Copyright © 2014, AgileFAQs. All Rights Reserved.
  80. 80. 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  81. 81. Hamburger Method Source: Gojko Adzic! http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/ Copyright © 2014, AgileFAQs. All Rights Reserved.
  82. 82. Hamburger Method Copyright © 2014, AgileFAQs. All Rights Reserved. Step 1: Identify tasks Source: Gojko Adzic! http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/
  83. 83. 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/ Copyright © 2014, AgileFAQs. All Rights Reserved.
  84. 84. 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/ Copyright © 2014, AgileFAQs. All Rights Reserved.
  85. 85. 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/ Copyright © 2014, AgileFAQs. All Rights Reserved.
  86. 86. 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/ Copyright © 2014, AgileFAQs. All Rights Reserved.
  87. 87. 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/ Copyright © 2014, AgileFAQs. All Rights Reserved.
  88. 88. Before Story Slicing Where do Stories come from? Copyright © 2014, AgileFAQs. All Rights Reserved.
  89. 89. High Level View of the Process
  90. 90. Product Discovery -­‐ Steps © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com
  91. 91. Product Discovery -­‐ Steps Elevator Pitch Business Goals Chartering © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com
  92. 92. Product Discovery -­‐ Steps Elevator Pitch Business Goals Chartering © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com Pragmatic Personas User Goals Day in Life of each Persona Scenarios & Narratives Personas
  93. 93. Product Discovery -­‐ Steps Elevator Pitch Business Goals Chartering © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com Pragmatic Personas User Goals Day in Life of each Persona Scenarios & Narratives Personas Ac c ept ance !Cr it eria
  94. 94. Product Discovery -­‐ Steps Elevator Pitch Business Goals Chartering © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com Pragmatic Personas User Goals Day in Life of each Persona Scenarios & Narratives Personas Activity Map Story Mapping Interaction Task Map UI Sketch Design Ac c ept ance !Cr it eria
  95. 95. Product Discovery -­‐ Steps Elevator Pitch Business Goals Chartering © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com Pragmatic Personas User Goals Day in Life of each Persona Scenarios & Narratives Personas Activity Map Story Mapping Interaction Task Map UI Sketch Design Grouping by Prioritisation Planning Reiterating Themes Ac c ept ance !Cr it eria
  96. 96. Product Discovery -­‐ Steps Elevator Pitch Business Goals Chartering © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com Pragmatic Personas User Goals Day in Life of each Persona Scenarios & Narratives Personas Activity Map Story Mapping Interaction Task Map UI Sketch Design Grouping by Prioritisation Planning Reiterating Themes User Stories User Story Authoring Acceptance Criteria Ac c ept ance !Cr it eria
  97. 97. 9 A day in the life of Ed !
  98. 98. Maps have laJtude and longitude © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com 54
  99. 99. Maps have laJtude and longitude © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com 54 time (from the user’s perspective)
  100. 100. Maps have laJtude and longitude © 2013 Naresh Jain, all rights reserved, www.AgileFAQs.com 54 time (from the user’s perspective) priority (time from the planner and builder’s perspective)
  101. 101. Span Planning time necessity absolutely necessary more necessary less necessary activity 1 activity 2 activity 3 activity 4
  102. 102. Identify Release from Span Plans time optionality necessary less optional more optional activity 1 activity 2 activity 3 activity 4 first release second release third release
  103. 103. 13
  104. 104. 15
  105. 105. 16 Team fully engaged!
  106. 106. 19
  107. 107. 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 Copyright © 2014, AgileFAQs. All Rights Reserved.
  108. 108. Product Discovery Copyright © 2014, AgileFAQs. All Rights Reserved. Goals/ Themes CAPTURE TRAVEL AND DATE TIME VALIDATE ROUTES OF CARS AND TYPE OF CARS DRIVER AND CAB ALLOTMENT NOTIFY THE SUBSCRIBER S ABOUT CABS AND CAPTURE Enter my DRIVERS EMPLOYEE details (Emp Book a cab by TRAVEL Specify starting ID,Name,Phn,E specifying pick PREFERENCE address mail ID) 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
  109. 109. Low-Fi Prototyping & Interaction Design Testing Copyright © 2014, AgileFAQs. All Rights Reserved.
  110. 110. Landing Page Copyright © 2014, AgileFAQs. All Rights Reserved.
  111. 111. Entering their Location Copyright © 2014, AgileFAQs. All Rights Reserved.
  112. 112. Signing Up Copyright © 2014, AgileFAQs. All Rights Reserved.
  113. 113. Office In and Out Time Copyright © 2014, AgileFAQs. All Rights Reserved.
  114. 114. Update Schedule Copyright © 2014, AgileFAQs. All Rights Reserved.
  115. 115. Generates the Report Copyright © 2014, AgileFAQs. All Rights Reserved.
  116. 116. Thank You! Questions? nashjain@agilefaqs.com http://nareshjain.com @nashjain Copyright © 2014, AgileFAQs. All Rights Reserved.

×