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?)
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.