Writing User Stories for Backend Processes

I’ve read quite a few books on agile development and writing user stories, and have read “if the story is too big, break it down into smaller steps”.

I’m struggling with what to do when a story is small from the user’s point of view, e.g. “As an administrator, I want to create a new customer”, but requires several steps on the backend to complete this, e.g. setting up FTP accounts, adding customer admin accounts, creating directories etc.

I know I can put these as acceptance criteria, but it feels wrong, particularly as it makes estimation difficult.

Does anyone have any advice on this? Is it acceptable to have tasks that aren’t strictly user stories in the backlog?

I think using factorygirls u can create an admin, take him to the root_path then to the place where he can create a customer. This will be ur “Given”. Then ask him to click on the button which will be the “When”. Exepct(page).to have_content(“Customer created”) will be your “then”.

@leeky, in Pivotal Tracker for instance, I’d define that kind of infrastructure setup as a Chore. Then these can get prioritised in advance of the user stories that require them.

Hope this helps :slight_smile:

I probably didn’t explain myself very well. My examples of setting up FTP accounts etc, are going to be automated and carried out as part of the customer creation process. These processes are things I need to write tests against.

Other people have suggested I break these parts into stories that have a sysadmin as the user - e.g. “As a system administrator, I want to automatically set up a user’s FTP account, so I can save time.” or something along those lines.

You must probably use unit tests to test the process of creation for a FTP account or other things transparent for the user. In another story, you will probably have something like “As a user, I want to view my documents” so the creation of a ftp user will be tested, in integration, at this level.