User Stories are derived from XP (Extreme Programming), however they can just as easily be used for requirements gathering in any agile development methodology, or indeed in any home-grown development process.
A User Story is a simple statement about what a user wants to do with a feature of the software, written from a user’s perspective. A User Story should not use technical jargon or state design goals. User Stories should be written in business language that is understandable to all.
A User Story should focus on the who, what and why of a feature, not how.
For example, on a job site, two high-level User Stories might be:
This is a useful construct to give a consistent shape to User Stories, and to act as a constant reminder to focus on who, what and why:
As a [user role], I want to [goal], so I can [reason].
Some people may consider the third part of the construct to be unnecessary. However I think it’s good to state the user’s motivation for using the feature, because:
(a) it gives clarity as to why a feauture is useful;
(b) it can influence how a feature should function;
(c) it can give you ideas for other useful features that support the user’s goals.
At the start of a project, capture an initial list of User Stories up-front. In Scrum this would be the initial Product Backlog. This feature list is useful for estimating and planning. But defer capturing all the details until the story is prioritised and due to be developed in the next Sprint or iteration.
In meetings with users (or user representatives), users will often tell stories about the failings of their current system or process. Or they might tell stories about how they see things working better in future. Try capturing these stories as User Stories. On cards. While you’re in the meeting. As they are told.
In traditional development projects, these stories often aren’t captured as they are told, they’re captured in a lengthy analysis process and captured in a lengthy document; a format that isn’t particularly user friendly.
Using User Stories, you might be surprised just how easy it is to leave a meeting with users, with their key requirements already captured.