User Stories vs Use Cases

User Stories and Use Cases have the same aim, to describe a system in sufficient detail for a programmer to develop a useful application for the stakeholders.

User Stories rely on “conversations” between the product owner and the team, so the level of documentation can be poor as the system develops. Whereas with use cases the design work is documented up front so the system is more fully documented.

Having worked with clients using both highly structured use cases peppered with UML/OCL, and Scrum with user stories and acceptance criteria, I find myself wondering which is preferable and how can we combine the two to avoid the most common pitfalls.

Assuming that the requirements are defined at a high level, I have found that although user stories deliver the system or increment to the system that the business user (product owner) wants, including the ability to make adjustments and amendments quickly and easily during development, there is frequently no documentation as to the final structure of the system. This can prove problematic when trying to produce enhancements or trace faults. User stories are not updated, new stories are written, so if a change is required it is difficult to follow what needs changing and how. Use cases provide a model of how the system has been developed. When changes are made they are fully documented so the use cases are always an up-to-date description of system scope and behaviour.

We need to find a balance between the adaptability of user stories and the descriptive power of the use case. The more detail in the use case, if written up front, the more it contradicts the object of agile development where the developers have more leeway in the design process. By creating small informal use cases with simplified flows, not describing user interfaces or data formats in great detail but using wireframes and prototypes, it should be possible to convert them into user stories for the product backlog. Could we include the user stories within the use case, strengthening the documentation and providing a history of the development? Could we end up with User Cases or Use Stories?

Share |