SlideShare a Scribd company logo
ACCEPTANCE CRITERIA
Jeff Kosciejew
Let’s Start with a Story
■ At a bank in the US, there’s a department who provide M&A services
■ Hundreds of deals every month
■ The bank currently offers M&A services for companies in about two dozen US States
■ They want to expand to a few more US States
Let’s Start with a Story
■ At a bank in the US, there’s a department who provide M&A services
■ Hundreds of deals every month
■ The bank currently offers M&A services for companies in about two dozen US States
■ They want to expand to a few more US States
■ Depending on the combination of what States the companies involved in the
transaction are in, different documentation needs to be prepared in order to
complete the merger/acquisition of the companies
■ Depending on the size of the deal, different legal documentation may need to be
prepared, and different notices & notice periods needed to be followed
■ Depending on the number of parties involved, other legal documentation may need
to be created
CCC + CC
Card
Conversation
Confirmation
Construction
Consequences
Acceptance Criteria
Discovery
Formalization
Automation
Delivery
Production
Software
§ Shared understanding
§ Examples
§ Explore
§ Executable tests
§ Feature files
§ Scenarios
Acceptance Criteria
■ Discover Conditions of Satisfaction, in Broad Terms
– Agree on what needs to be done
■ Passwords should not be easy to crack
■ Align on What is Meant
– Product Manager, Product Owner, Business Analysts, Developers, Testers, Subject Matter
Experts, Business Stakeholders…
– Align on what we mean by “not easy to crack”
■ Must be at least 8 characters and no more than 12
■ Formalization using Actual Scenarios or Data
– Product Manager, Product Owner, Business Analysts, Developers, Testers, Subject Matter
Experts, Business Stakeholders…
■ “ajx972dab” is a valid password “ajx972d” isn’t
■ What about “12345678”? Or “11111111”?
■ Formalize executable examples & make it repeatable
– How can we make sure we write just enough code to make it work?
– When should we stop coding?
■ Given the “unregistered user” has navigated to the “register” page,
And has entered “newuser” in the “Username” field,
And has entered “ajx972dab” in the “Confirm Password” field,
When they submit the form,
Then the copy “Thank you for Registering” appears on page.
Gherkin
■ Scenario
■ Given
■ When
■ Then
■ And
Gherkin
■ Scenario
– Describes the functionality or feature being tested
■ Given
– Sets the pre-existing conditions which will not be tested
■ When
– The action the user performs
■ Then
– The expected outcome
■ And
– Extends a Given or a Then
(and technically possibly, but
I’d not recommended, a When)
Scenario: Login to my account
Given I have entered valid credentials on the login page,
When I click the submit button,
Then I am presented with my account details on the home
page.
Scenario: Login to my account
Given I have entered valid credentials on the login page,
And my account is not restricted,
When I click the submit button,
Then I am presented with my account details on the home
page.
Scenario: Login to my account
Given I have entered valid credentials on the login page,
And my account is not restricted,
When submit my credentials,
Then I am presented with my account details on the home
page.
Scenario: Login to my account
Given I have entered “activeUser” in the username field on the
login page,
And I have entered “password” in the password field on the
login page,
And my account is not restricted,
When submit my credentials,
Then I am presented with my name, account number, current
balance, and available balance on the home page.
Scenario: Prevent unauthorized access
Given I have entered invalid credentials on the login page,
When I click the submit button,
Then I am presented with an applicable error message.
Scenario: Prevent unauthorized access
Given I am viewing the Login Page,
And I have entered “activeUser” in the username field,
And I have entered “wrongPassword” in the password field,
When submit my credentials,
Then I am presented with an applicable error message.
Scenario: Prevent unauthorized access
Given I am viewing the Login Page,
And I have entered “activeUser” in the username field,
And I have entered “wrongPassword” in the password field,
When submit my credentials,
Then I am presented with an applicable error message.
Gherkin
$ cucumber -s
Feature: Google Homepage Search
Scenario: User can search with “Google Search”
Given I’m on the homepage
And I have typed “random page” into the search field
When I click the Google Search button
Then I go to the random page search results
Scenario: User can search with “I’m Feeling Lucky”
Given I’m on the homepage
And I have typed “random page” into the search field
When I click the I’m Feeling Lucky button
Then I go to a random page
Scenario: User can see the Terms and Conditions
...
15 scenarios (15 passed)
87 Steps (87 passed)
0m3.141s
Scenario: Eating pickles
Given there are 12 pickles on my plate,
When I eat 4 pickles,
Then there are 8 pickles left on my plate.
Scenario: Eating pickles
Given there are <start> pickles on my plate,
When I eat <eat> pickles,
Then there are <left> pickles left on my plate.
start | eat | left
12 | 3 | 8
20 | 5 | 15
2 | 3 | -1
2 | -4 | 6
Scenario Outline
■ Background:
– Given there is a plate,
– And the plate has one or more pickles on it,
– And the plate belongs to Suzy,
■ Scenario: Suzy eats pickles
– When Suzy picks up a pickle,
– Then she has a pickle in her
hand,
– And there is one less pickle
on the plate
■ Scenario: Steve eats pickles
– When Steve picks up a pickle,
– Then he is presented with an
error that these are not his
pickles,
– And all the pickles remain on
the plate
Gherkin
■ Gherkin
– In order to allow Gherkin to be written in a number of languages, the keywords
have been translated into multiple languages. To improve readability and flow,
some languages may have more than one translation for any given keyword.
■ The language you choose for Gherkin should be the same language your users and
domain experts use when they talk about the domain. Translating between
languages should be avoided.
■ English:
– given
■ French:
– Soit; Sachant que; Sachant qu’; Sachant; Etant donné que; Etant donné qu’;
Etant donné; Etant donnée; Etant donnés; Etant données; Étant donné que;
Étant donné qu’; Étant donné; Étant donnée; Étant donnés; Étant données
https://cucumber.io/docs/gherkin/languages/
https://cucumber.io/docs/gherkin/reference/#spoken-languages
Acceptance Criteria
Cooked to an internal
temperature of 130° F
Cooked to an internal
temperature of 165° F
Cooked to an internal
temperature of 145° F
On a plate
And a decorative garnish
With a baked potato
Definition of Done
Think of these like the AC that apply to
all (or most) of the work your team does
Some common things that might be in a Definition of Done…
■ Verify that the time is presented in the user's local time zone
■ Verify that the time is stored in UTC in the DB
■ Verify that the page loads in the users preferred language
■ Pages loads on Chrome, Safari 15, Firefox, and Mobile Safari
■ Code has been reviewed by more than one team member
■ Code has been promoted to Test
■ Page loads in under 300ms
■ All pages meet WCAG 2.1, level AA
■ Etc…
About a DoD…
■ It’s created by the team
■ It’s not a static document
– It evolves over time
– Not everything goes on it right now
– Things will get added & things will get removed
How This Might Help
■ Gherkin is, yes, one way to build up an automated test suite
■ You have living documentation right in your code, that matches what the code does
(if your code starts doing something different, your tests will break)
– It doesn’t get out of date the same way a typical Business Requirements
Document (BRD) or Software Design Document (SDD) so often does
■ When you refactor your code…
– Let’s make sure we mean the same thing by the word ‘refactor’:
■ We change our code to improve it in some way,
without changing the functionality…
It gives us confidence that we’ve not broken anything in that process
■ But those are (IMHO) bonus ways this might help…
How This Might Help
Discovery
Formalization
Automation
Delivery
Production
Software
§ Shared understanding
§ Examples
§ Explore
§ Executable tests
§ Feature files
§ Scenarios
Let’s Get Back to my Story…
■ At a bank in the US, there’s a department who provide M&A services
■ Hundreds of deals every month
■ The bank currently offers M&A services for companies in about two dozen US States
■ They want to expand to a few more US States
■ Depending on the combination of what States the companies involved in the
transaction are in, different documentation needs to be prepared in order to
complete the merger/acquisition of the companies
■ Depending on the size of the deal, different legal documentation may need to be
prepared, and different notices & notice periods needed to be followed
■ Depending on the number of parties involved, other legal documentation may need
to be created
Let’s Get Back to my Story…
■ I started to ask things…
– What if the purchasing company is in Washington, but the company being acquired is in
New York?
– What if the company has offices or places of business in multiple states?
– What if the company has international shareholders?
– What if the company communicates to shareholders in both English & Spanish?
■ Experts on the team told me things like…
– There’s nothing special about that combination, so the system will just work
– That situation can’t happen…
– I would expect the standard documents to be generated…
■ By writing out the expected outcomes of various combinations, in what many might consider
being a verbose way, I was able to identify 11 scenarios that the experts on the team
(including the lawyers on the team) hadn’t considered, and couldn’t tell me what outcome
was expected (which forms & documents would need to be prepared, what the required
notice period would have to be, what language communications would be in…)
■ The team building the M&A system was able to prevent these issues, which would’ve caused
all sorts of problems…
ACCEPTANCE CRITERIA
Jeff Kosciejew

