SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
User Story Splitting
by Example
How and Why to Split User Stories for a Team
Trish Lynch
John Tobin
Who Builds Stories?
● Product owner
● Also, everyone else on the team
● Whoever is involved in the story discussion!
User Story
Basics
What’s a User Story?
● Short simple description of a feature
● Always told from the perspective of user or customer
● A collaboration tool
● Are written throughout the life cycle of the product
● Contain Acceptance Criteria or “conditions of satisfaction”
User Story Format & Example
As a <type of user>
I want <some goal>
So that <some reason>
User Story Format & Example
As a <type of user>
I want <some goal>
User Story Format & Example
So that <some reason>
As a <type of user>
I want <some goal>
So I know how much money I have
As a Bank Account Holder,
I want to view my account
Personas
● Personas are example ‘characters’ who will benefit from your story
● They represent the types of customers or users you may have
● They’re valuable because they help illustrate who will benefit from a story
● ...and therefore HOW the team may build it (considering the persona)
● They also help with splitting! (More to come)
Acceptance Criteria (GHERKIN)
Scenario: View overdraft account, with a negative balance
GIVEN: I am authenticated to the site as a Small Business Customer
AND: I have an active account
AND: I have an overdraft allowance
AND: My account has a balance that is below $0.00
WHEN: I view the account details on the site
THEN:
Verify that the current balance is shown.
Verify that there is an indication that the balance is below zero.
Verify that I am able to see the amount of my overdraft that remains.
● Scenario: View account balance
● Scenario: View overdraft account, with a negative balance
● Scenario: View overdraft account, with a positive balance
● Scenario: View account, balance not available
Acceptance Criteria & Scenarios
‘What’, not ‘How’
● A story is about ‘what’ we want to achieve and who the outcome is for
● Avoid spelling out the ‘how’ of the solution, especially technically
Less than ideal Acceptance Criteria...
Verify that there’s an activate button.
Verify that my negative balance is in red.
Verify that I can click the checkbox to accept
terms.
Verify there are checkboxes to select the users
I want to remove.
Instead becomes...
Verify that I can activate the account.
Verify that there’s an indication that my balance is
negative.
Verify that I am able to indicate that I accept the
terms.
Verify that I can choose multiple users to remove
at once.
INVEST
● Independant
● Negotiable
● Valuable
● Estimable
● Small
● Testable
Why Small?
Why Small?
“Fits in the sprint”
The Value of Small (or Why Small Is Beautiful)
● Getting something done, quickly, is invaluable!
Reduces risk
Discovery of
issues
Review the idea
Review the
experience
Get more
feedback
Demonstrate progress
(rather than no progress)
Build Trust
Educate about What
Software Takes
Learn! OODA!
Better code,
Better quality
Refine
estimates
easier
Adapt to
discoveries
Reduces
waste
Release
earlier
Improves Shared
understanding
User Story Mapping: Shop Example
Product
Search
Save
credit
Card
Ship to
Store
Save
Delivery
info
Product
Page
Checkout
User journey
Release 1
Release 2
Release 3
Pay with
Reward
Points
Enter
Delivery
Info
Pay with
Debit
Card
Pay with
Credit
Card
Filter by
category
Save
Search
Filter by
rating
Filter by
gender
Filter by
price
Quick
Purchase
Seasonal
Products
Similar
items
Detailed
Description
Sale
Items
Purchase
Option
Up Sale
items
Product
review
Pay with
Debit
Card
Pay with
Reward
Points
How Do I Split?
How NOT to do it...
Story 2
Story 1 Story 1
Other stories
DB
FE
Splitting - Finding the Cracks
Splitting - Finding the Cracks
Splitting
Techniques
Workflow
Splitting by Workflow
So I can access my accounts online,
As a Business Banking Customer,
I want to be able to register on the self service web site.
● Scenario...
Acceptance Criteria - Scenarios
● Complex workflow, lots of scenarios...
Login, existing
user
Prove account
ownership by last
balance
Account
number not
found
Attach account by
account number
Account locked or
disabled
Login, register new
user
New user password
doesn’t meet
standard
Login, incorrect
password
Failed to prove
ownership
New user,
email exists
Prove you’re human
New user, password
doesn’t match
Show landing
page,
account
attached
Not business
account
Happy Path FTW, Unhappy In Steps
Simple Path, Enhance
● Can you simplify the happy path
● Smallest possible flow (start and end?)
● Get the product ‘working’
● Enhance afterwards
Attach account
by account
number
Login, existing
user
Show landing
page, account
attached
Assume existing account Assume they’re the
owner
Account number
not found / Not
business
account
So that I can access my accounts online,
As a Business Banking Customer,
I want to be able to attach a business account to my existing user login.
● Scenario: Login, existing user
● Scenario: Attach account by account number
● Scenario: Account not found or not business account
● Scenario: Show landing page, account attached
Splitting by Workflow
Unhappy path only!
Business Rule
Splitting User Stories by Business Rules
So my order is delivered to my home,
As an online shopper,
I want to be able to checkout the items in my shopping basket.
● Scenario: Minimum order balance
● Scenario: Delivery charge; local or outside delivery area
● Scenario: Delivery type: standard or express
● Scenario: Unavailable items may be substituted
● Scenario: Minimum/Maximum order quantity
Rule Guidelines
● Listing the scenarios helps identify all the rules
● Prioritize most important rules first
● Defer complexity
● Learn about the basic rules before getting complicated
● Really common and important technique
Splitting User Stories by Business Rules
So my order is delivered to my home,
As an online shopper,
I want to be able to checkout the items in my shopping basket.
● Scenario: Minimum order balance
● Scenario: Delivery charge; local
● Scenario: Delivery type: standard
Operations
Splitting by Operations
So that I can add and remove viewing profiles for my family,
As a Netflix Account Owner,
I want to be able to manage the viewing profiles on my account.
● Scenario: See my list of viewing profiles
● Scenario: Add a viewing profile
● Scenario: Remove a viewing profile
● Scenario: Change the name of a viewing profile
Break up the CRUD
● Create
● Read
● Update
● Delete
- Make a profile
- Show a profile
- Change or edit a profile (name, picture)
- Remove a profile
Other Operational Thoughts
● Starting with ‘create’ (and read) allows other stories to follow
● Typically, ‘create’ (and read) are foundational capabilities of a product
● Maybe read without adding is possible
● Delete can sometimes take the place of change (delete and create new)
● Delete might allow for testability of the system
Splitting by Operations
So that I can add and remove viewing profiles for my family,
As a Netflix Account Owner,
I want to be able to manage the viewing profiles on my account.
● Scenario: See my list of viewing profiles
● Scenario: Add a viewing profile
● Scenario: Remove a viewing profile
● Scenario: Change the name of a viewing profile
Splitting by Operations
So that my family member can have a different list to me,
As a Netflix Account Owner,
I want to be able to add a viewing profile for my family member.
● Scenario: Add profile successfully
● Scenario: Error creating profile
● Scenario: Add with invalid profile name
Data
Splitting by Data
So I can decide what to order for dinner tonight,
As a Foodie,
I want to view menu item information.
● Scenario: view dish name and description
● Scenario: view dish ingredients
● Scenario: view dish nutritional information
● Scenario: view pictures of the dish
Reasons for Data Splitting
● Allows the team to determine what is essential now
● Prioritize and deliver other data later or not at all
● Data sources may trigger complex integrations
● Data may be messy or unavailable
● Data may need to be created by the team
● Data imports may require transformation, or to support a complex format
● External data dependencies can be complexities in the story
Splitting by Data
So I can decide what to order for dinner tonight,
As a Foodie,
I want to view menu item information.
● Scenario: view dish name and description
Performance
Splitting by Performance
So that I can backup my photos,
As a Photographer,
I want to upload my photos to my space on the backup site.
Performance can be a series of things:
● Volume: “only so many photos at once”
● Limits: “only so many photos in total”
● Response time: “they should be quick to upload”
● Scalability: “many users could do this at once”
● “Non-functional” requirements
Performance?
Defer Performance
● Learn by building something simple and basic that works
● Applies to lots of types of story
● Good split where the team has to do a lot of work to cope with ‘more’
● How will my solution perform? Find out!
● Learn about the feature, before optimization
● Don’t ‘sell’ to thousands before you’ve ‘sold’ to a few
● Defer this to later, knowing it might take a lot to ‘scale up’ (tech debt)
Splitting by Performance
So that I can backup my photos,
As a Photographer,
I want to upload my photos to my space on the backup site.
Splitting by Performance
So that I can backup my photos,
As a Photographer,
I want to upload 100 of my photos to my space on the backup site.
Interface
Splitting by Interface
So that I can keep in touch with my advisor,
As a University Student,
I want to be able to message them electronically.
● Scenario: Send simple text message
● Scenario: Select who to send the message to
● Scenario: Create a subject
● Scenario: Send message with formatting markup
● Scenario: Remove formatting
● Scenario: Highlight invalid to address
● Scenario: Play animation sound
● Scenario: Send via University App™
● Scenario: Send via University website
● Scenario: Send via welcome kiosks
Simple vs Complex
● KISS: Keep It Simple, Stupid - Keep the Interface Simple Stupid
● Simple presentation: No animations
● Simple layout: All on one screen
● Simple controls: No filtered or interacting drop downs
● Simple controls: No hidden buttons
● Simple feedback: Error message only appear after submitting data
vs.
Split by Interface Type
Pick one first, do the others later:
● Mobile vs. web (vs. desktop app, kiosk?)
● Screen resolution or size - mobile first web
● iPhone vs. Android (vs. Windows Mobile, Blackberry, Bada, webOS?!)
● Browser type: Chrome and Safari (vs. Firefox, Edge, Internet Explorer?!)
Splitting by Interface
So that I can keep in touch with my advisor,
As a University Student,
I want to be able to message them electronically.
● Scenario: Send simple text message
● Scenario: Select who to send the message to
● Scenario: Create a subject
● Scenario: Send message with formatting markup
● Scenario: Remove formatting
● Scenario: Highlight invalid to address
● Scenario: Play animation sound
● Scenario: Send via University App™
● Scenario: Send via University website
● Scenario: Send via welcome kiosks
Splitting by Interface
So that I can keep in touch with my current advisor,
As a University Student,
I want to be able to message them via the web.
● Scenario: Send simple text message to current advisor
● Scenario: Send via University website (Chrome only)
What Else?
Other Splitting Ideas
● Simple / complex
● Split by persona (role)
● Defer external or complex integrations
● Split on language, usability, accessibility, or design
If All Else Fails
Link to Agileforall.com
http://agileforall.com/wp-content/uploads/2018/02/Story-Splitting-Flowchart.pdf
How to Split a User Story poster
Trish Lynch
https://www.linkedin.com/in/trishly/
John Tobin
https://www.linkedin.com/in/johntobin/
@johntobin

