Product School

Acceptance Criteria: From Theory to Practice

Carlos headshot

Carlos González De Villaumbrosia

Founder & CEO at Product School

July 19, 2024 - 12 min read

Updated: July 19, 2024- 12 min read

Acceptance Criteria are a set of conditions that must be met before a product or feature is considered complete. They serve as a communication tool between Product Managers, Developers, Engineers, and other stakeholders to ensure that everyone is aligned on the Product Requirements Document (PRD).

Especially within Agile methodologies, clear and well-defined acceptance criteria are essential for reducing misunderstandings and minimizing the risk of rework. By setting specific, measurable, and user-focused criteria, teams can enhance collaboration, ensure quality, and deliver products that meet user needs and expectations.

User Flow Template

Include design early in the Product process with these two user flow diagram templates.

Get the template
Card: User Flow template

What Are Acceptance Criteria in Product Management?

Acceptance Criteria are the conditions that a feature or product must meet before it’s ready for your customers. Think of it as a set of requirements—these requirements are defined by the Product Manager and then communicated to the Product Development team. The result should be a product that is built to the correct specifications and that works, reducing the risk of releasing something that is not complete (every Product Manager’s worst nightmare!).

Acceptance Criteria are critical for the success of your product because they ensure that everyone involved is aligned. This shared set of requirements serves as a communication tool between the cross-functional Product Development team, helping to prevent miscommunication and reducing the risk of rework. Acceptance Criteria can also improve the quality of your product by catching defects early—before your users have the chance to encounter them!

When to Use Acceptance Criteria

Acceptance Criteria should be created early in the Product Development process, ideally during the planning phase, and should be reviewed and updated throughout the development cycle. While Acceptance Criteria have a place in every product development cycle, they are especially important for complex features or projects that involve multiple teams or stakeholders. Acceptance Criteria can also be useful in Agile development environments, where they can help ensure that each iteration of the product meets the desired requirements.

Download the PRD Template

Go from idea to action with this easy-to-use PRD template, our step-by-step guide to help you define your product's purpose, USPs, and GTM strategy.

Get free template
Card: PRD Template

How to Write Effective Acceptance Criteria: Best Practices

  • Start with the user: Acceptance Criteria should be focused on the user’s needs and expectations. Ask yourself, “What problem does this feature solve for the user?” and “How will the user interact with this feature?”

  • Be specific and measurable: Acceptance Criteria should be clear and specific so that everyone involved knows exactly what is expected. Use measurable criteria whenever possible, such as response time, error rates, or user satisfaction. For example, instead of "The system should be fast," specify "The page should load within 2 seconds."

  • Include edge cases: Acceptance Criteria should cover not only the expected use cases but also potential edge cases or exceptions.

  • Communicate it simply: Acceptance Criteria should be simple and easy to understand. Avoid overly complex criteria that may confuse or frustrate the Development team.

Acceptance-Criteria-glossary

Acceptance Criteria Formats and Examples

Acceptance criteria can be formatted in various ways depending on the needs of the team and the complexity of the project. The goal is to make them clear, specific, and actionable. Here are some common formats used:

Checklists

  • Simple and straightforward, checklists spell out the criteria in a concise manner.

  • Easy to read and understand, making them ideal for straightforward requirements.

  • Useful for tracking progress and ensuring all conditions are satisfied.

Checklist example

  • The feature should load within 2 seconds.

  • The user should be able to reset their password using their email address.

  • Error messages should be displayed in red and appear within 1 second of an error.

Scenario-Oriented (Given/When/Then)

  • A structured format that describes the criteria in the context of a scenario.

  • Helps to specify the behavior of the system in different situations.

Scenario-Oriented (Given/When/Then) Example:

  • Given the user is on the login page

  • When the user clicks on the "Forgot Password" link

  • Then the system should prompt the user to enter their email address

  • And the system should send a password reset link to the provided email address

  • And the user should see a confirmation message on the screen

  • Scenario: Error message on failed login

    • Given the user is on the login page

    • When the user enters an incorrect password

    • Then the system should display an error message in red

    • And the error message should appear within 1 second of the login attempt

Scenario-Oriented (Given/When/Then) Acceptance Criteria Template

The Given/When/Then format is particularly effective for describing acceptance criteria in a clear, structured way. Follow this template to help break it down:

