SlideShare a Scribd company logo
1 of 46
Download to read offline
Software contracts
- agility in the world of micro-services
Seb Rose
Mastodon: @sebrose@mastodon.scot
Twitter: @sebrose
Blog: https://cucumber.io/blog/
E-mail: seb.rose@smartbear.com
Please help us by completing this 30 second
microservices and contract testing questionnaire.
@sebrose h
tt
p:/
/smartbear.com
The he
ff
alump trap
@sebrose h
tt
p:/
/smartbear.com
Micro-service architecture …
… a collec
ti
on of services that are:
•Independently deployable
•Loosely coupled
•Organised around business capabili
ti
es
•Owned by a small team
•Highly maintainable and testable
h
tt
ps:/
/microservices.io/
@sebrose h
tt
p:/
/smartbear.com
Bene
fi
ts
The micro-service architecture enables the
rapid, frequent and reliable delivery of
large, complex applica
ti
ons. It also enables
an organiza
ti
on to evolve its technology
stack.
h
tt
ps:/
/microservices.io/
@sebrose h
tt
p:/
/smartbear.com
Pi
tf
alls
• The micro-service I depend on isn’t ready
• The micro-service I depend on doesn’t
provide the func
ti
onality I need
• I’m not con
fi
dent that the new version of
the micro-service will behave the same
• We want to update our micro-service, but
don’t know who is using it. Or how.
@sebrose h
tt
p:/
/smartbear.com
You have a distributed monolith
Beth Skurrie
If you can’t deploy services independently,
you don’t have micro-services.
Spot the he
ff
alump
@sebrose h
tt
p:/
/smartbear.com
TL;DR
• All interac
ti
ons between so
ft
ware
components are governed by contracts
• Contract tes
ti
ng ensures that both
components have the same expecta
ti
ons
• Contract tests should be wri
tt
en by the
developers
@sebrose h
tt
p:/
/smartbear.com
Agenda
So
ft
ware contracts
Where do contracts come from?
Decoupling with test doubles
Contract tests
Managing dependencies
Pact & Pact Broker
Q & A
@sebrose h
tt
p:/
/smartbear.com
Dependencies
X
Contracts
@sebrose h
tt
p:/
/smartbear.com
Consumer & provider
C P
Contract
@sebrose h
tt
p:/
/smartbear.com
Design by contract
Design by contract
Contract
• an agreement between client
and supplier
Characteris
ti
cs
• expect some bene
fi
ts
• incur some obliga
ti
ons
@sebrose h
tt
p:/
/smartbear.com
Explicit contract
h
tt
ps:/
/ijcnlp2008.org/images/bolt-clipart-clip-art-12.png
@sebrose h
tt
p:/
/smartbear.com
Implicit contract
h
tt
ps:/
/www.slidebackgrounds.com/bolt/jkM2jm8-bolt-nut-screw-backgrounds/840
@sebrose h
tt
p:/
/smartbear.com
Implicit contract
h
tt
ps:/
/www.slidebackgrounds.com/bolt/jkM2jm8-bolt-nut-screw-backgrounds/840
@sebrose h
tt
p:/
/smartbear.com
Agenda
So
ft
ware contracts
Where do contracts come from?
Decoupling with test doubles
Contract tests
Managing dependencies
Pact & Pact Broker
Q & A
@sebrose h
tt
p:/
/smartbear.com
▪Closed and complete Provider contracts express a service's business
function capabilities in terms of the complete set of exportable elements
available to consumers, and as such are closed and complete with respect
to the functionality available to the system.
▪Singular and authoritative Provider contracts are singular and authoritative
in their expression of the business functionality available to the system.
▪Bounded stability and immutability A provider contract is stable and
immutable for a bounded period and/or locale. Provider contracts typically
use some form of versioning to differentiate differently bounded instances
of the contract.
https://martinfowler.com/articles/consumerDrivenContracts.html
Provider contracts
@sebrose h
tt
p:/
/smartbear.com
▪Open and incomplete Consumer contracts are open and incomplete with
respect to the business functionality available to the system. They express
a subset of the system's business function capabilities in terms of the
consumer's expectations of the provider contract.
▪Multiple and non-authoritative Consumer contracts are multiple in
proportion to the number of consumers of a service, and each is non-
authoritative with regard to the total set of contractual obligations placed on
the provider. Consumers may evolve at different rates.
▪Bounded stability and immutability Like provider contracts, consumer
contracts are valid for a particular period of time and/or location.
https://martinfowler.com/articles/consumerDrivenContracts.html
Consumer driven contracts (CDC)
@sebrose h
tt
p:/
/smartbear.com
How do you agree a contract?
@sebrose h
tt
p:/
/smartbear.com
Provider
team
Consumer
team
How do you agree a contract?
@sebrose h
tt
p:/
/smartbear.com
Provider
team
Consumer
team
How do you agree a contract?
@sebrose h
tt
p:/
/smartbear.com
Provider
team
Consumer
team
How do you agree a contract?
@sebrose h
tt
p:/
/smartbear.com
Provider
team
Consumer
teams
How do you agree a contract?
@sebrose h
tt
p:/
/smartbear.com
You’re given it and have to live with it
OR
You nego
ti
ate and document a contract
h
tt
ps:/
/microservices.io/
How do you agree a contract?
@sebrose h
tt
p:/
/smartbear.com
• Each consumer captures their expecta
ti
ons
of the provider in a separate contract.
• All of these contracts are shared with the
provider so they gain insight into the
obliga
ti
ons they must ful
fi
l for each
individual client.
• The provider can create a test suite to
validate these obliga
ti
ons.
h
tt
ps:/
/thoughtworks.github.io/pacto/pa
tt
erns/cdc/
Consumer driven contracts
@sebrose h
tt
p:/
/smartbear.com
Agenda
So
ft
ware contracts
Where do contracts come from?
Decoupling with test doubles
Contract tests
Managing dependencies
Pact & Pact Broker
Q & A
@sebrose h
tt
p:/
/smartbear.com
C
C
Collaboration tests
Monolithic approach
Contract
Collaboration
Test
Production P
P
@sebrose h
tt
p:/
/smartbear.com
C
C
Collaboration tests
Test
double
Decoupled approach
Contract
Collaboration
Test
Production P
@sebrose h
tt
p:/
/smartbear.com
C
C
Collaboration tests
Test
double
Success!
Collaboration
Test
Production P
@sebrose h
tt
p:/
/smartbear.com
C
C
Collaboration tests
Test
double
Fail
Collaboration
Test
Production
Incorrect behaviour
P
@sebrose h
tt
p:/
/smartbear.com
Agenda
So
ft
ware contracts
Where do contracts come from?
Decoupling with test doubles
Contract tests
Managing dependencies
Pact & Pact Broker
Q & A
@sebrose h
tt
p:/
/smartbear.com
JB Rainsberger, via GOOS mailing list, “Unit-test mock/stub assumptions rots”
15 March 2012
Systema
ti
c contract tes
ti
ng
• Collabora
ti
on tests make
assump
ti
ons about the contract
• Contract tests try to jus
ti
fy those
assump
ti
ons
JB Rainsberger, via GOOS mailing list, “Unit-test mock/stub assumptions rots”
15 March 2012
@sebrose h
tt
p:/
/smartbear.com
Test
double
Contract test
Contract Test
P
@sebrose h
tt
p:/
/smartbear.com
Test
double
I
n
t
e
r
f
a
c
e
Hand-rolled
contract tests
Contract Test
P
@sebrose h
tt
p:/
/smartbear.com
Agenda
So
ft
ware contracts
Where do contracts come from?
Decoupling with test doubles
Contract tests
Managing dependencies
Pact & Pact Broker
Q & A
@sebrose h
tt
p:/
/smartbear.com
CI Staging Prod
C3 C2 C1
P3 P2 P1
CI - consumer & provider
Test Test Test
Test
Test Test Test
@sebrose h
tt
p:/
/smartbear.com
Agenda
So
ft
ware contracts
Where do contracts come from?
Decoupling with test doubles
Contract tests
Managing dependencies
Pact & Pact Broker
Q & A
@sebrose h
tt
p:/
/smartbear.com
Pact provides a mechanism for crea
ti
ng a
contract between a service consumer and a
service provider, and then providing the tools
to validate that the consumer and provider
adhere to the contact independently of each
other.
https://dius.com.au/2014/05/19/simplifying-micro-service-testing-with-pacts/
Simplifying consumer driven contracts
@sebrose h
tt
p:/
/smartbear.com
•Consumer creates contracts using Pact DSL
•When consumer tests are run:
•Pact creates a mock HTTP server
•a Pact
fi
le is created
•Provider uses Pact
fi
le to verify compa
ti
bility
•Provider may o
ff
er “backdoor” interface
Pact - key points
@sebrose h
tt
p:/
/smartbear.com
https://www.youtube.com/watch?v=79GKBYSqMIo
@sebrose h
tt
p:/
/smartbear.com
https://www.youtube.com/watch?v=79GKBYSqMIo
@sebrose h
tt
p:/
/smartbear.com
https://www.youtube.com/watch?v=79GKBYSqMIo
“Matrix”
@sebrose h
tt
p:/
/smartbear.com
CI Staging Prod
V32 V29 V27
Complica
ti
ons
W3 W2
X9 X8 X7
Y15 Y14 Y9
Z84 Z73 Z72
@sebrose h
tt
p:/
/smartbear.com
• Pacts are published by Consumer
• Pacts are fetched by Provider
• Results are stored in the “Matrix”
• “Matrix” supports independent deployment
Pact broker - key points
@sebrose h
tt
p:/
/smartbear.com
Pact
fl
ow is the complete contract testing solution
allowing teams to orchestrate and scale their contract
testing initiative.
Visibility to focus on what ma
tt
ers
With Pact
fl
ow, developers can
fi
nd and
fi
x integration
errors earlier in the SDLC and teams can improve
communication & collaboration, reduce reliance on
E2E tests resulting in faster and safer deployments.
@sebrose h
tt
p:/
/smartbear.com
•Increases agility and con
fi
dence
•Reduces need for integra
ti
on tests
•Speeds up development
•No subs
ti
tute for communica
ti
on
•Is a development ac
ti
vity
•Does not replace other forms of tes
ti
ng
Take aways
Contract tes
ti
ng:
https://bddbooks.com
Please help us by completing this
30 second microservices and
contract testing questionnaire.
Seb Rose
Mastodon: @sebrose@mastodon.scot
Twitter: @sebrose
Blog: https://cucumber.io/blog/
E-mail: seb.rose@smartbear.com
Download these
slides

