How is a customer able to write a small enough story?

Kanban Development Oversimplified mentions this possible issue with story cards, and it got me thinking:

Product owners are often asked to break down stories to a level where a single story becomes meaningless. To keep track of what’s meaningful to them and other stakeholders, they often need to keep track of bigger items such as the features of the product and how many stories contribute to building up that feature.

I haven’t read User Stories Applied, yet — it’s definitely on my list. But can I ask this question anyway? (I wish I knew why I find this stuff so fascinating.)

If the customer writes the story, it should be at a scale a non-technical person can think about, right? Why would they know how to break it down into programmable bits? Why wouldn’t it be about features?

The Business Analyst has the job of helping the customer’s story make sense to programmers, and technical issues make sense to customers. Right. But I am still left wondering whether & how the size of a story that makes sense to business might match the size of a story that makes sense for a pair of programmers to tackle at one sitting? And how does that relate to the size that a unit-test will fit? (Not at all?)

GeePawHill sez…

The theory of the ‘customer’ and ‘the stories’ and ‘the planning game’ is one of the least happy aspects of XP as written.

To begin with, suffice to say that the interface between business value and geek joy is fundamental to our success. This is urgent stuff.

Let me identify two separate problems:

1. XP customering is a full-time job. It’s hard to be on the line with users and simultaneously on the line with developers. Among other complicated tasks, the customer has to represent the users to the team and to the board and to marketing. In her copious free time, yo.

2. XP customering requires bringing stories to the level of granularity needed by development, which is quite small. If you take a typical feature, i.e. a checkbox on the back of the box, you may be talking dozens of smaller stories to make it up. Breaking large features into small stories is a knack, and not everyone has it.

So what to do? I usually create a customer “sub-team”, composed of business analysts and testers and UX folk, and occasionally system architects or analysts. That group answers to the official titular customer. Their job is to work day-by-day with developers to identify and test the stories making up features.

Sidebar: It is imperative that we do the story-slicing and use the stories as independent entities when planning. If we don’t, we’re just doing our work by feature, and when shipday comes, we’ll have an entire feature missing from our product. (I just checked my blog. I don’t have the piece on the declining value curve yet. As soon as I do, I’ll come back and fix up a link here.)

Oh, and microtests. Microtests are way smaller than features and stories. A given story might have dozens of microtests around it. The micro’s are often aimed at things the story never even mentions.

2 thoughts on “How is a customer able to write a small enough story?

  1. Sean McMillan

    XP used to call it the “Planning Game”. I think that’s a good metaphor, because we can think of certain options as “moves” that the players can take. One of the developer’s moves is to ask the customer to split a story.

    Properly sized stories come out of the interplay between development and customer — The feedback that a story is too big is the official trigger. Of course, over time, customers get a feel for what the right size is, and stories show up in bite-sized chunks.

    Story contents should be based on user facing concerns; you almost never want to break a story down into “build database table, build middleware, build web screens”. That’s a technical breakdown which doesn’t provide user value. However, during development, we might break a story down into chunks that are too small to be releasable, while still being incrementally better. For example, a pizza ordering system could be broken down like so: place cash order for pick-up, place credit card order for pick-up, place delivery order. You’d never go live without delivery, but you can see increasing functionality at each step.

    I saw an article on this recently… Here it is:
    Patterns for splitting stories.


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>