Scenario: [Brief description of the scenario]

  • Given [Initial context or state of the system]

  • When [Action performed by the user]

  • Then [Expected outcome or behavior]

  • And [Additional outcomes or behaviors, if any]

Example: User registers for a new account

  • Given the user is on the registration page

  • When the user fills out all required fields with valid information

  • And the user clicks the "Register" button

  • Then the system should create a new account for the user

  • And the user should be redirected to the welcome page

  • And the user should receive a confirmation email

User Story-based Acceptance Criteria and How to Write Them

User stories frame requirements from the perspective of the user, and allow developers to come up with creative solutions to their needs. Using acceptance criteria to strengthen user stories helps clarify the scope, provide a shared understanding among stakeholders, and set the boundaries for what is to be built. 

Writing effective user stories and their corresponding acceptance criteria involves understanding the user's needs and clearly defining the expected outcomes. Here’s a step-by-step guide:

  1. Identify the User:

    • Start by identifying who the user is. This could be a customer, admin, or any other stakeholder.

    • Use the format: "As a [user], I want [feature] so that [benefit]."

  2. Define the User Story:

    • Clearly articulate the user story.

    • Example: "As a registered user, I want to be able to reset my password so that I can regain access to my account if I forget it."

  3. Determine Acceptance Criteria:

    • Define the conditions that must be met for the user story to be complete.

    • Ensure the criteria are clear, measurable, and testable.

    • Use the Given/When/Then format for structured criteria.

Example of a User Story with Acceptance Criteria

User Story: "As a user, I want to be able to add items to a wishlist so that I can purchase them later."

Acceptance Criteria scenario: Adding an item to the wishlist

  • Given the user is logged into their account

  • When the user views a product

  • And the user clicks on the "Add to Wishlist" button

  • Then the system should add the product to the user's wishlist

  • And the system should display a confirmation message

Scenario: Viewing the wishlist

  • Given the user is logged into their account

  • When the user navigates to their wishlist page

  • Then the system should display all the items that the user has added to their wishlist

  • And each item should have an option to remove it from the wishlist or move it to the shopping cart

Agile Acceptance Criteria and Acceptance Criteria in Scrum

Acceptance criteria play a crucial role in Agile methodologies, ensuring that the development team understands the exact requirements and expectations for each feature or user story. In Agile, acceptance criteria help maintain clarity, focus, and alignment throughout the iterative development process. Key aspects of agile acceptance criteria include:

  1. Clear Communication:

    • Acceptance criteria provide a clear definition of what is expected for a feature to be considered complete.

    • They ensure that everyone, including product owners, developers, and testers, is on the same page.

  2. Focus on User Value:

    • Criteria are often written from the user’s perspective, focusing on the value delivered to the end-user.

    • This aligns with Agile’s emphasis on delivering small, incremental improvements that enhance user satisfaction.

  3. Testable Conditions:

    • Acceptance criteria must be testable to verify that the feature meets the specified requirements.

    • This helps in creating automated tests that can be run as part of the continuous integration process.

  4. Incremental and Iterative Development:

    • In Agile, features are developed incrementally. Acceptance criteria help ensure that each increment meets the desired standards.

    • They provide a benchmark for evaluating progress at the end of each iteration or sprint.

Acceptance Criteria in Scrum

Scrum, a popular Agile framework, uses acceptance criteria to ensure that each item in the product backlog is well-defined and ready for development. Acceptance criteria in Scrum are integral to sprint planning, execution, and review.

  1. Sprint Planning:

    • During sprint planning, the development team reviews user stories and their acceptance criteria.

    • Well-defined acceptance criteria help the team estimate effort and plan the sprint effectively.

  2. Definition of Done:

    • Acceptance criteria contribute to the "Definition of Done" (DoD) for user stories.

    • A user story is not considered done until it meets all the acceptance criteria.

  3. Sprint Execution:

    • Throughout the sprint, the development team uses acceptance criteria to guide their work.

    • Criteria provide a clear target for what needs to be achieved for a user story to be complete.

  4. Sprint Review:

    • At the end of the sprint, the team demonstrates the completed user stories to stakeholders.

    • Acceptance criteria are used to verify that the functionality meets the requirements and is ready for release.

Design Sprint Template

Use design thinking to solve design problems and reduce production risks.