More Related Content

Similar to Software contracts and microservices

Ibm system storage solutions handbook
Ibm system storage solutions handbook Ibm system storage solutions handbook
Ibm system storage solutions handbook Diego Alberto Tamayo
 
10 crucial must have features in a Contract Management Software
10 crucial must have features in a Contract Management Software10 crucial must have features in a Contract Management Software
10 crucial must have features in a Contract Management SoftwareOptimus BT
 
Vistex Contract Overview
Vistex Contract OverviewVistex Contract Overview
Vistex Contract OverviewSAPYard
 
Web Services Agreement Specification
Web Services Agreement SpecificationWeb Services Agreement Specification
Web Services Agreement SpecificationPrashanth Selvam
 
Understanding Open Protocols in Building Automation
Understanding Open Protocols in Building AutomationUnderstanding Open Protocols in Building Automation
Understanding Open Protocols in Building AutomationSchneider Electric
 
Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...Seb Rose
 
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016Amazon Web Services
 
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017Amazon Web Services
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4LennartF
 
Pairwyse DSL Protocol - Whitepaper - V08.pdf
Pairwyse DSL Protocol - Whitepaper - V08.pdfPairwyse DSL Protocol - Whitepaper - V08.pdf
Pairwyse DSL Protocol - Whitepaper - V08.pdfashwin164916
 