More Related Content

What's hot

Agile methodology and scrum development
Agile methodology and scrum developmentAgile methodology and scrum development
Agile methodology and scrum development
baabtra.com - No. 1 supplier of quality freshers
 
Sprint review presentation
Sprint review presentationSprint review presentation
Sprint review presentation
BernhardBoennemann
 
Sonarqube
SonarqubeSonarqube
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Suresh Krishna Madhuvarsu
 
Agile Software Development Life Cycle
Agile Software Development Life CycleAgile Software Development Life Cycle
Agile Software Development Life Cycle
UTKARSHSRIVASTAVA235
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
Sonatype
 
Agile Story Writing
Agile Story WritingAgile Story Writing
Agile Story Writing
Intelliware Development Inc.
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
Christophe Marchal
 
Implementing Kanban to Improve your Workflow
Implementing Kanban to Improve your WorkflowImplementing Kanban to Improve your Workflow
Implementing Kanban to Improve your Workflow
Jennifer Davis
 
Introduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project ManagementIntroduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project Management
Dan Chuparkoff
 
Effective User Stories
Effective User StoriesEffective User Stories
Effective User Stories
Derek Neighbors
 
Feature driven development (FDD)
Feature driven development (FDD)Feature driven development (FDD)
Feature driven development (FDD)
LennonDukeDuero
 
