Splitting user stories

1353683732_2I had a situation where I need to find out ways to split the user stories. (This was after I instructed the team to write high-level user stories (whew)).  This was due to the complain from developers that user story is too big to estimate.

Then it was time to go back to theory. Where to look? My first preference to look in to Agile Estimation and Planning from Mike Cohn as usual and I was not disappointed there.  I found all what I need. This note is re-write the points in that book. But this is to challenge myself on an example to apply the knowledge I gained from the book.

(Photo: http://baltazar.org.ua/uploads/posts/2012-11/1353683732_2.jpg)

So let us take this mock up from http://www.cutterscrossing.com/images/cart-pt1.png as an example. We have got single user story saying

As the sales manager I want the following shopping cart So that my customers can order product online.”

cart-pt1

You can decide how successful I am on this.

Splitting on data boundaries

This seems to be the very natural out of all the suggestions. I was able to divide the epic based on Item details, discount, order summary, addresses, shipping method and payment methods. These are some of the user stories that I came up. Not the whole lot.

  • As the sales manager I want the ordered items to be shown in the shopping cart So that my online customers can see what they have ordered now
  • As the sales manager I want my online customers to see that discount details in the shopping cart it self So that can be happy about discounts they receive
  • As the sales manager I want to order amount summary in the shopping cart So that my online customers knows how much they have to pay in total

Splitting on operational boundaries

This approach is also seems to be very useful in splitting our example user story. Some user stories I came up,

  • As the sales manager I want the ordered items to be shown in the shopping cart So that my online customers can see what they have ordered now (note this user story seems to be common for both the approaches )
  • As the orderer I want to enter discount codes for my order So that I get a discounted price
  • As the orderer I want to select different billing and shipping addresses So that I can get the goods to my parents home instead my home
  • As the orderer I want to have many different shipping options So that I can get special discounts/expiditated shipping for my order
  • As the orderer I want to select different payment methods So that I can be flexible on my cash flow

Splitting on performance (non-functional) boundaries

I found this approach is not much relevant but this is what I came up with.

  • As the sales manager I want something working as a online shopping cart  as first cut of it So that I can give feedback
  • As the sales manager I want the shopping cart to be in line with my corporate theme So that I can go to the market with ti
  • As the sales manager I want to shopping cart to load within 1 seconds under the specified conditions So that this can be faster than my competitors shopping cart
  • As the sales manager I want the shopping cart to stand a possible denial of service attack from my competitors So that I can stand out in the competition

Splitting on priority

As described in the book, we can easily divide the epic based on priority. I assume functionality like different shipping methods, payment methods, etc. are with less priority.

  • As the sales manager I want the basic shopping cart functionality as specified So that I can test out the concept in the market
  • As the sales manager I want to provide different shipping methods later So that I can be flexible to my online customers
  • As the sales manager I want to provide different payment methods later So that I can be flexible to my online customer payments

Splitting on common activities

This was difficult to come up with the user stories but thinking a bit and reading the book again, I came up with this.

  • As the sales manager I want a basic shopping cart functionality as specified So that I can test out the concept in the market
  • As the sales manager I want to add validations to user inputs later So that I have the correct data in to the shopping cart
  • As the sales manager I want to validate whether entered credit card is a valid card So that I stop fraud
  • As the sales manager I want see a log of anonymous usage data of the shopping cart So that I can know the success of the functionality

As summary the chapter 12: splitting user stories was very useful and I really enjoyed reading it.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s