Saturday, July 12, 2008

User Stories: you're not Agile without them

Failure to effectively transition to Agile development is often based on a fundamental failure to understand what a User Story is.

Allow me to explain.

The most important aspect of a User Story is that it's an independently *schedulable* unit of requirement (feature). The key to achieving the "independently schedulable" characteristic of a user story is that you express it in terms of how a "user" would use it. This leads you to a unit of functionality that's implemented end-to-end (UI to backend) that a user can actually interact with.

Not surprisingly, because of the focus on how a user would think about a feature, a user stories are highly readable - and could very well be written by the users themselves. However, the other important and less obvious aspect of a User Story is the emphasis on communication with the end-user and getting confirmation on the acceptance criteria.

Describing all the requirements as User Stories for a decent sized product is rigorous, intensive work, because of their granularity. It also shifts the responsibility - for making sure that the product does what it's supposed to - into the hands of the Product Owner (a.k.a. Product Manager). In other words, a user story forces you to acknowledge that the main responsibility for most bugs lies not with the QA, not with the developers, but the process of expressing requirements (by the Product Manager) in units of work that can be independently implemented (by the Developers) and exhaustively verified by the QA team.

I strongly recommend the following two articles by Mike Cohn for more on User Stories:

1. Advantages of User Stories for Requirements

2. Advantages of the “As a user, I want” user story template

No comments:

Post a Comment

Is the world upside down?

Is the world upside down?
It's a topsy-turvy world out there!