SonarQube
SonarQubeSonarQube
SonarQube
Gnanaseelan Jeb
 
Top 10 Agile Metrics
Top 10 Agile MetricsTop 10 Agile Metrics
Top 10 Agile Metrics
XBOSoft
 
Waterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementWaterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project Management
Jonathan Donado
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
CodeOps Technologies LLP
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
Intetics
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
Emre Dündar
 
52892006 manual-testing-real-time
52892006 manual-testing-real-time52892006 manual-testing-real-time
52892006 manual-testing-real-time
Sunil Pandey
 
TDD and BDD and ATDD
TDD and BDD and ATDDTDD and BDD and ATDD
TDD and BDD and ATDD
Anuar Nurmakanov
 

What's hot (20)

Agile methodology and scrum development
Agile methodology and scrum developmentAgile methodology and scrum development
Agile methodology and scrum development
 
Sprint review presentation
Sprint review presentationSprint review presentation
Sprint review presentation
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile Software Development Life Cycle
Agile Software Development Life CycleAgile Software Development Life Cycle
Agile Software Development Life Cycle
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
Agile Story Writing
Agile Story WritingAgile Story Writing
Agile Story Writing
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Implementing Kanban to Improve your Workflow
Implementing Kanban to Improve your WorkflowImplementing Kanban to Improve your Workflow
Implementing Kanban to Improve your Workflow
 
Introduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project ManagementIntroduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project Management
 
Effective User Stories
Effective User StoriesEffective User Stories
Effective User Stories
 
Feature driven development (FDD)
Feature driven development (FDD)Feature driven development (FDD)
Feature driven development (FDD)
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Top 10 Agile Metrics
Top 10 Agile MetricsTop 10 Agile Metrics
Top 10 Agile Metrics
 
Waterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementWaterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project Management
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
 
52892006 manual-testing-real-time
52892006 manual-testing-real-time52892006 manual-testing-real-time
52892006 manual-testing-real-time
 
TDD and BDD and ATDD
TDD and BDD and ATDDTDD and BDD and ATDD
TDD and BDD and ATDD
 

Similar to Acceptance Criteria

The Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinThe Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt Eakin
QA or the Highway
 
Shit, I'm now a Project Manager
Shit, I'm now a Project ManagerShit, I'm now a Project Manager
Shit, I'm now a Project Manager
Olli Siebelt
 
