Search code examples
refactoringagilescrumuser-stories

How to break a user story that changes something huge internally e.g. underlying data access layer


We have a few products with one of the product use flat files for persistence.. Other products in the suite can use that data (via API) but only one at a time..

We cannot put the whole files in DB as its huge data.. 20GB+.. but still we have found a solution where some data can be put in DB.. e.g. user interpretations, meta info, markups etc..

So the story is like:

"As a user i can concurrently access product A data from product B, C and D". That is huge i.e. approx 6-8 months

Even if I keep it as "As a user i can concurrently access product A data from product B". It’s still huge.. i.e. approx 5-6 months

Even doing like following, It’s still huge.. "As a user i can concurrently access feature X of product A data from product B". i.e. approx 4-5 months.

The problem is if we can do one thing (one feature, one product) we can quickly do all..

how can i break this story into sub-stories.. or should i accept that some stories cannot be further broken into sub-stories that can fit in one iteration.

PS: we use scrum


Solution

  • Ask yourself (and your team): What makes the story so big? Is there absolutely no benefit that can be shown along the way? Features and products would be the obvious cut, but might not necessarily (as you've shown) be good enough.

    How about sub-components of the feature? What are you putting in? Is any of it externally visible or valuable?

    Do you have authentication, configuration, or other "standard" aspects of the product? You could cut those out and put them as user stories.

    Perhaps the 3-5 month features can be cut down further?

    Anyway,

    I hope this helps,
    Assaf.