Thursday, November 3, 2016

Story Splitting – Part 3

Story Splitting – Part 1
Story Splitting – Part 2



In previous post, we explored how a story can be split into multiple stories using Business approach. In this blog post, we will be deep diving in to Technology approach.

Technology approach based story splitting is visualizing stories from technology perspective.



Path 1 (NFRs): A story might have many NFRs ( non-functional requirements). Team may decide to focus on few NFRS now while leaving remaining for future. A story might also have many NFRs, team may decide to choose few and remaining for latter. Thirdly, team may decide to relax stringent NFRs for now and will come back to tighten them later. For example:
As a user,
I want to see login page within one second of clicking submit button,
so it can login  faster.
In this story, you have rightly spotted that NFR is very stringent which requires optimization across the board in the application. You  may split  this story into multiple stories. Each successive story tightening the NFRs in progressive fashion.
As a user,
I want to see login page within five second of clicking submit button,
so it can login  faster.

.
As a user,
I want to see login page within two second of clicking submit button,
so it can login  faster.

As a user,
I want to see login page within one second of clicking submit button,
so it can login  faster.
Path 2 (CRUD): A story might be performing all four create, read, update and delete operations. You can split this type of story into four or less stories focusing on a single or more operation/s.
As an administrator,
I want to create, read, update, and delete users of the application,
so I can manage app users.
This story can be split in four stories but for brevity, here is split into three.
As an administrator,
I want to create app users,
so I can perform a part of user management.

As an administrator,
I want to see read and update app users,
so I can perform a part of user management.

As an administrator,
I want to delete app users,
so I can perform a part of user management.
Path 3 (Data Variation): Depending on data source or variation in data coming into application, you can split the story.
As an administrator,
I want to store data coming from facebook and twitter to create prospects’ profile,
so I can keep my prospects profile up to date.

As an administrator,
I want to store data coming from facebook to create prospects’ profile,
so I can keep my prospects profile up to date.

As an administrator,
I want to store data coming from twitter to create prospects’ profile,
so I can keep my prospects profile up to date.

Path 4 (Horizontal and Vertical split): Lot of tech people narrow down on layering of software which results in horizontal slicing of software along the lines. The common symptom of these type of story is “noting to demonstrate” by team for lot of stories as UI is still not developed. This type of stories results in technology silos. On the other hand, vertical stories cut through the technologies and focus on functionality.




This technique is really is not for split but writing of stories along the functionalities.
Path 5 (Test Scenarios): If team is doing Story Test Driven Development (STDD),   you can split the stories as per the tests.
As a customer,
I want to pay my purchases using a credit card,
so I enjoy my purchase.
This story might have tests on the basis of acceptance of cards from following networks:
a.       Visa Card
b.      Master Card
c.       American Express Card
d.      Discover Card
e.      Capital One
f.        JCB
g.       China UnionPay
h.      RuPay
You may split above story as per the tests of mentioned credit card networks.
Path 6 (Tech Challenge): Some stories might be technically difficult to implement. You may split this story along the challenges thrown by it. Some of the reasons of this challenge might be lack of skill, new technology; problem in hand is difficult, etc.  Few challenging stories might turn into spike as well.
As a marketing manager,
I want to find change in probability of purchasing our product by targeted prospects after running a campaign,
so I can utilize marketing budget effectively.
During the analysis of above story team realized that data about prospects is in Hadoop file system and one of the step in algorithm is running Monte Carlo analysis. Team has never performed such kind of work especially performing Monte Carlo analysis in Hadoop file system. To overcome the technical challenge, team may decide to split above story into two stories and one spike.
As a marketing manager,
I want to find change in probability of purchasing our product by targeted prospects after running a campaign (exclude Monte Carlo analysis from the algorithm),
so I can utilize marketing budget effectively.

Spike: Run Monte Carlo analysis in Hadoop file system

As a marketing manager,
I want to find change in probability of purchasing our product by targeted prospects after running a campaign (include Monte Carlo analysis in the algorithm),
so I can utilize marketing budget effectively.
Path 7 (Browser Compatibility): In some cases you may find that one of the requirement of your story is making it compatible to various browsers as well as various version of same browser. You may split a story on the basis of different browsers and/or versions of same browser.
Path 8 (Build vs. Buy): In some cases you may find that within a story you might have to make a build vs buy decision or help someone to make the decision.  You may like to split the story on the lines of build vs buy line.
In this post I discussed how to split a story keeping the technological aspects in the fore front. In the next post I will be discussing some miscellaneous cases of story split as well as some thumb rules.


No comments:

Post a Comment