College Essay Sample Essay Leadership. Online assignment writing service.
College Essay Sample Essay Leadership. Online assignment writing service.College Essay Sample Essay Leadership. Online assignment writing service.
College Essay Sample Essay Leadership. Online assignment writing service.
Chantel Marie
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
John Ferguson Smart Limited
 
Tax Research MemorandumTo File From Your Name .docx
Tax Research MemorandumTo File        From Your Name  .docxTax Research MemorandumTo File        From Your Name  .docx
Tax Research MemorandumTo File From Your Name .docx
rhetttrevannion
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
John Ferguson Smart Limited
 
Easy Essay Typer. Online assignment writing service.
Easy Essay Typer. Online assignment writing service.Easy Essay Typer. Online assignment writing service.
Easy Essay Typer. Online assignment writing service.
Sonya Pope
 
Business driven development
Business driven developmentBusiness driven development
Business driven development
Benoy John, CSM
 
Cybercrime and the Developer Java2Days 2016 Sofia
Cybercrime and the Developer Java2Days 2016 SofiaCybercrime and the Developer Java2Days 2016 Sofia
Cybercrime and the Developer Java2Days 2016 Sofia
Steve Poole
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Synerzip
 
Essay On Fundamental Duties Of 250 Words In Hindi
Essay On Fundamental Duties Of 250 Words In HindiEssay On Fundamental Duties Of 250 Words In Hindi
Essay On Fundamental Duties Of 250 Words In Hindi
Maria Gomez
 
Onerent Owner Investment Network - Event 1
Onerent Owner Investment Network - Event 1Onerent Owner Investment Network - Event 1
Onerent Owner Investment Network - Event 1
Ray Wei
 
Web Sites From the 2009 ABA TECHSHOW
Web Sites From the 2009 ABA TECHSHOWWeb Sites From the 2009 ABA TECHSHOW
Web Sites From the 2009 ABA TECHSHOW
Oregon Law Practice Management
 
To Kill A Mockingbird Part 1 Essay Questions
To Kill A Mockingbird Part 1 Essay QuestionsTo Kill A Mockingbird Part 1 Essay Questions
To Kill A Mockingbird Part 1 Essay Questions
Joanna Gardner
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
John Ferguson Smart Limited
 
The Freelance Primer: Your First Year as a Freelancer
The Freelance Primer: Your First Year as a FreelancerThe Freelance Primer: Your First Year as a Freelancer
The Freelance Primer: Your First Year as a Freelancer
Shane Pearlman
 
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
The End of Data Entry: Liberate Your Organization Through Automation and Inte...The End of Data Entry: Liberate Your Organization Through Automation and Inte...
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
CAMT
 
An Iterative Approach to Service Oriented Architecture
An Iterative Approach to Service Oriented ArchitectureAn Iterative Approach to Service Oriented Architecture
An Iterative Approach to Service Oriented Architecture
Eric Saxby
 
Scrum + bdd + ddd
Scrum + bdd + dddScrum + bdd + ddd
Scrum + bdd + ddd
Helder De Oliveira
 
BugBounty Roadmap with Mohammed Adam
BugBounty Roadmap with Mohammed AdamBugBounty Roadmap with Mohammed Adam
BugBounty Roadmap with Mohammed Adam
Mohammed Adam
 

Similar to Acceptance Criteria (20)

The Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt EakinThe Art of Gherkin Scripting - Matt Eakin
The Art of Gherkin Scripting - Matt Eakin
 
Shit, I'm now a Project Manager
Shit, I'm now a Project ManagerShit, I'm now a Project Manager
Shit, I'm now a Project Manager
 
College Essay Sample Essay Leadership. Online assignment writing service.
College Essay Sample Essay Leadership. Online assignment writing service.College Essay Sample Essay Leadership. Online assignment writing service.
College Essay Sample Essay Leadership. Online assignment writing service.
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Tax Research MemorandumTo File From Your Name .docx
Tax Research MemorandumTo File        From Your Name  .docxTax Research MemorandumTo File        From Your Name  .docx
Tax Research MemorandumTo File From Your Name .docx
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 
Easy Essay Typer. Online assignment writing service.
Easy Essay Typer. Online assignment writing service.Easy Essay Typer. Online assignment writing service.
Easy Essay Typer. Online assignment writing service.
 