Mais conteúdo relacionado

Mais procurados

Splitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step ProcessSplitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step ProcessStephen Tucker
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptxPaul Boos
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting PatternsKent McDonald
 
User story and splitting workshop
User story and splitting workshopUser story and splitting workshop
User story and splitting workshopBrian Sjoberg
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story WorkshopPeter Antman
 
User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013Fabio Armani
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Easy Agile
 
Cheat Sheet: 8 ways to split your user stories
Cheat Sheet:  8 ways to split your user storiesCheat Sheet:  8 ways to split your user stories
Cheat Sheet: 8 ways to split your user storiesPayton Consulting
 
Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User StoriesJaneve George
 
Invest In Good User Stories
Invest In Good User StoriesInvest In Good User Stories
Invest In Good User StoriesCraig Brown
 
User Story Mapping Workshop
User Story Mapping WorkshopUser Story Mapping Workshop
User Story Mapping WorkshopDana Pylayeva
 
User Story Smells & Anti-patterns
User Story Smells & Anti-patternsUser Story Smells & Anti-patterns
User Story Smells & Anti-patternsFadi Stephan
 
User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories  User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories Arto Eskelinen
 
Vertical Story Slicing Takes the Cake!
Vertical Story Slicing Takes the Cake!Vertical Story Slicing Takes the Cake!
Vertical Story Slicing Takes the Cake!kporemski
 

