In previous post, we explored how a story can be split into
multiple using Grammar approach. In this blog post, we will be deep diving to
Business approach.
Business approach
based story splitting looking for delivering smaller chunks of business value
in pieces.
Path 1 (Business Rule
variation): Story might have a business rule which is covering many
scenarios. You can split the story along the lines of business rule variation.
For example:
As a medical practitioner,
I want to add the patient information in order
to create a new patient file.
So it can be accessed later.
And
rules like:
1. The following
information must be entered in the record of each patient: (i) First name and
Last name; (ii) address; (iii) date of birth; and (iv) gender;
2. Data must be synced
with the Mater Data Management system in real time.
In this story, you have rightly spotted two rules. First
rule talks about what data is required to be entered and second is about the
data sync with MDM. Now you may now split this story along the business rules.
As a medical practitioner,
I want to add the patient information in
order to create a new patient file.
So it can be accessed later.
And
rules like:
1. The following
information must be entered in the record of each patient: (i) First name and
second name; (ii) address; (iii) date of birth; and (iv) gender;
2. Data must be
synced with Mater Data Mgmt. system in real time.
As a medical practitioner,
I want to sync the patient information
entered in above story with MDM in real time
So it remains consistent across the
systems.
Path 2 (Happy-Unhappy
Flow): A story might have a happy or an unhappy flow. You can split the
story along the happy and/or unhappy lines. For example:
As a player,
I want to load the latest game details if a
network connection is available otherwise load only from local repository.
So that I can play the game irrespective of
availability of a network.
In this story if there is a happy condition (network is
available) and unhappy condition (network is not available). You may split
story along these lines:
As a player,
I want to load the latest game details if a
network connection is available.
So that I can play my game.
As a player,
I want to load game details from local
repository only if a network is not available.
So that I can play my game.
Path 3 (Multiple
Roles): A story may have mention of more than one role in all three parts
of it. You may split story for each role.
As a player,
I want to publish my strategy.
So that I can be reviewed by team players as
well by observers.
In part 3 of above story, team players and observers are two
roles. The two potential stories after split are:
As a player,
I want to publish my strategy.
So that I can be reviewed by team players.
As a player,
I want to publish my strategy.
So that I can be reviewed by team players
as well by observers.
Path 4 (User
interface complexity): A story may have complex interface which makes it
quite big. You may split story into multiple story based on partial
implementation of whole UI.
As a network administrator,
I want to view all servers, routers, firewalls,
and mobile devices in their own tabs in the dashboard page.
So that I can have overall picture on a single
page.
You my split this story into multiple based on tabs.
As a network administrator,
I want to view all servers and routers in their
own tabs in the dashboard page.
So that I can have overall picture on a
single page.
As a network administrator,
I want to view firewalls and mobile devices
in their own respective tabs in the dashboard page.
So that I can have overall picture on a
single page.
Path 5 (User
interface variation): A story may have individual interfaces for each
device. For example for a story has UIs catering to web browser, android
devices, iphone/ipad, and web service based interfaces.
As a network administrator,
I want to view dashboard on android as well as
iphone.
So that I can view dashboard on the go.
You may like to split the story based on device specific UI.
As a network administrator,
I want to view dashboard on android.
So that I can view dashboard on the go.
As a network administrator,
I want to view dashboard on iphone.
So that I can view dashboard on the go.
Path 6 (Operation
variation): A story may have multiple operations. The story can be split
along the business operations. For example team is developing a scientific
calculator. One of the story talks about development of simple arithmetic
operations.
As a calculator user,
I want to perform simple arithmetic operations
addition, subtraction, multiplication and division),
So that I can perform simple arithmetic
calculations.
You may like to split the story based on operation
variations.
As a calculator user,
I want to perform addition operation,
So that I can perform additions.
As a calculator user,
I want to perform subtraction operation,
So that I can perform additions and subtractions.
As a calculator user,
I want to perform multiplication operations,
So that I can perform additions,
subtractions and multiplications.
As a calculator user,
I want to perform division operation,
So that I can perform simple arithmetic calculations
(addition, subtraction, multiplication and division)
A user story can also be split on the basis of automation
and human intervention.
As Operation Lead,
I want to generate credit card file at 5 PM PT
every day and FTP to payment gateway server,
So that credit card payments are processed
regularly.
You may like to split the story based on automatic vs human
intervention.
As Operation Lead,
I want to generate credit card file at 5 PM
PT every day (we will manually FTP it to payment gateway server),
So that credit card payments are processed
regularly.
As Operation Lead,
I want to FTP the generate credit card file
at 5 PM PT every day to payment gateway server,
So that credit card payments are processed
fully automatically.
Path 7 (Huge Business
value): A story may carry a huge business value due to its core and
associate functionalities. This type of stories can be split into core and
periphery business functionalities. For example, a story talks about accepting
payments on an e- commerce site via credit cards. This story also mentions that
while making payment user is presented split his payment among four other( four
is maximum number) credit cards. In this story core business function is
accepting payment while spliting payment is associated business functionality.
As a customer,
I must be able to pay using credit card and
should be able to split my payment among maximum four more credit cards,
So that I can purchase merchandise.
You may like to split the story based on core and associated
business functions.
As a customer,
I must be able to pay using credit card,
So that I can purchase merchandise.
As a customer,
I must be able to pay using five credit
cards (split the payment among five different credit cards),
So that I can purchase merchandise and
manage my credit cards.
Path 8 (Optimize Now
or Later): A story may be optimized on various scales. To split a story you
may choose few scales now and remaining for later.
As a user,
I must be able to view searched books’ title with its rating,
price, front page image, genre, author name and link to similar books within 5
seconds of click,
So that I make a choice.
While analyzing the code and data structure, team realizes
that images are stored at different database which is slow but thumb image
retival is fast and can meet the 5 second criteria if search result is
restricted to 20 books in a query.
As a user,
I must be able to view searched books’ title with its rating,
price, front page image (thumb), genre, author name and link to similar books
within 5 seconds of click (per page only 20 books, use pagination),
So that I make a choice.
As a user,
I must be able to view searched books’ title with its rating,
price, front page image, genre, author name and link to similar books within 5
seconds of click (per page only 20 books, use pagination),
So that I make a choice.
Path 9 (Workflow
steps): A story might be encompassing a work flow. You may split this story
on the basis of work flow steps, and corner cases of work flow. You may also
implement simple work flow now and then beef up it later. Essentially this
technique should be used to decompose a feature into multiple stories until
work flow is pretty small in itself.
No comments:
Post a Comment