Our dev team keeps finding ourselves in a scenario where we have multiple stories, none of which actually provide usable value by themselves. In order to deliver any real world value, we need to complete a bunch of them together. If grouped together into larger stories, they are too large and unpredictable, and if any of them remains unfinished we cannot deploy the lot.
Simple Example
The user needs to be able to log in to an account section of the website, to see their orders and manage their profile.
We would attempt to break this down into small stories which focus on one piece of functionality each. Maybe something like this, with example sizes:
- As a user I can log in (2)
- As a user I can log out (1)
- As a user I can view a list of my orders (3)
- As a user I can view my personal profile (2)
- As a user I can edit my personal profile (2)
We could deliver just the login functionality, but without an account section to actually log in to, what's the point? Similarly, what's the point of having a login without a logout function? So should we then have one large story which involves logging in, logging out, and viewing the list of orders? In such a case, the size probably becomes 8 points. We have found that stories over 5pt don't work well for us and often derail the sprint because the estimate was inaccurate.
If we finish the sprint and you cannot view a list of orders yet, most of the other stories are sort of useless until the end of the next sprint when those are finished. This then doubles the amount of time (2 sprints) until we can actually deliver some value to the client.
Another issue here is we don't know where to include the effort required to build the "account" section itself. It needs a general page design, maybe a menu, at minimum. In order to view a list of orders, we need some sort of account page/section designed and built as well. Where should that work be included? It doesn't seem right to me to have a "build account section" story, which doesn't actually have anything other than a blank page with a menu, let's say.
If we were to for some reason add the "build account section" work into the "view orders" story, how does one then complete the "view personal profile" story, which also needs that account section built?
How should we write stories which cover the requirements? How do we eliminate the dependencies they have on each other?