When is it Done? How do you know? Does your Product Owner agree? Does your customer agree?

When we estimate user story size and sprint task effort, we ask ourselves how we will know when a task or a story is done. We make a list of doneness tests, and we call them acceptance criteria. In the spirit of Mike Cohn’s user story template, we use a simple but effective template to define our acceptance criteria:

We’ll agree it’s done when [testable present tense active voice predicate].

Here is an example:

We’ll agree it’s done when …

  • A team member can localize the app to Mexican Spanish.
  • The app displays all menu items in Mexican Spanish, as specified in the localization file.
  • The app displays all messages and dialogs in Mexican Spanish, as specified in the localization file.

We review the acceptance criteria with our Product Owner and customer, and we all agree ahead of time on what it means to be Done. We avoid a lot of rework by agreeing on acceptance criteria before we commit to sprint tasks. We know our customer will accept our delivery because we tested against the acceptance criteria–the same acceptance criteria he will use to agree that we are Done.