Business driven development
Business driven developmentBusiness driven development
Business driven development
 
Cybercrime and the Developer Java2Days 2016 Sofia
Cybercrime and the Developer Java2Days 2016 SofiaCybercrime and the Developer Java2Days 2016 Sofia
Cybercrime and the Developer Java2Days 2016 Sofia
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
 
Essay On Fundamental Duties Of 250 Words In Hindi
Essay On Fundamental Duties Of 250 Words In HindiEssay On Fundamental Duties Of 250 Words In Hindi
Essay On Fundamental Duties Of 250 Words In Hindi
 
Onerent Owner Investment Network - Event 1
Onerent Owner Investment Network - Event 1Onerent Owner Investment Network - Event 1
Onerent Owner Investment Network - Event 1
 
Web Sites From the 2009 ABA TECHSHOW
Web Sites From the 2009 ABA TECHSHOWWeb Sites From the 2009 ABA TECHSHOW
Web Sites From the 2009 ABA TECHSHOW
 
To Kill A Mockingbird Part 1 Essay Questions
To Kill A Mockingbird Part 1 Essay QuestionsTo Kill A Mockingbird Part 1 Essay Questions
To Kill A Mockingbird Part 1 Essay Questions
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
The Freelance Primer: Your First Year as a Freelancer
The Freelance Primer: Your First Year as a FreelancerThe Freelance Primer: Your First Year as a Freelancer
The Freelance Primer: Your First Year as a Freelancer
 
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
The End of Data Entry: Liberate Your Organization Through Automation and Inte...The End of Data Entry: Liberate Your Organization Through Automation and Inte...
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
 
An Iterative Approach to Service Oriented Architecture
An Iterative Approach to Service Oriented ArchitectureAn Iterative Approach to Service Oriented Architecture
An Iterative Approach to Service Oriented Architecture
 
Scrum + bdd + ddd
Scrum + bdd + dddScrum + bdd + ddd
Scrum + bdd + ddd
 
BugBounty Roadmap with Mohammed Adam
BugBounty Roadmap with Mohammed AdamBugBounty Roadmap with Mohammed Adam
BugBounty Roadmap with Mohammed Adam
 

More from Jeff Kosciejew

How Do You Communicate? - Self-reflection activty
How Do You Communicate? - Self-reflection activtyHow Do You Communicate? - Self-reflection activty
How Do You Communicate? - Self-reflection activty
Jeff Kosciejew
 
Delegation Poker - An Introduction to Team Decisions
Delegation Poker - An Introduction to Team DecisionsDelegation Poker - An Introduction to Team Decisions
Delegation Poker - An Introduction to Team Decisions
Jeff Kosciejew
 
Introduction Presentation to Team Foundations
Introduction Presentation to Team FoundationsIntroduction Presentation to Team Foundations
Introduction Presentation to Team Foundations
Jeff Kosciejew
 
How Do You Lead?
How Do You Lead?How Do You Lead?
How Do You Lead?
Jeff Kosciejew
 
Systems Thinking
Systems ThinkingSystems Thinking
Systems Thinking
Jeff Kosciejew
 
Starting with Agile
Starting with AgileStarting with Agile
Starting with Agile
Jeff Kosciejew
 
Intro to Systems Thinking
Intro to Systems ThinkingIntro to Systems Thinking
Intro to Systems Thinking
Jeff Kosciejew
 
Estimation & Forecasting
Estimation & ForecastingEstimation & Forecasting
Estimation & Forecasting
Jeff Kosciejew
 
How Do You Lead?
How Do You Lead?How Do You Lead?
How Do You Lead?
Jeff Kosciejew
 
Host Leadership
Host LeadershipHost Leadership
Host Leadership
Jeff Kosciejew
 
Host Leadership
Host LeadershipHost Leadership
Host Leadership
Jeff Kosciejew
 
Kanban Intro & Overview
Kanban Intro & OverviewKanban Intro & Overview
Kanban Intro & Overview
Jeff Kosciejew
 
Systems Thinking with the Ball Point Game - A&B 2019
Systems Thinking with the Ball Point Game - A&B 2019Systems Thinking with the Ball Point Game - A&B 2019
Systems Thinking with the Ball Point Game - A&B 2019
Jeff Kosciejew
 