Mais procurados (20)

Splitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step ProcessSplitting Stories with the Hamburger Method - A Simple 5 Step Process
Splitting Stories with the Hamburger Method - A Simple 5 Step Process
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptx
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting Patterns
 
User story and splitting workshop
User story and splitting workshopUser story and splitting workshop
User story and splitting workshop
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story Workshop
 
User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories
 
Cheat Sheet: 8 ways to split your user stories
Cheat Sheet:  8 ways to split your user storiesCheat Sheet:  8 ways to split your user stories
Cheat Sheet: 8 ways to split your user stories
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 
User Stories Fundamentals
User Stories FundamentalsUser Stories Fundamentals
User Stories Fundamentals
 
Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User Stories
 
Invest In Good User Stories
Invest In Good User StoriesInvest In Good User Stories
Invest In Good User Stories
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
How to write good user stories
How to write good user storiesHow to write good user stories
How to write good user stories
 
Effective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum teamEffective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum team
 
User Story Mapping Workshop
User Story Mapping WorkshopUser Story Mapping Workshop
User Story Mapping Workshop
 
User Story Smells & Anti-patterns
User Story Smells & Anti-patternsUser Story Smells & Anti-patterns
User Story Smells & Anti-patterns
 
User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories  User Story Slicing - easy way to split user stories
User Story Slicing - easy way to split user stories
 
