Get certified - Transform your world of work today


User Stories & Back-End Systems

In my Keeping the User in User Stories, I described the benefits of the following user story template: As a , I want so that .” In this blog entry, I want to describe how you can use the same template to address back-end functionality.

Back-end systems are those without direct users. One good example is a financial back-end system. Imagine we are creating a financial system that takes in a lot of daily data and produces files that will be sent to banks and other partners at the end of the day. Some of the files are simple formats. Other files are in more involved formats with multiple record types within the file and possibly with multiple lines for some of the transactions.

One of the first things we need to do to start developing this system is to write user stories. To do that, we'll need to figure out the user for our stories. In our example situation, the user is probably a bank or business partner. This will let us write stories like “As a bank, I want…”

  • As a bank, I want to receive a file showing all checks to be cleared so that I can debit and credit the right accounts.
  • As a bank, I want to receive a correctly formatted 5300 file so that I can adjust balances as appropriate.
  • As a bank, I want to receive a file showing the status of all resubmitted transactions so that I can update the database with new information.

First, notice it is OK to humanize the bank with “As a bank, I want…” Programmers do this all the time in conversation. “OK, suppose I'm the bank and you send me a 5300 file with a bad record. In that case, I'll…”

Also notice that these stories are just examples. They likely would have to be broken down into smaller stories that could be completed in a sprint. And the users might have to get more specific, too:

  • As a commercial bank, I want….
  • As a savings & loan, I want…
  • As the Bank of America, I want… (assuming we have some specific business partnership that provides BofA with unique functionality)

But my point is that the user doesn't have to be an actual person staring at a computer screen. The user can also be the entity that needs the functionality.

For more details on how to write user stories for a back-end system, you can read this blog post.

Do you want one short tip each week from Mike to help you succeed with agile?


Article Rating

Current rating: 3.6 (16 ratings)
Eric Wojcieszak
Mike, I had received a number of preliminary stories that started with "As a {system}, I want... I've never seen this non-person reference, so I readily tweaked them to be a person's role. How do you sync up a non-person story with use cases, where there should be a user and a system component? Make sense? Guess I see it that if no end user person will receive benefit in the story, and cannot be user functional or acceptance tested, what is the value in the story?
10/27/2014 4:12:08 PM

Mike Cohn
Hi Eric--

This is where--as much as I like user stories--I prefer the use case world's vocabulary. "Actors" is a great term.

I usually apply a 30-second rule: I will spend 30 seconds trying to change something like "As a system..." into a more person-oriented story. It's almost always the case that someone wants whatever the thing is. A user wants that data imported. A customer wants those consistency checks. A CTO is insisting we comply with some standard.

If I really can't think of some human who wants it and yet the thing still seems valuable to do, I go ahead and write something like "As a system..." I don't think that's the end of the world and I'd rather do that than obsess over the perfect wording.

I'm with you, though, that if you can't find a person for whom to rewrite the story, that is a big red flag that there may be no value in the story.
11/2/2014 9:26:11 PM

Daniel DelPercio
I have always had second thoughts when writing back-end user stories. Refactoring and adding scalability add plenty of value, yet it remains difficult to personify in a 'proper' user story.

The exercise of doing so, does make you think through the objective - which is a good thing; however, I often will break down and write the old "As a system..." user story.

On a similar note... who else has written a user story "As a Google bot..."?
10/14/2015 3:55:26 PM

good post.
7/29/2016 10:33:41 AM

free hack
It will be the greatest chance for you to get the free hack as you will play slither much comfortably and you will be fully entertained.
9/23/2016 6:38:54 AM

jual besi cnp
jangan ragu untuk menghubungi kami disini
10/3/2016 12:30:23 AM

How do you sync up a non-person story with use cases, where there should be a user and a system component? Make sense? Really?
10/12/2016 7:34:37 AM

To leave a comment, please login with your credentials.


Newsletter Sign-Up