An Introduction to Systems Thinking - GOAT Conference 2018
An Introduction to Systems Thinking - GOAT Conference 2018An Introduction to Systems Thinking - GOAT Conference 2018
An Introduction to Systems Thinking - GOAT Conference 2018
Jeff Kosciejew
 
How do you lead?
How do you lead?How do you lead?
How do you lead?
Jeff Kosciejew
 
Systems Thinking TO S2E04
Systems Thinking TO S2E04Systems Thinking TO S2E04
Systems Thinking TO S2E04
Jeff Kosciejew
 
Systems Thinking with the Ball Point Game
Systems Thinking with the Ball Point GameSystems Thinking with the Ball Point Game
Systems Thinking with the Ball Point Game
Jeff Kosciejew
 
Capital One Canada - Agile & Lean Journey
Capital One Canada - Agile & Lean JourneyCapital One Canada - Agile & Lean Journey
Capital One Canada - Agile & Lean Journey
Jeff Kosciejew
 
Writing User Stories
Writing User StoriesWriting User Stories
Writing User Stories
Jeff Kosciejew
 

More from Jeff Kosciejew (19)

How Do You Communicate? - Self-reflection activty
How Do You Communicate? - Self-reflection activtyHow Do You Communicate? - Self-reflection activty
How Do You Communicate? - Self-reflection activty
 
Delegation Poker - An Introduction to Team Decisions
Delegation Poker - An Introduction to Team DecisionsDelegation Poker - An Introduction to Team Decisions
Delegation Poker - An Introduction to Team Decisions
 
Introduction Presentation to Team Foundations
Introduction Presentation to Team FoundationsIntroduction Presentation to Team Foundations
Introduction Presentation to Team Foundations
 
How Do You Lead?
How Do You Lead?How Do You Lead?
How Do You Lead?
 
Systems Thinking
Systems ThinkingSystems Thinking
Systems Thinking
 
Starting with Agile
Starting with AgileStarting with Agile
Starting with Agile
 
Intro to Systems Thinking
Intro to Systems ThinkingIntro to Systems Thinking
Intro to Systems Thinking
 
Estimation & Forecasting
Estimation & ForecastingEstimation & Forecasting
Estimation & Forecasting
 
How Do You Lead?
How Do You Lead?How Do You Lead?
How Do You Lead?
 
Host Leadership
Host LeadershipHost Leadership
Host Leadership
 
Host Leadership
Host LeadershipHost Leadership
Host Leadership
 
Kanban Intro & Overview
Kanban Intro & OverviewKanban Intro & Overview
Kanban Intro & Overview
 
Systems Thinking with the Ball Point Game - A&B 2019
Systems Thinking with the Ball Point Game - A&B 2019Systems Thinking with the Ball Point Game - A&B 2019
Systems Thinking with the Ball Point Game - A&B 2019
 
An Introduction to Systems Thinking - GOAT Conference 2018
An Introduction to Systems Thinking - GOAT Conference 2018An Introduction to Systems Thinking - GOAT Conference 2018
An Introduction to Systems Thinking - GOAT Conference 2018
 
How do you lead?
How do you lead?How do you lead?
How do you lead?
 
Systems Thinking TO S2E04
Systems Thinking TO S2E04Systems Thinking TO S2E04
Systems Thinking TO S2E04
 
Systems Thinking with the Ball Point Game
Systems Thinking with the Ball Point GameSystems Thinking with the Ball Point Game
Systems Thinking with the Ball Point Game
 
Capital One Canada - Agile & Lean Journey
Capital One Canada - Agile & Lean JourneyCapital One Canada - Agile & Lean Journey
Capital One Canada - Agile & Lean Journey
 
Writing User Stories
Writing User StoriesWriting User Stories
Writing User Stories
 

Recently uploaded

E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
Envertis Software Solutions
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Severalnines
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 

Recently uploaded (20)

E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 