GET THE TEMPLATE
Card: Design sprint template asset icon

Examples of Product Acceptance Criteria

Example #1: Airbnb - Instant Book Feature

User Story: "As a traveler, I want to instantly book a property without waiting for host approval so that I can quickly secure accommodation for my trip."

Acceptance Criteria:

Scenario: Searching for properties with Instant Book

  • Given the traveler is on the Airbnb homepage

  • When the traveler enters a destination, check-in, and check-out dates, and the number of guests

  • And filters the search results to show only properties with the "Instant Book" option

  • Then the system should display a list of available properties that match the search criteria and have the Instant Book option enabled

Scenario: Booking a property with Instant Book

  • Given the traveler is viewing the details of a property with Instant Book enabled

  • When the traveler clicks the "Reserve" button

  • And enters their payment information and confirms the booking

  • Then the system should immediately process the payment

  • And send a confirmation email to the traveler with the booking details

  • And update the property's calendar to reflect the booked dates

Scenario: Canceling an Instant Book reservation

  • Given the traveler has an active Instant Book reservation

  • When the traveler navigates to their "Trips" page

  • And selects the option to cancel the reservation

  • Then the system should prompt the traveler to confirm the cancellation

  • And upon confirmation, the system should cancel the reservation and send a cancellation confirmation email to the traveler

  • And update the property's calendar to reflect the canceled dates

Example #2: Slack - Direct Messaging Feature

User Story: "As a user, I want to be able to send direct messages to my colleagues so that I can communicate privately."

Product Acceptance Criteria:

Scenario: Sending a direct message

  • Given the user is logged into their Slack account

  • When the user selects a colleague from the contact list

  • And types a message in the direct message window

  • And clicks on the "Send" button

  • Then the system should deliver the message to the selected colleague

  • And the message should appear in the direct message conversation thread

Scenario: Receiving a direct message

  • Given the user is logged into their Slack account

  • When a colleague sends a direct message to the user

  • Then the system should display a notification to the user

  • And the message should appear in the direct message conversation thread

Scenario: Searching direct messages

  • Given the user is logged into their Slack account

  • When the user enters a keyword in the search bar

  • Then the system should display a list of direct messages containing the keyword

  • And the user should be able to click on a message to view the full conversation

Example #3: Trello - Card Due Dates Feature

User Story: "As a project manager, I want to set due dates on cards so that my team is aware of task deadlines."

Acceptance Criteria:

Scenario: Setting a due date on a card

  • Given the project manager is viewing a card on a Trello board

  • When the project manager clicks on the "Due Date" button

  • And selects a date and time from the calendar picker

  • Then the system should save the selected date and time as the due date for the card

  • And display the due date on the card

Scenario: Editing a due date on a card

  • Given the project manager is viewing a card with an existing due date

  • When the project manager clicks on the due date and selects a new date and time

  • Then the system should update the card with the new due date

  • And display the updated due date on the card

Scenario: Removing a due date from a card

  • Given the project manager is viewing a card with an existing due date

  • When the project manager clicks on the due date and selects the option to remove it

  • Then the system should remove the due date from the card

  • And the due date should no longer be displayed on the card

Scenario: Notifications for upcoming due dates

  • Given the project manager has set due dates on multiple cards

  • When the due date of a card is approaching (e.g., 24 hours before the due date)

  • Then the system should send a notification to the project manager and assigned team members

  • And the notification should include the card name, due date, and a link to the card

The Importance of Acceptance Criteria

In conclusion, understanding and effectively writing acceptance criteria is crucial for successful product development in dynamic product environments. By using clear formats and templates, such as checklists and the Given/When/Then structure, teams can ensure that user stories meet specified requirements and align with stakeholder expectations.

Whether you’re working within the Agile framework or other product development methodologies, these guidelines help maintain clarity, reduce risks, and improve overall product quality. Embrace these best practices to create robust, user-focused acceptance criteria in your projects.

Product Launch Checklist

Launch is a critical time that can make the difference between product success and failure. Use this checklist to make sure nothing falls through the cracks.

DOWNLOAD CHECKLIST
Card: Product Launch Checklist Template

Updated: July 19, 2024

Subscribe to The Product Blog

Discover where Product is heading next

Share this post

By sharing your email, you agree to our Privacy Policy and Terms of Service