Splitting User Stories
Splitting User StoriesSplitting User Stories
Splitting User Stories
 
Vertical Story Slicing Takes the Cake!
Vertical Story Slicing Takes the Cake!Vertical Story Slicing Takes the Cake!
Vertical Story Slicing Takes the Cake!
 

Semelhante a User Story Splitting

Backlog Management & Discovery
Backlog Management & DiscoveryBacklog Management & Discovery
Backlog Management & DiscoveryTarun Singh
 
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelazXp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelazLaz Allen
 
How to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using AgileHow to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using AgileSalesforce Admins
 
Masters Academy workshop BA User stories: be simple, be useful
Masters Academy workshop BA User stories: be simple, be usefulMasters Academy workshop BA User stories: be simple, be useful
Masters Academy workshop BA User stories: be simple, be usefulMasters Academy
 
Jenny Martin - Death by User Stories | Agile Delivery 2017
Jenny Martin - Death by User Stories | Agile Delivery 2017Jenny Martin - Death by User Stories | Agile Delivery 2017
Jenny Martin - Death by User Stories | Agile Delivery 2017Kayleigh Tiernan
 
Double Loop: TDD & BDD Done Right
Double Loop: TDD & BDD Done RightDouble Loop: TDD & BDD Done Right
Double Loop: TDD & BDD Done RightJessica Mauerhan
 
Jason-Phillip Park on Creating User Stories that get your Developers Excited
Jason-Phillip Park on Creating User Stories that get your Developers ExcitedJason-Phillip Park on Creating User Stories that get your Developers Excited
Jason-Phillip Park on Creating User Stories that get your Developers ExcitedCarlos González de Villaumbrosia
 
Retaining your signups while your product... kind of sucks
Retaining your signups while your product... kind of sucksRetaining your signups while your product... kind of sucks
Retaining your signups while your product... kind of sucksKair Kasper
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...AgileNetwork
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...AgileNetwork
 
How to Create Fun User Experience by Shutterstock Dir of Product
How to Create Fun User Experience by Shutterstock Dir of ProductHow to Create Fun User Experience by Shutterstock Dir of Product
How to Create Fun User Experience by Shutterstock Dir of ProductProduct School
 
How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...Linde Vloeberghs
 
How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...Hifluence
 
Agile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approachAgile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approachAgileNetwork
 
How to spend investment money
How to spend investment moneyHow to spend investment money
How to spend investment moneyJames Kennedy
 

Semelhante a User Story Splitting (20)

Backlog Management & Discovery
Backlog Management & DiscoveryBacklog Management & Discovery
Backlog Management & Discovery
 
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelazXp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
Xp 2016 superchargeyourproductbacklogwithuserstories-suzannelaz
 
How to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using AgileHow to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using Agile
 
Story Decomposition
Story DecompositionStory Decomposition
Story Decomposition
 
Masters Academy workshop BA User stories: be simple, be useful
Masters Academy workshop BA User stories: be simple, be usefulMasters Academy workshop BA User stories: be simple, be useful
Masters Academy workshop BA User stories: be simple, be useful
 
Defining tasks for User Stories
Defining tasks for User StoriesDefining tasks for User Stories
Defining tasks for User Stories
 