IRJET - Bit-Contracts: Smart Contracts for Cars
IRJET - Bit-Contracts: Smart Contracts for CarsIRJET - Bit-Contracts: Smart Contracts for Cars
IRJET - Bit-Contracts: Smart Contracts for CarsIRJET Journal
 
Microservices_vs_SOA
Microservices_vs_SOAMicroservices_vs_SOA
Microservices_vs_SOAYakov Liskoff
 
Confirm Client Requirements
Confirm Client RequirementsConfirm Client Requirements
Confirm Client RequirementsSteven Cahill
 
Consumer Driven Contracts
Consumer Driven ContractsConsumer Driven Contracts
Consumer Driven ContractsVisuality
 
Accenture managing-maintenance-and-support-costs
Accenture managing-maintenance-and-support-costsAccenture managing-maintenance-and-support-costs
Accenture managing-maintenance-and-support-costsKarthik Arumugham
 
6 software contracts
6 software contracts6 software contracts
6 software contractsSaqib Raza
 
Whitepaper : Testing Micro Services Part I & Part 2
Whitepaper : Testing Micro Services Part I & Part 2Whitepaper : Testing Micro Services Part I & Part 2
Whitepaper : Testing Micro Services Part I & Part 2Newt Global Consulting LLC
 

Similar to Software contracts and microservices (20)

