Sunday, September 09, 2012

Splitting User Stories vs. Rally's "split" feature (that has nothing to do with it!)


I recently came across a "split" feature in the popular Agile tool Rally that they recommend to handle unfinished work.
Below are my observations on the "Split" feature in Rally (following by a few excellent articles on Splitting User Stories):

This has numerous problems:

1. Nothing to do with Splitting User Stories
It has nothing to do with "Splitting a User Story" which is an advanced but fairly well-understood field in Agile, and a tool for Product Managers to use in one of the two scenarios:
  • The Product Manager does it before an Iteration commences (i.e. during backlog creation or release planning) to create User Stories by business value that are right-sized, i.e. they can be comfortably implemented inside an iteration;
  • The Product Manager does it in Iteration Planning or in the middle of an Iteration to reduce scope by removing/simplifying acceptance criteria, in response to the actual progress of the team or other factors (including external factors).
2. A clumsy accounting gimmick
The "Split" feature in Rally is a misnomer that has nothing to do with the elegant and valuable technique of Splitting User Stories Agile teams use to deliver valuable product functionality iteratively. The Rally "Split" is a clumsy "accounting" tool (and a bad one at that), meant to attach value artificially to completed tasks and incomplete User Stories! It has nothing to do with splitting a user story intelligently by a Product Manager for business value.

3. Not doing User Stories anymore 
Even if the goal is to do this so called "split" merely for accounting reasons, there are several problems with it:
  • You could be double counting the points! Some teams gets double the credit for a User Story when it doesn't finish it in an Iteration.
  • You're not doing User Stories any more. You just have two shells that wrap two groups of related tasks.
  • It establishes a bad precedent, incentivizes bad behavior and does not challenge a team to get better:  
4. Why bother with: 
  • Spending time & effort thinking your User Stories through
  • making them follow the INVEST principle
  • keeping them small enough so that they can be DONE within an iteration
  • pushing the envelope on how far you can take your "Definition of DONE" (from Dev complete to Live in Production - and beyond)
  • responding intelligently to change in business or realities of a team's velocity
- when you can simply chop a story at the end of the iteration with one button click AND get credit for tasks completed (waterfall anyone?) that don't deliver any business value AND get double points for the User Story when it does get completed!

NOW, here are some really good articles and sources for good ways to Split User Stories:

1.       How you'll probably learn to split features
http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features

2.       Ways to split User Stories - the Good, the Bad, and the Ugly
http://lassekoskela.com/thoughts/7/ways-to-split-user-stories/

3.       Patterns for Splitting User Stories
http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories

No comments:

Post a Comment

Is the world upside down?

Is the world upside down?
It's a topsy-turvy world out there!