Acceptance criteria are the key to making sure our stories are done, and have as few bugs as possible. When the criteria are weak, not complete, unclear or misunderstood, this can be the root of a whole host of problems. Acceptance criteria are a critical point on which a team can focus to improve their results and delivery.
Acceptance criteria can be implemented as automated acceptance tests. The PO, the Developers, and the QA people on the team should all be in agreement that the acceptance tests do illustrate that the software works as desired.
I wrote another article with more thoughts on acceptance criteria, in a
recent post on the TestDrivenDeveloper.com blog site, please check it out!
Acceptance criteria can be a tricky bit, especially if the customer and the team don't have much experience at generating and capturing them. I would definitely consider it a process smell if I saw a continuing pattern of low quality acceptance criteria. Really this can kill a project if left untended to fester on its own.
From what I have seen on several teams, we should all focus more time and effort on acceptance criteria gathering and then automating it in the sprint as part of the criteria for Done.
If you have mechanisms or practices that enhance or enable better collection or identification of acceptance criteria, please post a comment below.