In Agile, one of the goals is to keep you user stories clear and concise. To this end, it can be useful to separate out the user story from deeper detail needed by development and testing. As with all things, it’s a balance:
- Too much detail in the user story and you’ve lost valuable conciseness
- Too little detail in the user story and others won’t be able to understand the story
There’s also a balance in how you divide up user stories into bite-size, incremental, releasable pieces, but let’s save that for another discussion.
For now, let’s assume you’re starting with an appropriately-sized user story. How do you know what detail to put into the story itself, and what to put “on the back” of the card in Acceptance Criteria?
Acceptance Criteria is a list of statements that can be tested and must be true for a story to be considered done. This site has a good concise run-down of how to choose and phrase ACs. Each user story or AC can optionally have attachments such as a spreadsheet, list, mock-up, algorithm description, reference link, or other asset, for the team to refer to.
For example, if the user story is “As the site owner/manager I want my shopping site to show suggested products to consumers so that they are inspired to make additional purchases”, then you might have an AC explaining what logic is used for the product suggestion, and an attached link to an article about a recommended product suggestion algorithm.
Or in another case, if the user story is “As the app owner/manager I want the app to only accept signups for users with addresses in a specific geographic area so that I can build momentum in a small market first” then you might have an AC stating that users can sign up if their zip code is in an accepted list, and all other users are presented with a “thank you for your interest” page, and an attached spreadsheet that lists out all the zip codes that are included in the market area.
If you find yourself creating a large number of ACs for one story, you might take this as a warning that your story is too large, and you should take the opportunity to break it down into several individual stories. As mentioned earlier, it’s all a balance, and Agile is all about finding a method or process that works for you and your specific team.