Ibm system storage solutions handbook
Ibm system storage solutions handbook Ibm system storage solutions handbook
Ibm system storage solutions handbook
 
10 crucial must have features in a Contract Management Software
10 crucial must have features in a Contract Management Software10 crucial must have features in a Contract Management Software
10 crucial must have features in a Contract Management Software
 
Vistex Contract Overview
Vistex Contract OverviewVistex Contract Overview
Vistex Contract Overview
 
Contract Versioning
Contract VersioningContract Versioning
Contract Versioning
 
Web Services Agreement Specification
Web Services Agreement SpecificationWeb Services Agreement Specification
Web Services Agreement Specification
 
Understanding Open Protocols in Building Automation
Understanding Open Protocols in Building AutomationUnderstanding Open Protocols in Building Automation
Understanding Open Protocols in Building Automation
 
Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...
 
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2016
 
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017
Get Started Today with Cloud-Ready Contracts | AWS Public Sector Summit 2017
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4
 
Pairwyse DSL Protocol - Whitepaper - V08.pdf
Pairwyse DSL Protocol - Whitepaper - V08.pdfPairwyse DSL Protocol - Whitepaper - V08.pdf
Pairwyse DSL Protocol - Whitepaper - V08.pdf
 
IRJET - Bit-Contracts: Smart Contracts for Cars
IRJET - Bit-Contracts: Smart Contracts for CarsIRJET - Bit-Contracts: Smart Contracts for Cars
IRJET - Bit-Contracts: Smart Contracts for Cars
 
SOA Principles : 4.service loose coupling
SOA Principles : 4.service loose couplingSOA Principles : 4.service loose coupling
SOA Principles : 4.service loose coupling
 
Microservices_vs_SOA
Microservices_vs_SOAMicroservices_vs_SOA
Microservices_vs_SOA
 
Coherent REST API design
Coherent REST API designCoherent REST API design
Coherent REST API design
 
Confirm Client Requirements
Confirm Client RequirementsConfirm Client Requirements
Confirm Client Requirements
 
Consumer Driven Contracts
Consumer Driven ContractsConsumer Driven Contracts
Consumer Driven Contracts
 
