In Scrum, requirements are commonly expressed as user stories. But is it OK to also make use of use cases in Scrum? And, if so, under what circumstances should you do so?
Some user stories defy easy assignment of their benefits to a particular person. But how can we satisfy the standard "As a ... I want ... so that I can ...." user story template if we can't express who wants this work done?
In a recent thread on the Scrum Development mailing list, Paul Battison asked whether his team should re-estimate completed stories after the sprint is done, so as to have the team's velocity reflect the actual effort that went into completing the stories.
Do you consistently have stories that don't meet your "definition of done" at the end of your sprints? Is the team tieing the hands of the product owner?
Is slicing stories in horizontal tasks an Agile Smell? Is this common habit used in Scrum/Agile Planning meetings - hurting a team's focus on customer value? What is being suggested instead?
The Agile community is developing consensus around three important areas of practice: requirements gathering, agile coaching, and open space formats for group learning. At the recent Scrum Gathering, these topics were prominent topics of discussion on Day 1, Day 2, and Day 3 of the event. InfoQ explored each of these further to gain a better understanding of their place in Agile.
In this interview with Jeff Patton at Agile 2008, he talks about three strategies that can help product owners do their job more effectively by embracing the inherent uncertainty in all software development. Namely they are understanding the ultimate goals of the project, delaying decisions until the last responsible moment, and scaling up by building quality.
The Scrum notion of 'backlog' is a single, prioritized list of user stories for the team to implement. This works well for organizing what the team should work on in the near term, e.g. during sprint planning. At the Orlando Scrum Gathering, Jeff Patton described story mapping. This is a way of organizing stories that provides richer context and can help with release planning.
Anyone who has spent any time on an effectively executed agile project can attest to the fact that the Product Owner's (or, in XP, the "Customer's") collaboration with the development team plays a key role in the success of a team. Peter Stevens offers a bit of advice to help people in these roles do this well.
Dean Leffingwell, author of Scaling Software Agility and Chief Product Methodologist at Rally, has concluded that Use Cases can be a valuable tool to model requirements for a large-scale Lean/Agile Project. Use cases are not commonly encountered in Lean/Agile (especially XP and Scrum), where stories are the requirements gathering tool of choice.
Developers commonly break user stories into tasks to facilitate distributing the implementation work across the team, and allow tracking of progress at a finer level of granularity. Unfortunately, a story can explode into a list of non-trivial tasks so large that the story is not deliverable by the end of the iteration. Ron Jeffries suggests: "Do stories as a unit, not broken into tasks."
A widely accepted agile practice is the daily standup meeting, in which each team member shares: what they have done since the previous standup, what they expect to achieve by the next, and anything that is getting in their way. Mike Cohn recently examined variations that shed additional light on the progress being made toward completing each user story.
User stories are better than use cases - right? Not necessarily. It depends on whom you ask. There are definite benefits to user stories as they encourage conversation and discourage the "throw over the wall" mentality of more heavy-weight requirements documents. But do they have drawbacks?
One of the great things about working as a consultant is the ability to try out many different ideas and adapting your personal favorite process to include things that work. This article gives the details about user story estimation techniques that Jay Fields has found effective.
User stories, a common format for capturing agile requirements, could be more focused on business value. A traditional format for stating a user story is: "As a <type of user> I want <some functionality> so that <some benefit>." A value-centric replacement would be: "In order to <achieve some value>, as a <type of user>, I want <some functionality>."