Jenny Martin - Death by User Stories | Agile Delivery 2017
Jenny Martin - Death by User Stories | Agile Delivery 2017Jenny Martin - Death by User Stories | Agile Delivery 2017
Jenny Martin - Death by User Stories | Agile Delivery 2017
 
Double Loop: TDD & BDD Done Right
Double Loop: TDD & BDD Done RightDouble Loop: TDD & BDD Done Right
Double Loop: TDD & BDD Done Right
 
Jason-Phillip Park on Creating User Stories that get your Developers Excited
Jason-Phillip Park on Creating User Stories that get your Developers ExcitedJason-Phillip Park on Creating User Stories that get your Developers Excited
Jason-Phillip Park on Creating User Stories that get your Developers Excited
 
Story Time - Writing Effective User Stories
Story Time - Writing Effective User StoriesStory Time - Writing Effective User Stories
Story Time - Writing Effective User Stories
 
User Stories Training
User Stories TrainingUser Stories Training
User Stories Training
 
Retaining your signups while your product... kind of sucks
Retaining your signups while your product... kind of sucksRetaining your signups while your product... kind of sucks
Retaining your signups while your product... kind of sucks
 
Lets explore a user story, a key concept in the agile world
Lets explore a user story, a key concept in the agile worldLets explore a user story, a key concept in the agile world
Lets explore a user story, a key concept in the agile world
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...
 
Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...Agile Network India | Effective User story writing and story mapping approach...
Agile Network India | Effective User story writing and story mapping approach...
 
How to Create Fun User Experience by Shutterstock Dir of Product
How to Create Fun User Experience by Shutterstock Dir of ProductHow to Create Fun User Experience by Shutterstock Dir of Product
How to Create Fun User Experience by Shutterstock Dir of Product
 
How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...
 
How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...How getting your hands dirty with code makes you a better business leader @ V...
How getting your hands dirty with code makes you a better business leader @ V...
 
Agile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approachAgile Network India | Effective User story writing and story mapping approach
Agile Network India | Effective User story writing and story mapping approach
 
How to spend investment money
How to spend investment moneyHow to spend investment money
How to spend investment money
 

Último

OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 

Último (20)

OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 

