What are the acceptance criteria?
Acceptance criteria are essentially a set of conditions for a feature to meet in order to be considered completed and accepted by stakeholders. They serve as clear and objective reference points for developers and testers, ensuring everyone is working towards the same goal.
Think of acceptance criteria as a checklist. These criteria are typically written from the end-user's perspective and focus on the functionality and expected value of the feature.
2 types of acceptance criteria
Two key approaches are scenario-oriented and rule-based. They offer different advantages, so the right pick can make all the difference.
Ideal for: Complex features with diverse use cases.
Goal: To ensure functionality across multiple scenarios.
Structure: Follows the Given-When-Then formula:
- Given: Preconditions for the scenario.
- When: User action or system event.
- Then: Expected outcomes or results.
Example: Given a user misspells a search query when they type into a search box, but then relevant results are still returned, including suggested spelling.
Ideal for: Straightforward requirements or system-level constraints.
Goal: To specify conditions that must be met for feature completion.
Structure: Clear, concise statements outlining rules and thresholds.
Example: The search feature must handle at least 10 simultaneous searches and return results within 2 seconds.
How do acceptance criteria relate to user stories?
Acceptance criteria and user stories are two essential components of successful software development, but they serve different purposes and work together to ensure a feature meets user expectations.
Let’s review these simple analogies. User stories are the destination, similar to the complete painting of the picture of what the user wants to achieve. Acceptance criteria are the roadmap, similar to providing detailed navigation instructions on how to get to the destination.
Here are more details:
Focus: Describe the "what," the desired functionality from the user perspective.
Concise: Brief descriptions of user needs and goals.
Example: As a customer, when I use the search, I want to filter products by category so I can easily find what I am looking for.
Focus: Define the "how," the specific requirements and conditions for a user story to be considered complete.
Concise: Break down the user story into concrete, measurable criteria.
- The search bar must auto-suggest relevant categories as I am typing a product name.
- Search results must be displayed within 2 seconds.
- Users can filter results by price, brand, and other characteristics.
Difference between the definition of done and acceptance criteria
The definition of Done (DoD) applies to all completed features and acts as a general checklist, covering aspects like code quality, documentation, and testing. It is a sort of universal benchmark for finished work. In contrast, ACs are tailored to each user story. Both work together for smooth development and happy end-users.