101-post for solid Acceptance Criteria in rocking software

Reading time: 5 minutes

Acceptance criteria are essential in software as they provide clear and measurable definitions when a feature or user story is considered complete.

Sheer curiosity, did you know that criteria is the plural form of criterion? Latin-root words, ha… curious!

What are they?

Acceptance criteria are a set of conditions or requirements that must be met in order for a user story, feature, or software component to be considered complete.

Mind the team, it is used to validate acceptance by stakeholders, including the product owner or the end users.

These criteria are a key part of defining what the software is supposed to accomplish and serve as the basis for testing and validation.

Acceptance criteria typically describe the specific behavior or functionality that is expected from the software.

They are often written in a way that is clear, measurable, and testable. The primary purposes of acceptance criteria are to:

  1. Provide Clarity: They help ensure that all stakeholders have a common understanding of what the software should do and what constitutes a successful outcome.
  2. Set Quality Standards: They define the expected quality, functionality, and performance of the software.
  3. Guide Development and Testing: Developers and testers use acceptance criteria to create and execute tests that verify whether the software meets the specified requirements.
  4. Facilitate Communication: They serve as a communication tool between the development team and stakeholders, making it easier to track progress and make informed decisions.
  5. Determine When Work Is Complete: When all the acceptance criteria are met, the software or feature is considered “done” and ready for release.

How to create Acceptance Criteria

Thanks to scrumalliance.org we can have a glimpse into what some of the opportunities for defining acceptance criteria include:

  • Discussions with customers or clients
  • Discussions with stakeholders
  • During the scrum refinement event
  • During the scrum sprint planning event
  • During product backlog management activities
  • In team brainstorming
  • After evaluating customer or end-user feedback

The PO is accountable for writing these conditions; nevertheless, the dev team’s expertise and feedback are fundamental to callibrate expectations. 

The scrum master role when it comes to the AC is to circum-locate it and offer articulation if he/she sports any inconsistency. 

We are adamant that team effort is key, albeit the product owner’s filiality to the customer is often the starting point to create the AC.

Do you want to take your product up a notch, click here and let’s get the ball rolling! https://presale.effectussoftware.com/

Let's write one!

Work your way, be creative and cater to your team and stakeholder’s needs. Try different formats and assess what works well for your team. Some ideas:

Use a bullet list checklist, or verification list.

Whatever you decide to use, consider including your AC format in the retro so you can drill down on it and adapt its effectiveness for your team.

Scenario-based template.

Other agile teams will use a format known as scenario-based, in which you use a formula: 

Given that_______, when________, then_________.

Example: Given that I’m a new customer - When I enter the verification code - Then I'm going to be taken to the start page again.

  • Given (some given context or precondition)
  • when (I take this action)
  • then this will be the result

A Checklist for Writing Acceptance Criteria

  • Clear to everyone involved
  • Can be tested or verified 
  • Either passes or fails (cannot be 50% completed, for example)
  • Focus on the outcome, not the how to
  • As specific as possible

Example!

Here’s another example of acceptance criteria:

User Story: As a registered user, I want to reset my password so that I can regain access to my account.

Acceptance Criteria:

  1. The user should be able to navigate to the “Forgot Password” page.
  2. After entering their email address and submitting the form, the user should receive a password reset link via email.
  3. Clicking on the reset link should open a page where the user can create a new password.
  4. The new password must meet the following requirements: at least 8 characters, including at least one uppercase letter, one lowercase letter, one digit, and one special character.
  5. After successfully setting a new password, the user should be redirected to the login page with a confirmation message.

These acceptance criteria provide a clear and testable definition of what it means for this user story to be considered complete and meet the user’s needs.

Compare and Contrast Chart

Category of AnalysisAcceptance CriteriaDefinition of DoneUsers Stories
Expressed as…different for each product backlog item.as a list of statements.smallest chunk of work.
PerspectiveMixed perspectiveclient’s perspectiveusers’ perspective
It describes…The “what”.
What should be done to solve.
A criteriaThe “why”.
Goal or problem to solve.

Let’s go visual!

Embrace Jira!

Have you tried Jira? First, dive into this post to create your own site…

However, you can use Jira to manage and track acceptance criteria for your user stories by adding custom fields or using plugins and apps that extend Jira’s functionality.

Here’s how you can do it:

  1. Custom Fields: Create custom fields in Jira for Acceptance Criteria. You can then add the acceptance criteria as text or description in these fields when you create or edit user stories.
  2. Templates: Some Jira plugins or apps allow you to create templates for user stories. You can set up predefined templates that include acceptance criteria, making it easier for your team to follow a consistent format.
  3. Integrations: You can integrate Jira with other requirements management or documentation tools like Confluence, which may offer more extensive capabilities for defining and managing acceptance criteria.
  4. Automation Rules: Use Jira’s automation features or third-party automation apps to create rules that prompt team members to enter acceptance criteria when a user story is moved to a specific status (e.g., “In Progress” or “Ready for Review”).
  5. Plugins and Apps: Explore Jira Marketplace for plugins and apps that can enhance your Jira experience. Some of these may offer specific features for managing acceptance criteria.

Since Jira is a flexible platform some updates or new solutions that can help you with managing acceptance criteria within Jira might have sprung up.

Let’s round it up!

Incorporating well-defined acceptance criteria into your software development process is more than a best practice; it’s a compass guiding your team toward success.

With clear expectations and a shared understanding of what ‘done’ means, you pave the way for efficient development, satisfied stakeholders, and a product that truly meets user needs.

Embrace the synergy of AI and go-agile to unlock new levels of productivity and efficiency in your projects.

In future blog and instagram posts, we’ll explore specific strategies and techniques. So stay tuned, and don’t forget to check out our other posts for more insights!