In my last entry, I quoted the ‘Invest’ acronym as a possible way to remember and assess whether or not User Stories are good.
The *I* in ‘Invest’ stands for Independent. Ideally a User Story would be as small as possible, without making it dependent on other Stories.
I recently posted an Example of a User Story. In the next few entries, I’m going to use the ‘Invest’ acronym to assess whether or not this example is any good?
So, first, let’s take a look at whether it’s Independent? Personally I see a problem already. In my example of a User Login story, I included a link for ‘Forgotten Password’, but this is actually a separate story that isn’t covered on the card.
When I did this example, I deliberately didn’t include the forgotten password feature, in order to keep the story small and fit it on the card. But I did put the forgotten password link on as a reminder of the related story.
If a developer implemented this story as per the card, the forgotten password feature would be a broken link until the related story was implemented. If the Sprint or iteration had finished with the Login story completed and not the Forgotten Password story, the product would not be shippable. Therefore this is not a good example of a User Story that is Independent.
If, however, I had left the link off of this story, and included it on the Forgotten Password story instead, the Login story could have been implemented in its entirety without reliance on other features that may or may not be completed.
So, unfortunately for me, I’ve failed on the first test! My example User Story is not Independent and the ‘Invest’ acronym would have helped me spot that straight away. I wonder how I’ll do on the other points?