<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria</link><pubDate>Tue, 23 Apr 2024 13:14:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>Appian Max Team</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Current Revision posted to Guide by Appian Max Team on 4/23/2024 1:14:35 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="acceptance_criteria_overview"&gt;Acceptance Criteria Overview&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how_to_write_acceptance_criteria"&gt;How to Write Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex business logic (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h2 id="who_writes_acceptance_criteria"&gt;Who Writes Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/success/w/article/2985/appian-planners-product-owners-and-analysts"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the Three Amigos Concept) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h2 id="when_should_acceptance_criteria_be_written"&gt;When Should Acceptance Criteria be Written&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h2 id="best_practices"&gt;Best Practices&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Delivery, project management&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/9</link><pubDate>Tue, 31 Oct 2023 20:25:08 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 9 posted to Guide by joel.larin on 10/31/2023 8:25:08 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="acceptance_criteria_overview"&gt;Acceptance Criteria Overview&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how_to_write_acceptance_criteria"&gt;How to Write Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex business logic (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h2 id="who_writes_acceptance_criteria"&gt;Who Writes Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/success/w/article/2985/appian-planners-product-owners-and-analysts"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the Three Amigos Concept) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h2 id="when_should_acceptance_criteria_be_written"&gt;When Should Acceptance Criteria be Written&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h2 id="best_practices"&gt;Best Practices&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Delivery, project management&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/8</link><pubDate>Tue, 31 Oct 2023 20:24:25 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 8 posted to Guide by joel.larin on 10/31/2023 8:24:25 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="acceptance_criteria_overview"&gt;Acceptance Criteria Overview&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how_to_write_acceptance_criteria"&gt;How to Write Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex business logic (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h2 id="who_writes_acceptance_criteria"&gt;Who Writes Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/success/w/article/2985/appian-planners-product-owners-and-analysts"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the Three Amigos Concept) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h2 id="when_should_acceptance_criteria_be_written"&gt;When Should Acceptance Criteria be Written&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h2 id="best_practices"&gt;Best Practices&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/7</link><pubDate>Tue, 31 Oct 2023 20:20:52 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 7 posted to Guide by joel.larin on 10/31/2023 8:20:52 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="acceptance_criteria_overview"&gt;Acceptance Criteria Overview&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how_to_write_acceptance_criteria"&gt;How to Write Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex &lt;a href="http://blog.agileproducts.com/past/2012/9/21/user_stories_expressing_complex_decision_logic_using_truth_tables/"&gt;business logic&lt;/a&gt; (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h2 id="who_writes_acceptance_criteria"&gt;Who Writes Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/success/w/article/2985/appian-planners-product-owners-and-analysts"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the &lt;a href="https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos"&gt;Three Amigos Concept&lt;/a&gt;) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h2 id="when_should_acceptance_criteria_be_written"&gt;When Should Acceptance Criteria be Written&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h2 id="best_practices"&gt;Best Practices&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/success/w/guide/3314/best-practices-appian-user-stories#user_story_estimation"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/6</link><pubDate>Tue, 31 Oct 2023 20:18:55 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 6 posted to Guide by joel.larin on 10/31/2023 8:18:55 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="acceptance_criteria_overview"&gt;Acceptance Criteria Overview&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how_to_write_acceptance_criteria"&gt;How to Write Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex &lt;a href="http://blog.agileproducts.com/past/2012/9/21/user_stories_expressing_complex_decision_logic_using_truth_tables/"&gt;business logic&lt;/a&gt; (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h2 id="who_writes_acceptance_criteria"&gt;Who Writes Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/w/the-appian-playbook/delivery-team-roles"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the &lt;a href="https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos"&gt;Three Amigos Concept&lt;/a&gt;) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h2 id="when_should_acceptance_criteria_be_written"&gt;When Should Acceptance Criteria be Written&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h2 id="best_practices"&gt;Best Practices&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/5</link><pubDate>Tue, 31 Oct 2023 20:17:32 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 5 posted to Guide by joel.larin on 10/31/2023 8:17:32 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="what_are_acceptance_criteria"&gt;What are Acceptance Criteria?&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how_to_write_acceptance_criteria"&gt;How to Write Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex &lt;a href="http://blog.agileproducts.com/past/2012/9/21/user_stories_expressing_complex_decision_logic_using_truth_tables/"&gt;business logic&lt;/a&gt; (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h2 id="who_writes_acceptance_criteria"&gt;Who Writes Acceptance Criteria?&lt;/h2&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/w/the-appian-playbook/delivery-team-roles"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the &lt;a href="https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos"&gt;Three Amigos Concept&lt;/a&gt;) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h2 id="when_should_acceptance_criteria_be_written"&gt;When Should Acceptance Criteria be Written?&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h2 id="best_practices"&gt;Best Practices&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/4</link><pubDate>Tue, 31 Oct 2023 20:16:05 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 4 posted to Guide by joel.larin on 10/31/2023 8:16:05 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="what-are-acceptance-criteria"&gt;What are Acceptance Criteria?&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-write-acceptance-criteria"&gt;How to Write Acceptance Criteria&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex &lt;a href="http://blog.agileproducts.com/past/2012/9/21/user_stories_expressing_complex_decision_logic_using_truth_tables/"&gt;business logic&lt;/a&gt; (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h2 id="who-writes-acceptance-criteria"&gt;Who Writes Acceptance Criteria?&lt;/h2&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/w/the-appian-playbook/delivery-team-roles"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the &lt;a href="https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos"&gt;Three Amigos Concept&lt;/a&gt;) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h2 id="when-should-acceptance-criteria-be-written"&gt;When Should Acceptance Criteria be Written?&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h2 id="best-practices"&gt;Best Practices&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/3</link><pubDate>Tue, 31 Oct 2023 20:14:33 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 3 posted to Guide by joel.larin on 10/31/2023 8:14:33 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h3 id="what-are-acceptance-criteria"&gt;What are Acceptance Criteria?&lt;/h3&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="how-to-write-acceptance-criteria"&gt;How to Write Acceptance Criteria&lt;/h3&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex &lt;a href="http://blog.agileproducts.com/past/2012/9/21/user_stories_expressing_complex_decision_logic_using_truth_tables/"&gt;business logic&lt;/a&gt; (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/4786.Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h3 id="who-writes-acceptance-criteria"&gt;Who Writes Acceptance Criteria?&lt;/h3&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/w/the-appian-playbook/delivery-team-roles"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the &lt;a href="https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos"&gt;Three Amigos Concept&lt;/a&gt;) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h3 id="when-should-acceptance-criteria-be-written"&gt;When Should Acceptance Criteria be Written?&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h3 id="best-practices"&gt;Best Practices&lt;/h3&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/6131.Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/w/guide/3314/best-practices-appian-user-stories"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/2</link><pubDate>Thu, 31 Aug 2023 18:38:27 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 2 posted to Guide by joel.larin on 8/31/2023 6:38:27 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h2 id="what-are-acceptance-criteria"&gt;What are Acceptance Criteria?&lt;/h2&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/w/the-appian-playbook/estimating-user-stories"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="how-to-write-acceptance-criteria"&gt;How to Write Acceptance Criteria&lt;/h3&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex &lt;a href="http://blog.agileproducts.com/past/2012/9/21/user_stories_expressing_complex_decision_logic_using_truth_tables/"&gt;business logic&lt;/a&gt; (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h3 id="who-writes-acceptance-criteria"&gt;Who Writes Acceptance Criteria?&lt;/h3&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/w/the-appian-playbook/delivery-team-roles"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the &lt;a href="https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos"&gt;Three Amigos Concept&lt;/a&gt;) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h3 id="when-should-acceptance-criteria-be-written"&gt;When Should Acceptance Criteria be Written?&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/w/the-appian-playbook/estimating-user-stories"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h3 id="best-practices"&gt;Best Practices&lt;/h3&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/w/the-appian-playbook/estimating-user-stories"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Writing Effective Acceptance Criteria</title><link>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria/revision/1</link><pubDate>Thu, 31 Aug 2023 18:27:54 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:15259462-f574-4cf5-bb9b-99e3dd0929e0</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3246/writing-effective-acceptance-criteria#comments</comments><description>Revision 1 posted to Guide by joel.larin on 8/31/2023 6:27:54 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;h3 id="what-are-acceptance-criteria"&gt;What are Acceptance Criteria?&lt;/h3&gt;
&lt;p&gt;Acceptance Criteria, also called &amp;quot;Conditions of Satisfaction&amp;quot;, are items that a user story must meet in order to deliver the functionality agreed to by the Product Owner. They provide the necessary details to define the boundaries of a user story, but in contrast to Definition of Done, Acceptance Criteria are unique and specific to each story.&lt;/p&gt;
&lt;p&gt;Acceptance Criteria provide the outline for developers and testers to understand functional and nonfunctional aspects of a user story. They aid in &lt;a href="/w/the-appian-playbook/estimating-user-stories"&gt;estimation&lt;/a&gt; and evaluation of whether a story is completed and working as intended.&lt;/p&gt;
&lt;h3 id="goals-of-acceptance-criteria"&gt;Goals of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Describe business requirements&lt;/strong&gt; in such a way that the development team and the business owner come to a mutual understanding of the goals of a story or feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define the scope&lt;/strong&gt; and both functional and non-functional boundaries of what will be delivered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Develop a list of items&lt;/strong&gt; that the Product Owner will approve through story acceptance testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detail the&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;what&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;not the &lt;em&gt;how&lt;/em&gt;&lt;/strong&gt; for each user story.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="how-to-write-acceptance-criteria"&gt;How to Write Acceptance Criteria&lt;/h3&gt;
&lt;p&gt;Acceptance Criteria can be written in many different formats and teams may prefer one format over the other. The key here is to agree as a team what makes the most sense based on the type of requirements, so that the Acceptance Criteria result in mutual understanding between the Product Owner and development team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verification Checklists&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when there are a lot of requirements or functionality for a single story&lt;/li&gt;
&lt;li&gt;Easy to individually mark as complete&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify that when a new employee emails his/her offer letter to HR, HR is required to enter the new hire&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;li&gt;Verify that the new hire&amp;rsquo;s salary must be greater than $0&lt;/li&gt;
&lt;li&gt;Verify that once HR enters the above information, they must indicate if the new employee is a college hire&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the new employee is a college hire, then HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;li&gt;Verify if HR indicates the employee is not a new college hire, then selection of mentor is optional&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;While multiple criterion are needed per story to ensure all angles are covered, a large number of acceptance criteria is a good indication that a story can be broken down into several smaller stories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/"&gt;Given-When-Then&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Best when using real-life examples (specification by example)&lt;/li&gt;
&lt;li&gt;Drives out edge cases&lt;/li&gt;
&lt;li&gt;Be mindful of creating criteria that are too long and difficult to maintain&lt;/li&gt;
&lt;li&gt;Include 1 &amp;quot;When&amp;quot; statement for each acceptance criteria&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #1:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; a new employee has accepted his or her offer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; the new employee emails his or her signed offer letter to a recruiter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR should be prompted to enter the new employee&amp;rsquo;s name, salary, department, and manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Acceptance Criteria #2
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; HR has entered general on-boarding information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; HR indicates the new employee is a college hire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; HR must select a current employee with less than 2 years of experience to be the new hire&amp;rsquo;s mentor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Truth Tables&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Useful if there is a lot of complex &lt;a href="http://blog.agileproducts.com/past/2012/9/21/user_stories_expressing_complex_decision_logic_using_truth_tables/"&gt;business logic&lt;/a&gt; (e.g. expressing specifications, state machine transitions, and calculation based rules)&lt;/li&gt;
&lt;li&gt;Do not replace acceptance criteria with a truth table; truth tables supplement the acceptance criteria. Other supplements can include mockups, process flow diagrams, and sample inputs/outputs for integrations.&lt;/li&gt;
&lt;li&gt;Be sure to use real-life examples&lt;/li&gt;
&lt;li&gt;Avoid using mathematical notations (+/-, &amp;lt;, &amp;gt;, etc.) to be explicit and eliminate ambiguity&lt;/li&gt;
&lt;li&gt;Example:
&lt;ul&gt;
&lt;li&gt;User Story: As an HR employee, I want employees to be onboarded automatically so that I can save time and avoid extra paperwork&lt;/li&gt;
&lt;li&gt;Acceptance Criteria:
&lt;ul&gt;
&lt;li&gt;Verify when HR is choosing the new employee&amp;rsquo;s role, the logic follows the truth table below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="employee-role-table"&gt;Employee Role Table&lt;/h4&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="26.923076923076923%"&gt;New Employee&amp;rsquo;s Department&lt;/th&gt;
&lt;th width="23.076923076923077%"&gt;More than 2 Years of Experience?&lt;/th&gt;
&lt;th width="18.91025641025641%"&gt;Has Technical Background?&lt;/th&gt;
&lt;th width="31.08974358974359%"&gt;Outcome: Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Software Engineer II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineering&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Product Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Associate Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Architect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Associate Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consulting&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Consultant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="questions-to-answer-with-acceptance-criteria"&gt;Questions to Answer with Acceptance Criteria&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/Questions_5F00_to_5F00_answer_5F00_with_5F00_AC.png" /&gt;&lt;/div&gt;
&lt;h3 id="who-writes-acceptance-criteria"&gt;Who Writes Acceptance Criteria?&lt;/h3&gt;
&lt;p&gt;When writing Acceptance Criteria, it is important to take different team members&amp;rsquo; opinions into account to gain a more well-rounded view of the story. Therefore, we suggest writing Acceptance Criteria as an entire &lt;a href="/w/the-appian-playbook/delivery-team-roles"&gt;Delivery Team&lt;/a&gt;, so all parties interpret the story similarly and there are no surprises. As an alternative, one member of the team could write a draft of the Acceptance Criteria, and then hold a meeting with the PO and the rest of the development team (using the &lt;a href="https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos"&gt;Three Amigos Concept&lt;/a&gt;) to groom, review, and finalize the Acceptance Criteria for the story together. In either case, the PO must give the final approval.&lt;/p&gt;
&lt;h3 id="when-should-acceptance-criteria-be-written"&gt;When Should Acceptance Criteria be Written?&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s important that Acceptance Criteria are written, agreed upon, and finalized with the Product Owner &lt;em&gt;before&lt;/em&gt; &lt;a href="/w/the-appian-playbook/estimating-user-stories"&gt;estimation&lt;/a&gt; and story pointing occur. Acceptance Criteria give the team insight into what the story requires, allowing developers to consider dependencies and risks to give more accurate levels of story pointing.&lt;/p&gt;
&lt;p&gt;Changes to Acceptance Criteria after a sprint begins should be minimized as much as possible. Generally, if the update to the Acceptance Criteria is large and would change the originally pointed scope, the team should develop the original story as planned and create a new story to capture the additional requirements. The new story can then be prioritized and added to a future Sprint without putting the current Sprint&amp;rsquo;s goal at risk. Alternatively, if the new requirements are absolutely necessary, the entire story can be pulled from the Sprint and brought into a future Sprint that has enough capacity to complete it.&lt;/p&gt;
&lt;h3 id="best-practices"&gt;Best Practices&lt;/h3&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="49.519230769230774%"&gt;Do...&lt;/th&gt;
&lt;th width="50.480769230769226%"&gt;Do Not...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concisely&lt;/strong&gt; explain functionality from a &lt;strong&gt;business user&amp;rsquo;s perspective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Describe &lt;strong&gt;technical &lt;/strong&gt;design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document any &lt;strong&gt;new or changed &lt;/strong&gt;functionality&lt;/td&gt;
&lt;td&gt;Restate &lt;strong&gt;existing behavior &lt;/strong&gt;for the sake of regression testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure there is a &lt;strong&gt;clear pass/fail result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State the &lt;strong&gt;solution &lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include &lt;strong&gt;negative scenarios, edge cases, and performance criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Include &lt;strong&gt;Definition of Don&lt;/strong&gt;&lt;strong&gt;e&lt;/strong&gt; items, such as &amp;quot;Review code&amp;quot; or &amp;ldquo;Write test scripts&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/1200x0/__key/communityserver-wikis-components-files/00-00-00-00-46/Acceptance_5F00_Criteria_5F00_Example.png" /&gt;&lt;/div&gt;
&lt;h3 id="benefits-of-acceptance-criteria"&gt;Benefits of Acceptance Criteria&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Benefits of Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Establish an agreement between the Product Owner and Development Team on the functionality that will be delivered to eliminate surprises upon delivery&lt;/li&gt;
&lt;li&gt;Uncover and address assumptions about functionality before development begins&lt;/li&gt;
&lt;li&gt;Aid in proper &lt;a href="/w/the-appian-playbook/estimating-user-stories"&gt;story estimation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplifies verification and change management&lt;/li&gt;
&lt;li&gt;Helps make a team more efficient, as estimation is more accurate, additional scope is uncovered and addressed up front, and rework due to misunderstanding is reduced or eliminated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Risks of Not Using Acceptance Criteria
&lt;ul&gt;
&lt;li&gt;Estimation becomes more difficult without acceptance criteria&lt;/li&gt;
&lt;li&gt;Expected functionality may differ from what is actually developed&lt;/li&gt;
&lt;li&gt;Additional scope is more frequently uncovered during development may put sprint commitments at risk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>