2

I am writing a user story and have a simple questions.

Consider, I am writing it for login module which calls internally a web service to authenticate the user and returns the data. How this can be converted into a user story.

Should this be written as:

As a user,

I would like to login to the system and see the resultset.

and leave it or should I write validations/web service call as well as well.

As I understand, as a user I am not concerned with web service. So how should I write about this?

5

As a user, I would like to login to the system and see the resultset.

This leaves out part of the story. While the functionality is to login and see the resultset, why is that important? The technical details of the web service aren't useful for the user as why would they care about the behind the scenes part of the service. They just want it to work though you are missing why this is important. Is the resultset so they can know what to do next? Is it something for them to monitor how well is the system working? There are tons of reasons for wanting to allow someone to log-in and you have the why part of things here.

"As a user, I am able to login to the system so that I can see the results of my sales this month to update my goals." would be something that captures that last part as if there is an alternative method that could be explored to get the same benefit.

1

For the user story always stay focused on what really matters to the end user. They care about what your application does, not about how it is implemented. Are there any benefits of using a webservice for authentication from the user's perspective? It shouldn't be difficult to add a bit more detail (and acceptance criteria) to a user story like this. (What is an acceptable response time? What happens when I provide the wrong credentials? What kind of data is returned and what does that look like?)

However, if you and your team have decided to use a web service, it may be valuable to write that down somewhere as well, in a format that works for your team. (Which might be as simple as a short, written list of technical decisions).

0

it's a user story, not an implementation description, so it should focus only on what is to be done and what the benefit to the user is

As a user, I want to log in to the system, so that I can use it

The fact the the login operation currently returns some kind of result-set is irrelevant. Displaying the result-set is a separate story.

4
  • 1
    "so that I can use it" isn't a very good story. Can you make a better example? The goal of the user isn't to use your software, their goal is to do something else. That "something else" should be reflected in the story. Aug 6 '13 at 20:37
  • @BryanOakley: this is the LogIn story. if you can't log in, you can't use the software. nothing more is required for this story. ;) Aug 6 '13 at 20:49
  • I suppose. Still, they have some other goal in mind, don't they? For example, will logging in give them access to a dashboard from which they can start to do work? Is logging in how they start a record of the hours they are working? "Use it" is just so vague and uninspiring. Besides, they don't really want to log in, that's an implementation detail. Maybe the story should be "As a user, I want to be able to securely access my files (or workspace or case or shopping cart or whatever), so that nobody but myself can see my work". Aug 6 '13 at 22:21
  • @BryanOakley: I get what you're saying. On the one hand, I don't have that information about the OP's system. On the other hand, no. The LogIn Story is sufficient. The next story might be 'as a logged-in user, i want to see my dashboard and the main menu, so that i can see the status of my widgets and choose further actions within the system'. It's boring, yes, but adding more to the login story breaks the encapsulation of the login story, bleeding it into another story. Aug 7 '13 at 0:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.