User Story Splitting

  • 1. User Story Splitting by Example How and Why to Split User Stories for a Team Trish Lynch John Tobin
  • 2. Who Builds Stories? ● Product owner ● Also, everyone else on the team ● Whoever is involved in the story discussion!
  • 4. What’s a User Story? ● Short simple description of a feature ● Always told from the perspective of user or customer ● A collaboration tool ● Are written throughout the life cycle of the product ● Contain Acceptance Criteria or “conditions of satisfaction”
  • 5. User Story Format & Example As a <type of user> I want <some goal> So that <some reason>
  • 6. User Story Format & Example As a <type of user> I want <some goal>
  • 7. User Story Format & Example So that <some reason> As a <type of user> I want <some goal> So I know how much money I have As a Bank Account Holder, I want to view my account
  • 8. Personas ● Personas are example ‘characters’ who will benefit from your story ● They represent the types of customers or users you may have ● They’re valuable because they help illustrate who will benefit from a story ● ...and therefore HOW the team may build it (considering the persona) ● They also help with splitting! (More to come)
  • 9. Acceptance Criteria (GHERKIN) Scenario: View overdraft account, with a negative balance GIVEN: I am authenticated to the site as a Small Business Customer AND: I have an active account AND: I have an overdraft allowance AND: My account has a balance that is below $0.00 WHEN: I view the account details on the site THEN: Verify that the current balance is shown. Verify that there is an indication that the balance is below zero. Verify that I am able to see the amount of my overdraft that remains.
  • 10. ● Scenario: View account balance ● Scenario: View overdraft account, with a negative balance ● Scenario: View overdraft account, with a positive balance ● Scenario: View account, balance not available Acceptance Criteria & Scenarios
  • 11. ‘What’, not ‘How’ ● A story is about ‘what’ we want to achieve and who the outcome is for ● Avoid spelling out the ‘how’ of the solution, especially technically Less than ideal Acceptance Criteria... Verify that there’s an activate button. Verify that my negative balance is in red. Verify that I can click the checkbox to accept terms. Verify there are checkboxes to select the users I want to remove. Instead becomes... Verify that I can activate the account. Verify that there’s an indication that my balance is negative. Verify that I am able to indicate that I accept the terms. Verify that I can choose multiple users to remove at once.
  • 12. INVEST ● Independant ● Negotiable ● Valuable ● Estimable ● Small ● Testable
  • 14. Why Small? “Fits in the sprint”
  • 15. The Value of Small (or Why Small Is Beautiful) ● Getting something done, quickly, is invaluable! Reduces risk Discovery of issues Review the idea Review the experience Get more feedback Demonstrate progress (rather than no progress) Build Trust Educate about What Software Takes Learn! OODA! Better code, Better quality Refine estimates easier Adapt to discoveries Reduces waste Release earlier Improves Shared understanding
  • 16. User Story Mapping: Shop Example Product Search Save credit Card Ship to Store Save Delivery info Product Page Checkout User journey Release 1 Release 2 Release 3 Pay with Reward Points Enter Delivery Info Pay with Debit Card Pay with Credit Card Filter by category Save Search Filter by rating Filter by gender Filter by price Quick Purchase Seasonal Products Similar items Detailed Description Sale Items Purchase Option Up Sale items Product review Pay with Debit Card Pay with Reward Points
  • 17. How Do I Split?
  • 18. How NOT to do it... Story 2 Story 1 Story 1 Other stories DB FE
  • 19. Splitting - Finding the Cracks
  • 20. Splitting - Finding the Cracks
  • 23. Splitting by Workflow So I can access my accounts online, As a Business Banking Customer, I want to be able to register on the self service web site. ● Scenario...
  • 24. Acceptance Criteria - Scenarios ● Complex workflow, lots of scenarios... Login, existing user Prove account ownership by last balance Account number not found Attach account by account number Account locked or disabled Login, register new user New user password doesn’t meet standard Login, incorrect password Failed to prove ownership New user, email exists Prove you’re human New user, password doesn’t match Show landing page, account attached Not business account
  • 25. Happy Path FTW, Unhappy In Steps
  • 26. Simple Path, Enhance ● Can you simplify the happy path ● Smallest possible flow (start and end?) ● Get the product ‘working’ ● Enhance afterwards Attach account by account number Login, existing user Show landing page, account attached Assume existing account Assume they’re the owner Account number not found / Not business account
  • 27. So that I can access my accounts online, As a Business Banking Customer, I want to be able to attach a business account to my existing user login. ● Scenario: Login, existing user ● Scenario: Attach account by account number ● Scenario: Account not found or not business account ● Scenario: Show landing page, account attached Splitting by Workflow
  • 30. Splitting User Stories by Business Rules So my order is delivered to my home, As an online shopper, I want to be able to checkout the items in my shopping basket. ● Scenario: Minimum order balance ● Scenario: Delivery charge; local or outside delivery area ● Scenario: Delivery type: standard or express ● Scenario: Unavailable items may be substituted ● Scenario: Minimum/Maximum order quantity
  • 31. Rule Guidelines ● Listing the scenarios helps identify all the rules ● Prioritize most important rules first ● Defer complexity ● Learn about the basic rules before getting complicated ● Really common and important technique
  • 32. Splitting User Stories by Business Rules So my order is delivered to my home, As an online shopper, I want to be able to checkout the items in my shopping basket. ● Scenario: Minimum order balance ● Scenario: Delivery charge; local ● Scenario: Delivery type: standard
  • 34. Splitting by Operations So that I can add and remove viewing profiles for my family, As a Netflix Account Owner, I want to be able to manage the viewing profiles on my account. ● Scenario: See my list of viewing profiles ● Scenario: Add a viewing profile ● Scenario: Remove a viewing profile ● Scenario: Change the name of a viewing profile
  • 35. Break up the CRUD ● Create ● Read ● Update ● Delete - Make a profile - Show a profile - Change or edit a profile (name, picture) - Remove a profile
  • 36. Other Operational Thoughts ● Starting with ‘create’ (and read) allows other stories to follow ● Typically, ‘create’ (and read) are foundational capabilities of a product ● Maybe read without adding is possible ● Delete can sometimes take the place of change (delete and create new) ● Delete might allow for testability of the system
  • 37. Splitting by Operations So that I can add and remove viewing profiles for my family, As a Netflix Account Owner, I want to be able to manage the viewing profiles on my account. ● Scenario: See my list of viewing profiles ● Scenario: Add a viewing profile ● Scenario: Remove a viewing profile ● Scenario: Change the name of a viewing profile
  • 38. Splitting by Operations So that my family member can have a different list to me, As a Netflix Account Owner, I want to be able to add a viewing profile for my family member. ● Scenario: Add profile successfully ● Scenario: Error creating profile ● Scenario: Add with invalid profile name
  • 39. Data
  • 40. Splitting by Data So I can decide what to order for dinner tonight, As a Foodie, I want to view menu item information. ● Scenario: view dish name and description ● Scenario: view dish ingredients ● Scenario: view dish nutritional information ● Scenario: view pictures of the dish
  • 41. Reasons for Data Splitting ● Allows the team to determine what is essential now ● Prioritize and deliver other data later or not at all ● Data sources may trigger complex integrations ● Data may be messy or unavailable ● Data may need to be created by the team ● Data imports may require transformation, or to support a complex format ● External data dependencies can be complexities in the story
  • 42. Splitting by Data So I can decide what to order for dinner tonight, As a Foodie, I want to view menu item information. ● Scenario: view dish name and description
  • 44. Splitting by Performance So that I can backup my photos, As a Photographer, I want to upload my photos to my space on the backup site.
  • 45. Performance can be a series of things: ● Volume: “only so many photos at once” ● Limits: “only so many photos in total” ● Response time: “they should be quick to upload” ● Scalability: “many users could do this at once” ● “Non-functional” requirements Performance?
  • 46. Defer Performance ● Learn by building something simple and basic that works ● Applies to lots of types of story ● Good split where the team has to do a lot of work to cope with ‘more’ ● How will my solution perform? Find out! ● Learn about the feature, before optimization ● Don’t ‘sell’ to thousands before you’ve ‘sold’ to a few ● Defer this to later, knowing it might take a lot to ‘scale up’ (tech debt)
  • 47. Splitting by Performance So that I can backup my photos, As a Photographer, I want to upload my photos to my space on the backup site.
  • 48. Splitting by Performance So that I can backup my photos, As a Photographer, I want to upload 100 of my photos to my space on the backup site.
  • 50. Splitting by Interface So that I can keep in touch with my advisor, As a University Student, I want to be able to message them electronically. ● Scenario: Send simple text message ● Scenario: Select who to send the message to ● Scenario: Create a subject ● Scenario: Send message with formatting markup ● Scenario: Remove formatting ● Scenario: Highlight invalid to address ● Scenario: Play animation sound ● Scenario: Send via University App™ ● Scenario: Send via University website ● Scenario: Send via welcome kiosks
  • 51. Simple vs Complex ● KISS: Keep It Simple, Stupid - Keep the Interface Simple Stupid ● Simple presentation: No animations ● Simple layout: All on one screen ● Simple controls: No filtered or interacting drop downs ● Simple controls: No hidden buttons ● Simple feedback: Error message only appear after submitting data
  • 52. vs.
  • 53. Split by Interface Type Pick one first, do the others later: ● Mobile vs. web (vs. desktop app, kiosk?) ● Screen resolution or size - mobile first web ● iPhone vs. Android (vs. Windows Mobile, Blackberry, Bada, webOS?!) ● Browser type: Chrome and Safari (vs. Firefox, Edge, Internet Explorer?!)
  • 54.
  • 55.
  • 56.
  • 57. Splitting by Interface So that I can keep in touch with my advisor, As a University Student, I want to be able to message them electronically. ● Scenario: Send simple text message ● Scenario: Select who to send the message to ● Scenario: Create a subject ● Scenario: Send message with formatting markup ● Scenario: Remove formatting ● Scenario: Highlight invalid to address ● Scenario: Play animation sound ● Scenario: Send via University App™ ● Scenario: Send via University website ● Scenario: Send via welcome kiosks
  • 58. Splitting by Interface So that I can keep in touch with my current advisor, As a University Student, I want to be able to message them via the web. ● Scenario: Send simple text message to current advisor ● Scenario: Send via University website (Chrome only)
  • 60. Other Splitting Ideas ● Simple / complex ● Split by persona (role) ● Defer external or complex integrations ● Split on language, usability, accessibility, or design
  • 61. If All Else Fails