Agile – Many user stories share the same technical tasks: what to do

agileestimationplanning

A little introduction to my case:

As part of a bigger product, my team is asked to realize a small IDE for a DSL. The user of this product will be able to make function calls in the code and we are also asked to provide some useful function libraries.
The team, together with the PO, put on the wall a certain number of user stories regarding the various libraries for the IDE user.
When estimating the first of those stories, the team decided that the function call mechanism would have been an engaging but not completely obvious task, so the estimate for that user story raised up from a simple 3 to a more dangerous 5.

Coming to the problem:

The team then moved to the user stories regarding the other libraries, actually 10 stories, and added those 2 points of "function call mechanism" thing to each of those user story.
This immediately raised up the total points for the product of 20 points!
Everyone in the team knows that each user story could be picked up by the PO for the next iteration at any time, so we shouldn't isolate that part in one user story, but those 20 points feel so awfully unrealistic!

I've proposed a solution, but I'm absolutely not satisfied:

We created a "Design story" and put those annoying 2 points over it. However when we came to realize and demonstrate it to our customers, we were unable to show something really valuable for them about that story!

Here the problem is whether we should ignore the principle of having isolated user stories (without any dependency between them).

What would you do, or even better what have you done, in situations like this?


(a small foot-note: following a suggestion I've moved this question from stackoverflow)

Best Answer

If you need to estimate several user-stories that have some elements in common, but you don't yet know in which order these stories are to be implemented, then I would split the tasks that make up each story into three groups:

  1. Common tasks, needed once: Tasks that occur for multiple stories, but which only have to be actually done only once for the first story. The mentioned function call mechanism would probably fall in this category.
  2. Common, repeated tasks: Tasks that occur in multiple stories and have to be executed anew for each story.
  3. Specific tasks: Tasks that are specific for a particular story.

Then you estimate each task, where the common tasks should be estimated only once.

In the presentation to the customer/PO, I would give two estimates for each story: One with all the "common, needed once" tasks included and one with them excluded.
Just keep a detailed accounting of the tasks, their classification and estimation at hand if the customer wants more detailed information about the difference between the estimates. The tasks themselves are not negotiable, but knowing about them could help the customer/PO, especially if the set of common tasks is not the same for each story.