Accenture managing-maintenance-and-support-costs
Accenture managing-maintenance-and-support-costsAccenture managing-maintenance-and-support-costs
Accenture managing-maintenance-and-support-costs
 
6 software contracts
6 software contracts6 software contracts
6 software contracts
 
Whitepaper : Testing Micro Services Part I & Part 2
Whitepaper : Testing Micro Services Part I & Part 2Whitepaper : Testing Micro Services Part I & Part 2
Whitepaper : Testing Micro Services Part I & Part 2
 

More from Seb Rose

DevSecOps - Agile Get-Together 2022.pdf
DevSecOps - Agile Get-Together 2022.pdfDevSecOps - Agile Get-Together 2022.pdf
DevSecOps - Agile Get-Together 2022.pdfSeb Rose
 
Example mapping - slice any story into testable examples - SoCraTes 2022.pdf
Example mapping - slice any story into testable examples - SoCraTes 2022.pdfExample mapping - slice any story into testable examples - SoCraTes 2022.pdf
Example mapping - slice any story into testable examples - SoCraTes 2022.pdfSeb Rose
 
Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)Seb Rose
 
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021Seb Rose
 
A brief history of requirements - Unicom 2022
A brief history of requirements  - Unicom 2022A brief history of requirements  - Unicom 2022
A brief history of requirements - Unicom 2022Seb Rose
 
Example mapping (with builds) - ProductWorld 2022
Example mapping (with builds)  - ProductWorld 2022Example mapping (with builds)  - ProductWorld 2022
Example mapping (with builds) - ProductWorld 2022Seb Rose
 
Example mapping - ProductWorld 2022
Example mapping - ProductWorld 2022Example mapping - ProductWorld 2022
Example mapping - ProductWorld 2022Seb Rose
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021Seb Rose
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021Seb Rose
 
No code, low code, machine code - Unicom 2021
No code, low code, machine code -  Unicom 2021No code, low code, machine code -  Unicom 2021
No code, low code, machine code - Unicom 2021Seb Rose
 
BDD: from soup to nuts - The Future of Work Scotland 2021
BDD: from soup to nuts  - The Future of Work Scotland 2021BDD: from soup to nuts  - The Future of Work Scotland 2021
BDD: from soup to nuts - The Future of Work Scotland 2021Seb Rose
 
Contrasting test automation and BDD - 2020
Contrasting test automation and BDD - 2020Contrasting test automation and BDD - 2020
Contrasting test automation and BDD - 2020Seb Rose
 
Are BDD and test automation the same thing? Automation Guild 2021
Are BDD and test automation the same thing?   Automation Guild 2021Are BDD and test automation the same thing?   Automation Guild 2021
Are BDD and test automation the same thing? Automation Guild 2021Seb Rose
 
"Our BDDs are broken!" Lean Agile Exchange 2020
"Our BDDs are broken!"   Lean Agile Exchange 2020"Our BDDs are broken!"   Lean Agile Exchange 2020
"Our BDDs are broken!" Lean Agile Exchange 2020Seb Rose
 
User stories: from good intentions to bad advice - Agile Scotland 2019
User stories: from good intentions to bad advice - Agile Scotland 2019User stories: from good intentions to bad advice - Agile Scotland 2019
User stories: from good intentions to bad advice - Agile Scotland 2019Seb Rose
 
User stories: from good intentions to bad advice - Lean Agile Scotland 2019
User stories: from good intentions to bad advice - Lean Agile Scotland 2019User stories: from good intentions to bad advice - Lean Agile Scotland 2019
User stories: from good intentions to bad advice - Lean Agile Scotland 2019Seb Rose
 
What is a user story anyway - lightning talk 2018
What is a user story anyway - lightning talk 2018What is a user story anyway - lightning talk 2018
What is a user story anyway - lightning talk 2018Seb Rose
 
How long is a piece of string?
How long is a piece of string?How long is a piece of string?
How long is a piece of string?Seb Rose
 
