I have been making use of the concept of user stories on my current project. Although we have a functional specification document, we are still asking our users to write user stories for each module in our specification. I have found the user story to be a great tool for helping my team understand what it is that the user is trying to accomplish. The functional specification has some great detail, but the user story seems to always flush out small details prior to development that had we relied on the specification alone, we would have missed until testing.
The user stories we request from our client includes a short description of the functionality, a notes area for key points, and a list of client acceptance tests. This list of tests should be, from the user perspective, what the user expects to see happen before they consider each module to be complete. The exercise of asking the users to come up with a list of tests on their own has also helped us to identify change before we start development. This list of tests gives my team a quantifiable set of user expectations up front that helps us build our solution to meet their needs, rather than setting the user expectations to meet our solution.
When we first introduced user stories to our clients, we walked through the creation of a couple together. This helped our users get an idea of what might be included in the user story. Arguably, by doing the walk-through, we could have inadvertently shaded our user’s perspective. I still feel that the walk-through was a good way to get the users comfortable with what it is we wanted from them.
One snagging point that keeps bothering me about the user story in our project, is that we are not getting input from the end users. Our user stories are written by a business analyst who works for the client and the client project sponsor. While I much prefer a higher-level user to no user, I feel that the spirit of the user story is that the end-user is the one writing the story.
I have also heard of developers writing user stories when users are unwilling or unable to write the stories on their own. Again, I am sure that a developer-written story is better than no story. But is that really a user story? Or is this just another kind of documentation? I wonder if we aren’t missing the point of a user story when someone other than the end user is writing it.