Wednesday, November 2, 2016

Story Splitting – Part 2


 
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