Acceptance Criteria
7.3 Acceptance Criteria
Introduction
Acceptance Criteria are specific conditions that a Product Backlog item or User Story must satisfy to be considered complete and acceptable.
They define the expected behavior, functionality, and outcomes of a feature from the business and user perspective.
Acceptance Criteria help ensure that the Scrum Team and stakeholders share the same understanding of requirements.
What are Acceptance Criteria?
Acceptance Criteria are a set of predefined rules or conditions that determine whether a User Story has been implemented successfully.
They explain:
- What the feature should do
- How the system should behave
- What conditions must be satisfied
- How the feature will be validated
Purpose of Acceptance Criteria
Acceptance Criteria help Scrum Teams:
- Clarify requirements
- Reduce misunderstandings
- Improve collaboration
- Support testing activities
- Ensure product quality
- Define completion expectations
Why Acceptance Criteria are Important
Without Acceptance Criteria:
- Requirements may become unclear
- Developers may misunderstand functionality
- Testers may not know how to validate features
- Stakeholders may have different expectations
Acceptance Criteria provide a shared understanding for everyone involved.
Relationship Between User Story and Acceptance Criteria
A User Story explains:
- Who needs the feature
- What they want
- Why they need it
Acceptance Criteria explain:
- How the feature should work
- What conditions define success
- What must be tested
Example of User Story with Acceptance Criteria
User Story
"As a customer, I want to reset my password so that I can regain access to my account."
Acceptance Criteria
- Password reset email must be sent successfully
- Reset link must expire after 30 minutes
- User must create a strong password
- Password reset confirmation message must appear
Characteristics of Good Acceptance Criteria
| Characteristic | Description |
|---|---|
| Clear | Easy to understand |
| Specific | Clearly defines expected behavior |
| Testable | Can be verified through testing |
| Measurable | Success conditions are observable |
| Relevant | Directly related to User Story |
Types of Acceptance Criteria
1. Functional Acceptance Criteria
Defines system functionality and behavior.
Example
- User can log in with valid credentials
- System displays error for invalid password
2. Non-Functional Acceptance Criteria
Defines quality-related requirements.
Example
- Page should load within 2 seconds
- System must support 10,000 users simultaneously
Formats of Acceptance Criteria
1. Checklist Format
Simple bullet-point conditions.
Example
- User receives verification email
- Email link expires after 24 hours
- Password must contain special characters
2. Given-When-Then Format
A structured format commonly used in Behavior-Driven Development (BDD).
Example
Given the user enters valid login credentials
When the user clicks the login button
Then the system should redirect the user to the dashboard
Acceptance Criteria vs Definition of Done
| Aspect | Acceptance Criteria | Definition of Done |
|---|---|---|
| Purpose | Defines feature-specific requirements | Defines overall completion standards |
| Scope | Specific to one User Story | Applies to all backlog items |
| Focus | Feature behavior and validation | Quality and completion process |
| Created By | Usually Product Owner | Entire Scrum Team |
Benefits of Acceptance Criteria
| Benefit | Description |
|---|---|
| Improved Requirement Clarity | Reduces misunderstandings |
| Better Testing Support | Provides clear test conditions |
| Higher Product Quality | Ensures correct functionality |
| Improved Collaboration | Aligns Scrum Team and stakeholders |
| Reduced Rework | Clear expectations prevent confusion |
| Supports Agile Transparency | Clearly defines completion expectations |
Role of Product Owner in Acceptance Criteria
The Product Owner:
- Defines business expectations
- Creates Acceptance Criteria
- Clarifies requirements
- Ensures business value alignment
Role of Developers in Acceptance Criteria
Developers:
- Review Acceptance Criteria
- Ask technical questions
- Implement required functionality
- Ensure feature satisfies criteria
Role of Testers in Acceptance Criteria
Testers:
- Create test cases
- Validate feature behavior
- Ensure criteria are satisfied
- Identify missing conditions
Role of Scrum Master in Acceptance Criteria
The Scrum Master:
- Supports backlog refinement discussions
- Encourages collaboration
- Helps maintain requirement clarity
- Supports Agile best practices
Acceptance Criteria in Scrum Workflow
Acceptance Criteria are commonly used during:
- Backlog Refinement
- Sprint Planning
- Development activities
- Testing activities
- Sprint Review
Common Challenges in Acceptance Criteria
| Challenge | Description |
|---|---|
| Unclear Criteria | Requirements difficult to understand |
| Missing Scenarios | Important behaviors not defined |
| Overly Technical Language | Business users cannot understand |
| Too Many Criteria | Stories become overly complex |
| Untestable Conditions | Difficult to validate functionality |
Best Practices for Writing Acceptance Criteria
- Keep criteria simple and clear
- Focus on user behavior
- Make criteria testable
- Use measurable conditions
- Collaborate with Developers and Testers
- Cover both success and failure scenarios
Common Mistakes in Acceptance Criteria
- Writing vague conditions
- Adding unnecessary technical details
- Missing edge cases
- Creating unrealistic conditions
- Ignoring user perspective
Real-Life Example
Example:
User Story:
"As a customer, I want to track my food delivery in real-time."
Acceptance Criteria:
- Delivery status updates every 30 seconds
- User can see driver location on map
- Estimated delivery time is displayed
- System sends notification when delivery is nearby
Importance of Acceptance Criteria in Agile
Acceptance Criteria are important because they:
- Improve communication
- Reduce ambiguity
- Support testing and validation
- Ensure customer expectations are met
- Improve product quality
Conclusion
Acceptance Criteria are a critical part of Agile and Scrum because they clearly define the expected behavior and success conditions of User Stories.
Well-written Acceptance Criteria improve requirement clarity, collaboration, testing efficiency, product quality, and successful delivery of customer value.