Introduction to BDD - SQUID 2018
Introduction to BDD - SQUID 2018Introduction to BDD - SQUID 2018
Introduction to BDD - SQUID 2018Seb Rose
 
Introduction to BDD - shortened
Introduction to BDD - shortenedIntroduction to BDD - shortened
Introduction to BDD - shortenedSeb Rose
 

More from Seb Rose (20)

DevSecOps - Agile Get-Together 2022.pdf
DevSecOps - Agile Get-Together 2022.pdfDevSecOps - Agile Get-Together 2022.pdf
DevSecOps - Agile Get-Together 2022.pdf
 
Example mapping - slice any story into testable examples - SoCraTes 2022.pdf
Example mapping - slice any story into testable examples - SoCraTes 2022.pdfExample mapping - slice any story into testable examples - SoCraTes 2022.pdf
Example mapping - slice any story into testable examples - SoCraTes 2022.pdf
 
Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)
 
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
 
A brief history of requirements - Unicom 2022
A brief history of requirements  - Unicom 2022A brief history of requirements  - Unicom 2022
A brief history of requirements - Unicom 2022
 
Example mapping (with builds) - ProductWorld 2022
Example mapping (with builds)  - ProductWorld 2022Example mapping (with builds)  - ProductWorld 2022
Example mapping (with builds) - ProductWorld 2022
 
Example mapping - ProductWorld 2022
Example mapping - ProductWorld 2022Example mapping - ProductWorld 2022
Example mapping - ProductWorld 2022
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021
 
No code, low code, machine code - Unicom 2021
No code, low code, machine code -  Unicom 2021No code, low code, machine code -  Unicom 2021
No code, low code, machine code - Unicom 2021
 
BDD: from soup to nuts - The Future of Work Scotland 2021
BDD: from soup to nuts  - The Future of Work Scotland 2021BDD: from soup to nuts  - The Future of Work Scotland 2021
BDD: from soup to nuts - The Future of Work Scotland 2021
 
Contrasting test automation and BDD - 2020
Contrasting test automation and BDD - 2020Contrasting test automation and BDD - 2020
Contrasting test automation and BDD - 2020
 
Are BDD and test automation the same thing? Automation Guild 2021
Are BDD and test automation the same thing?   Automation Guild 2021Are BDD and test automation the same thing?   Automation Guild 2021
Are BDD and test automation the same thing? Automation Guild 2021
 
"Our BDDs are broken!" Lean Agile Exchange 2020
"Our BDDs are broken!"   Lean Agile Exchange 2020"Our BDDs are broken!"   Lean Agile Exchange 2020
"Our BDDs are broken!" Lean Agile Exchange 2020
 
User stories: from good intentions to bad advice - Agile Scotland 2019
User stories: from good intentions to bad advice - Agile Scotland 2019User stories: from good intentions to bad advice - Agile Scotland 2019
User stories: from good intentions to bad advice - Agile Scotland 2019
 
User stories: from good intentions to bad advice - Lean Agile Scotland 2019
User stories: from good intentions to bad advice - Lean Agile Scotland 2019User stories: from good intentions to bad advice - Lean Agile Scotland 2019
User stories: from good intentions to bad advice - Lean Agile Scotland 2019
 
What is a user story anyway - lightning talk 2018
What is a user story anyway - lightning talk 2018What is a user story anyway - lightning talk 2018
What is a user story anyway - lightning talk 2018
 
How long is a piece of string?
How long is a piece of string?How long is a piece of string?
How long is a piece of string?
 
Introduction to BDD - SQUID 2018
Introduction to BDD - SQUID 2018Introduction to BDD - SQUID 2018
Introduction to BDD - SQUID 2018
 
Introduction to BDD - shortened
Introduction to BDD - shortenedIntroduction to BDD - shortened
Introduction to BDD - shortened
 

Recently uploaded

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Software contracts and microservices