We are a consultancy delivering projects for a number of our clients. For some clients, there is a Product Owner who writes the user story and the acceptance criteria (I understand that Acceptance Criteria are not mandatory, but we generally advise them as we work with a variety of resources in a distributed setup so having detailed Acceptance Criteria is always helpful).
It is generally accepted by everyone that Acceptance Criteria should be available before the development of the work begins. The question is around who should be writing the Acceptance Criteria.
I am of the opinion that the Product Owner writes the User Story describing the feature request and the Acceptance Criteria should be a collaboration between the development team (developer or tester) and the Product Owner and not necessarily handed entirely off to the Product Owner.
So, it would be something along these lines.
User Story As a contact centre agent I want to capture basic information about the customer when they call in
The Acceptance Criteria should be
1. Data Capture
- First Name
- Last Name
- Date of Birth
- Phone Number
- Address
- Purpose of Call (this should be in a Phone Call record)
2. Validation
- Phone Number should be a valid UK number
- Address should be a valid UK address (use a lookup service)
- They are over 18 years of age
- Last Name is mandatory
The Acceptance Criteria can be written by the Product Owner but it can also be written by the developer / tester as long as it is signed off by the Product Owner.
A colleague mentioned that the problem with asking the developer / tester to write the Acceptance Criteria is that it is additional work. They also mentioned that there is no process to capture that the Product Owner has signed off on the Acceptance Criteria so they might turn around and say that is not what we asked. (The second part of the concern is probably not agile-related and is more related to when we work as a consultancy).
So, who should write the Acceptance Criteria - is it the complete responsibility of the Product Owner or is it the team's responsibility?