6

As a scrum/agile system student, I find the situation where you have to write up a user story in the classical form and at the same time, describe the behaviour of parallel workflow, very hard. As a very simple and general example that can describe the situation, we can write this user story:

As a user that wants to purchase an article, I want to be able to pay with MasterCard, so that the purchased order can be set to status 'to deliver'.

On this user story, there are tons of different "user task alternate workflow" or situations that can define different processes (not necessary errors), like:

  • While a customer places an order, their credit card failed

  • While a customer places an order, their user session times out

  • While a customer uses an ATM machine, the machine runs out of receipts and needs to warn the customer

  • While a customer places an order, their credit card number doesn't exist

  • While a customer places an order, the PIN failed

(maybe are not the best examples, but just for describing side effects).

In Agile/Scrum system, you can only describe the desired behaviour, but not the side effects/parallel workflows.

My questions:

  1. How do you advice me to put in the backlog stories that covers these situations?

  2. How do you advice me to create stories that follow a "Task Process Workflow Diagram"? (this second question is different but related)

1
  • You've asked a good question here, but I think perhaps your title needs rephrasing. I wasn't really sure what the question about was until I read the main body of text :)
    – Ben K
    Commented Mar 7, 2012 at 11:47

2 Answers 2

4

One of nice techniques teams use is writing user story verification criteria on the back on a sticky note or in additional information of user story (if you use electronic tool). All these detailed scenarios you mention work well as verification criteria and using them as such means that you don't lose this additional information.

Personally I wouldn't advise making them separate user stories as you would go to so much details that you'd have to face much hassle juggling all the stories, although one could consider it a viable alternative as well.

And most of all, don't get too attached to a specific format of user stories. If you need and want additional information just write it down and attach it somehow. Your goal should be common understanding of the work which is to be done and not following book definition of user story. User story is just a means to achieve common understanding goal, so as long as team understands story's influence on alternative workflow you get it right.

1
  • 1
    +1 to Pawel- Acceptance criteria is one of the secret sauces of User Stories. Commented Mar 6, 2012 at 15:49
0

You have a good question, and I think looking at the user story can help break down some parts of the problem. My initial reaction is, as a user you don't care about the status of the purchase order, that isn't important to you.

The user story can be much simplier and be As a user you want to be able to use Mastercard to purchase an article. This implies:

  • Given any number of a parallel processes, the article actually get's delivered. More specifically you can generate a number of user stories which are derived from this one.

Additional user stories:

  • As a user successfully purchased articles are successfully delivery to me.
  • As a user I want to be able to use the credit card of my choice (a solution should include all necessary credit cards)
  • As a user when my card get's declined I want to know about it.

From your example there are these following ones, which need to be investigated:

  • What was While a customer places an order, their user session times out
    • should be: As a user when I place my order, I expect not be charged twice nor get multiple orders without paying, and likewise, `I should be able to look up my order and understand the status.
  • What was While a customer uses an ATM machine, the machine runs out of receipts and needs to warn the customer
    • Should be: As a user when I ask for a receipt but there are none, I expect to emailed the receipt
    • Or an alternative As a user I expect a transaction to be declined if there are no receipts available but I want one.
  • What was: While a customer places an order, their credit card number doesn't exist
    • Should be As a user, when I enter an invalid credit card (for whatever reason) I should be notified before the order is placed, so I can correct it
    • Or alternatively: As the finance department when a invalid credit card is entered send an automated email to the user to indicate their order will be cancelled unless they fix the credit card number. Finance can be your user as well, not just your customer.
  • What was While a customer places an order, the PIN failed
    • Can be As a user when I enter an invalid PIN, I should be alerted to enter a valid one
    • And additionally if this happens more than 3 times, I want my card to be destroyed in case of theft.

For the specific advice:

  1. How do you advice me to put in the backlog stories that covers these situations?

    • Create individual stories for each of these. The resulting system is a composite of all the user stories, you don't need in a user story to include and also all other user stories, that is de facto true.
  2. How do you advice me to create stories that follow a "Task Process Workflow Diagram"? (this second question is different but related)

    • If this a question of the actual technology, it will be specific to what you have at your disposal, having an architecture diagram of all the processes in this space can be helpful.
    • If this is a question about how to execute the tasks, I suggest the (A) write down the user story => (B) Validate the user story with multiple users => (C) create a working prototyping => (D) validate it works as expected => (E) include additional user stories => (F) Track the usage of the prototype to make sure it actually is solving a real problem => (G) Iterate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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