Acceptance Criteria

  • 2.
  • 3. Let’s Start with a Story ■ At a bank in the US, there’s a department who provide M&A services ■ Hundreds of deals every month ■ The bank currently offers M&A services for companies in about two dozen US States ■ They want to expand to a few more US States
  • 4. Let’s Start with a Story ■ At a bank in the US, there’s a department who provide M&A services ■ Hundreds of deals every month ■ The bank currently offers M&A services for companies in about two dozen US States ■ They want to expand to a few more US States ■ Depending on the combination of what States the companies involved in the transaction are in, different documentation needs to be prepared in order to complete the merger/acquisition of the companies ■ Depending on the size of the deal, different legal documentation may need to be prepared, and different notices & notice periods needed to be followed ■ Depending on the number of parties involved, other legal documentation may need to be created
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 12. Acceptance Criteria Discovery Formalization Automation Delivery Production Software § Shared understanding § Examples § Explore § Executable tests § Feature files § Scenarios
  • 13. Acceptance Criteria ■ Discover Conditions of Satisfaction, in Broad Terms – Agree on what needs to be done ■ Passwords should not be easy to crack ■ Align on What is Meant – Product Manager, Product Owner, Business Analysts, Developers, Testers, Subject Matter Experts, Business Stakeholders… – Align on what we mean by “not easy to crack” ■ Must be at least 8 characters and no more than 12 ■ Formalization using Actual Scenarios or Data – Product Manager, Product Owner, Business Analysts, Developers, Testers, Subject Matter Experts, Business Stakeholders… ■ “ajx972dab” is a valid password “ajx972d” isn’t ■ What about “12345678”? Or “11111111”? ■ Formalize executable examples & make it repeatable – How can we make sure we write just enough code to make it work? – When should we stop coding? ■ Given the “unregistered user” has navigated to the “register” page, And has entered “newuser” in the “Username” field, And has entered “ajx972dab” in the “Confirm Password” field, When they submit the form, Then the copy “Thank you for Registering” appears on page.
  • 14.
  • 15. Gherkin ■ Scenario ■ Given ■ When ■ Then ■ And
  • 16. Gherkin ■ Scenario – Describes the functionality or feature being tested ■ Given – Sets the pre-existing conditions which will not be tested ■ When – The action the user performs ■ Then – The expected outcome ■ And – Extends a Given or a Then (and technically possibly, but I’d not recommended, a When)
  • 17. Scenario: Login to my account Given I have entered valid credentials on the login page, When I click the submit button, Then I am presented with my account details on the home page.
  • 18. Scenario: Login to my account Given I have entered valid credentials on the login page, And my account is not restricted, When I click the submit button, Then I am presented with my account details on the home page.
  • 19. Scenario: Login to my account Given I have entered valid credentials on the login page, And my account is not restricted, When submit my credentials, Then I am presented with my account details on the home page.
  • 20. Scenario: Login to my account Given I have entered “activeUser” in the username field on the login page, And I have entered “password” in the password field on the login page, And my account is not restricted, When submit my credentials, Then I am presented with my name, account number, current balance, and available balance on the home page.
  • 21. Scenario: Prevent unauthorized access Given I have entered invalid credentials on the login page, When I click the submit button, Then I am presented with an applicable error message.
  • 22. Scenario: Prevent unauthorized access Given I am viewing the Login Page, And I have entered “activeUser” in the username field, And I have entered “wrongPassword” in the password field, When submit my credentials, Then I am presented with an applicable error message.
  • 23. Scenario: Prevent unauthorized access Given I am viewing the Login Page, And I have entered “activeUser” in the username field, And I have entered “wrongPassword” in the password field, When submit my credentials, Then I am presented with an applicable error message.
  • 24. Gherkin $ cucumber -s Feature: Google Homepage Search Scenario: User can search with “Google Search” Given I’m on the homepage And I have typed “random page” into the search field When I click the Google Search button Then I go to the random page search results Scenario: User can search with “I’m Feeling Lucky” Given I’m on the homepage And I have typed “random page” into the search field When I click the I’m Feeling Lucky button Then I go to a random page Scenario: User can see the Terms and Conditions ... 15 scenarios (15 passed) 87 Steps (87 passed) 0m3.141s
  • 25. Scenario: Eating pickles Given there are 12 pickles on my plate, When I eat 4 pickles, Then there are 8 pickles left on my plate.
  • 26. Scenario: Eating pickles Given there are <start> pickles on my plate, When I eat <eat> pickles, Then there are <left> pickles left on my plate. start | eat | left 12 | 3 | 8 20 | 5 | 15 2 | 3 | -1 2 | -4 | 6
  • 27. Scenario Outline ■ Background: – Given there is a plate, – And the plate has one or more pickles on it, – And the plate belongs to Suzy, ■ Scenario: Suzy eats pickles – When Suzy picks up a pickle, – Then she has a pickle in her hand, – And there is one less pickle on the plate ■ Scenario: Steve eats pickles – When Steve picks up a pickle, – Then he is presented with an error that these are not his pickles, – And all the pickles remain on the plate
  • 28. Gherkin ■ Gherkin – In order to allow Gherkin to be written in a number of languages, the keywords have been translated into multiple languages. To improve readability and flow, some languages may have more than one translation for any given keyword. ■ The language you choose for Gherkin should be the same language your users and domain experts use when they talk about the domain. Translating between languages should be avoided. ■ English: – given ■ French: – Soit; Sachant que; Sachant qu’; Sachant; Etant donné que; Etant donné qu’; Etant donné; Etant donnée; Etant donnés; Etant données; Étant donné que; Étant donné qu’; Étant donné; Étant donnée; Étant donnés; Étant données https://cucumber.io/docs/gherkin/languages/ https://cucumber.io/docs/gherkin/reference/#spoken-languages
  • 29. Acceptance Criteria Cooked to an internal temperature of 130° F Cooked to an internal temperature of 165° F Cooked to an internal temperature of 145° F On a plate And a decorative garnish With a baked potato Definition of Done Think of these like the AC that apply to all (or most) of the work your team does
  • 30. Some common things that might be in a Definition of Done… ■ Verify that the time is presented in the user's local time zone ■ Verify that the time is stored in UTC in the DB ■ Verify that the page loads in the users preferred language ■ Pages loads on Chrome, Safari 15, Firefox, and Mobile Safari ■ Code has been reviewed by more than one team member ■ Code has been promoted to Test ■ Page loads in under 300ms ■ All pages meet WCAG 2.1, level AA ■ Etc…
  • 31. About a DoD… ■ It’s created by the team ■ It’s not a static document – It evolves over time – Not everything goes on it right now – Things will get added & things will get removed
  • 32. How This Might Help ■ Gherkin is, yes, one way to build up an automated test suite ■ You have living documentation right in your code, that matches what the code does (if your code starts doing something different, your tests will break) – It doesn’t get out of date the same way a typical Business Requirements Document (BRD) or Software Design Document (SDD) so often does ■ When you refactor your code… – Let’s make sure we mean the same thing by the word ‘refactor’: ■ We change our code to improve it in some way, without changing the functionality… It gives us confidence that we’ve not broken anything in that process ■ But those are (IMHO) bonus ways this might help…
  • 33. How This Might Help Discovery Formalization Automation Delivery Production Software § Shared understanding § Examples § Explore § Executable tests § Feature files § Scenarios
  • 34. Let’s Get Back to my Story… ■ At a bank in the US, there’s a department who provide M&A services ■ Hundreds of deals every month ■ The bank currently offers M&A services for companies in about two dozen US States ■ They want to expand to a few more US States ■ Depending on the combination of what States the companies involved in the transaction are in, different documentation needs to be prepared in order to complete the merger/acquisition of the companies ■ Depending on the size of the deal, different legal documentation may need to be prepared, and different notices & notice periods needed to be followed ■ Depending on the number of parties involved, other legal documentation may need to be created
  • 35. Let’s Get Back to my Story… ■ I started to ask things… – What if the purchasing company is in Washington, but the company being acquired is in New York? – What if the company has offices or places of business in multiple states? – What if the company has international shareholders? – What if the company communicates to shareholders in both English & Spanish? ■ Experts on the team told me things like… – There’s nothing special about that combination, so the system will just work – That situation can’t happen… – I would expect the standard documents to be generated… ■ By writing out the expected outcomes of various combinations, in what many might consider being a verbose way, I was able to identify 11 scenarios that the experts on the team (including the lawyers on the team) hadn’t considered, and couldn’t tell me what outcome was expected (which forms & documents would need to be prepared, what the required notice period would have to be, what language communications would be in…) ■ The team building the M&A system was able to prevent these issues, which would’ve caused all sorts of problems…