SlideShare a Scribd company logo
SPECIFICATION BY EXAMPLE
Looking for the source of the truth
Specification by Example
• Key benefits:
– Less rework
– Higher product quality
– Implementing changes more efficiently
– Better alignment of the activities of different roles
• Key Practices:
– Deriving scope from goals
– Specify collaboratively
– Illustrating using examples
– Refining the specification
– Automation validation
– Evolving a living documentation system
Specification by example
• Understand better the goals of the system
• Building a living documentation of the system
• Maintaining a constant source of the truth
• Validating the system often in order to ensure
the functionality
• To describe the system in a way so that it is
easy to add features.
Deriving scope from goals
• F16 should fly at 2 to 2.5M (requirement)
• F16 should be able to scape from combat
(goal)
GOAL1
REQ1
REQ2
REQ3
GOAL2
Strategy
Needs
CompetitivenessSolution to
Implement:
A requirement use to be a direct
answer to a specific goal
Deriving scope from goals
• Ask for the goals using the requirements
• Be clear about the goals when the
requirements are defined.
• Refine your requirements in the context of the
goals not other requirements
• If you have any doubt, don’t be fooled, ask for
the right person .
Deriving scope from goals
• “The hardest single part of building a software
system is deciding precisely what to build.”
– Fred Brooks, The Mythical Man-Month: Essays on Software
Engineering (Addison-Wesley, 1975)
• “People tell you what they think they need, and by asking
them “Why” you can identify new implicit goals they have.
Many organizations aren’t able to specify their business goals
explicitly. However, once you derived the goals, you should
again reverse and derive scope from the identified goals,
potentially discarding the originally assumed scope.”
– Christian Hassa
Deriving scope from goals
Received scope
Adressesed goals
Derived scope
WHY DO YOU NEED THAT?
COLLABORATIVE SOLUTION
Challenging requirements is always part of the solution model
EXERCISE 1
• The system should persist my shopping cart
for 1-2 weeks
• The system should be able to send me a copy
of my shopping cart
• The system should alert if any of the prices
has changed in the articles of my shopping
cart.
• The shopping cart should appear always when
the user logs in.
Deriving scope from goals
• As Stakeholder (WHO)
• In order to achieve some goal (WHY)
• I need some system function (HOW)
Advice: Use this form for deriving
scope from goals
Specify collaboratively
• Different teams in different context have their
own way of collaborating.
– Find your own way!
– Discover how to make efficient conventions!
– Always look for improvements in your way!
• Of course I am talking about cross-functional-
teams.
Specify collaboratelly
“Specification workshops are intensive,
hands-on domain and scope exploration
exercises that ensure that the implementation
team, business stakeholders, and domain
experts build a consistent, shared understanding
of what the system should do”
– Gojko Adzic. “Specification by Example: How
Successful Teams Deliver the Right Software.”
EXERCISE 2
• Let’s make a kite.
Specify collaboratelly
• Workshop goals
– To find the technical constraints (feasibility)
– To find the business constraints (boundaries)
– To address the solution targets (goals)
– To build a common vocabulary
– To use the right examples for specifications
– To establish a safety network of knowledge and
later refinement.
Specify collaboratelly
• Prepare the workshop beforehand.
• Record the event for further referencing.
• Business use to drive but others can raise some insights.
• Clasify the topics:
– Not in scope
– To further investigation
– Not easy feasible
– High importance
• Outcome:
– write a document with some conclusions.
– Create a follow up agenda
– Next steps
Specify collaboratelly
• Smaller workshops (three amigos)
– A tester
– A developer
– A Business analyst
Outcome: Acceptance
Criteria Narratives
Be sensitive to your user task’s
“altitude”
16
© Jeff Patton, all rights reserved, www.AgileProductDesign.com
* from Cockburn’s Writing
Effective Use Cases
Functional or “Sea level”
I’d reasonably expect to complete this in a single sitting
Sub-Functional or “Fish level”
Small tasks that by themselves don’t mean much. I’ll do
several of these before I reach a functional level goal
Activity or “Kite level”
Longer term goals often with no precise ending. I’ll
perform several functional tasks in the context of an activity
Too abstract
Too detailed
Think about user
experience at this
level
Specify collaboratelly
• Find the right examples to illustrate a feature
• Use the examples as drivers in a specification
workshop
• Write out those examples for further
reference.
• Use the domain vocabulary around the
examples.
• Examples are easy to understand and share.
Specify collaboratelly
Refination meetings:
• Acceptance criteria write down. (peers)
• Acceptance criteria review. (seniors)
• Batching questions. (business)
• Key conversations  use your documentation tool for
collect it.
• Planning meetings. (testers, developers)
• Elephant Carpaccio & Story mapping
– http://agileproductdesign.com/writing/how_you_slice_it.pdf
– http://alistair.cockburn.us/Elephant+Carpaccio+Exercise
The user story map contains two
important anatomical features
• The backbone of the application is the list of
essential activities the application supports
• The walking skeleton is the software we build that
supports the least number of necessary tasks
across the full span of user experience
19
© Jeff Patton, all rights reserved, www.AgileProductDesign.com
time
necessity
The backbone
The walking skeleton
Given story map organized vertically by
necessity, we need only slice to plan
• Choose coherent groups of features that consider the span of business
functionality and user activities
• Support all necessary activities with the first release
• Improve activity support and add additional activities with subsequent
releases
20
© Jeff Patton, all rights reserved, www.AgileProductDesign.com
time
optionality
necessary
less
optional
more
optional
first release
second release
third release
Exercise 3
• Slice the shopping cart epic from user stories
to tasks
• Review it against another group (win to win)
• User story mapping to release the shopping
cart product incrementally
• Outcome: the final acceptance criteria for the
first release.
Illustrating using examples
• “Illustrating requirements using examples is a
way to specify how we expect the system to
work with enough detail that we can check
that assertion. Examples used to illustrate
requirements are good black-box tests.”
– Gojko Adzic. “Specification by Example: How
Successful Teams Deliver the Right Software.”
Illustrating using examples
• Examples spot inconsistencies
– Free delivery example
• Examples spot ambiguities
– Free for everyone!
• Examples helps to dive in the user story
– When to send an email?
• Examples shows boundaries
– Who is NOT able to receive this loan
Illustrating using examples
• Examples should be complete
Illustrating using examples
• Examples should be realistic
– Avoid making up data
– If possible use real data
– Extract examples from the organization
– Or clients!
I am not good as an example
Illustrating using examples
• Use examples for non functional requirements
– Performance targets should be precise
– Resiliency only has a meaning with examples
• Use examples to find the boundaries
– Technical exclusions
– Warning messages
– Actions after push to the limits
• Use mockups to illustrate your examples.
Illustrating using examples
• The paradigmatic example (example of
examples)
– https://en.wikipedia.org/wiki/Tests_of_general_re
lativity
• Good examples capture expectations and
business concepts.
Refining the specification
“In its rough form, a diamond is a lusterless,
translucent crystal that resembles a chip of
broken glass. For it to be transformed into a
jewel, it must be cut into a particular gem shape
and then polished, facet by facet.”
– Edward Jay Epstein, The Diamond Invention
Refining the specification
• From raw examples to Acceptance tests
• Focused, Precise and Testable
• About business functionality, not software
design
• Should document what the system does, no
more.
• Where were the S.M.A.R.T. requirements?
– Those are coming from Management by
Objectives – Peter Drucker 1.981
Refining the specification
• Free delivery example
• Bad examples are more frequent than good
ones
– Scripts are not specifications
– Technical oriented language is a bad sympton
– Describe what the system does not imply dense
user-system flow.
– But still should be executable.
– Merciless refination
Refining the specification
• Self exploratory
– Use Inputs and outputs as behaviour expectation
– Use a title and a description paragraph
– Specify the actor and the goal to achieve
– Try to understand it in the context of a regression
test fail.
– Ask another person if she understands the
specification.
Exercise 4
• The shopping basket revisited
– Refine our specification
– Add a new functionality
Refining the specification
• A good specification should contain tipically
– Key examples of each important part of the
business functionality.
– An example of each important technical edge case
or boundary conditions.
– An example of each particular troublesome area
of the expected implmentation.
• Over-specify has always a bad smell
Refining the specification
• Self-explanatory
• Use the domain language
• Use given-when-then narrative aka Gherkin
• Focused in a single aspect
• Do not try to over specify (refine instead)
• Use the happy path to enable the automation
pipeline.
Automating validation

More Related Content

What's hot

Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
Hien Nguyen
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
Corina Pip
 
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
TEST Huddle
 
Ilari henrik
Ilari henrikIlari henrik
Ilari henrik
CodeFest
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing Dilemmas
Aman King
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
TEST Huddle
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
Anand Bagmar
 
Test Automation Strategies for the Agile World
Test Automation Strategies for the Agile WorldTest Automation Strategies for the Agile World
Test Automation Strategies for the Agile World
TechWell
 
Test Automation Principles
Test Automation PrinciplesTest Automation Principles
Test Automation Principles
NetSuite
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar
 
Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...
Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...
Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...
DevOps.com
 
A journey to a Full Stack Tester
A journey to a Full Stack Tester A journey to a Full Stack Tester
A journey to a Full Stack Tester
KMS Technology
 
Automating good coding practices
Automating good coding practicesAutomating good coding practices
Automating good coding practices
Kevin Peterson
 
Specification by Example - Agile India 2015
Specification by Example - Agile India 2015Specification by Example - Agile India 2015
Specification by Example - Agile India 2015
Ankur Sambhar
 
Way to Agile - USTH
Way to Agile - USTHWay to Agile - USTH
Way to Agile - USTH
Hien Nguyen
 
How to get Automated Testing "Done"
How to get Automated Testing "Done"How to get Automated Testing "Done"
How to get Automated Testing "Done"
TEST Huddle
 
Tech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDDTech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDD
DUONG Trong Tan
 
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
TEST Huddle
 
Impact Analysis - LoopConf
Impact Analysis - LoopConfImpact Analysis - LoopConf
Impact Analysis - LoopConf
Chris Lema
 
Automated Software Testing
Automated Software TestingAutomated Software Testing
Automated Software Testing
Ray Nicholus
 

What's hot (20)

Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
 
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
 
Ilari henrik
Ilari henrikIlari henrik
Ilari henrik
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing Dilemmas
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
 
Test Automation Strategies for the Agile World
Test Automation Strategies for the Agile WorldTest Automation Strategies for the Agile World
Test Automation Strategies for the Agile World
 
Test Automation Principles
Test Automation PrinciplesTest Automation Principles
Test Automation Principles
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
 
Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...
Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...
Achieve Intelligent Test Execution: Strategies for Streamlining Regression Te...
 
A journey to a Full Stack Tester
A journey to a Full Stack Tester A journey to a Full Stack Tester
A journey to a Full Stack Tester
 
Automating good coding practices
Automating good coding practicesAutomating good coding practices
Automating good coding practices
 
Specification by Example - Agile India 2015
Specification by Example - Agile India 2015Specification by Example - Agile India 2015
Specification by Example - Agile India 2015
 
Way to Agile - USTH
Way to Agile - USTHWay to Agile - USTH
Way to Agile - USTH
 
How to get Automated Testing "Done"
How to get Automated Testing "Done"How to get Automated Testing "Done"
How to get Automated Testing "Done"
 
Tech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDDTech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDD
 
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
 
Impact Analysis - LoopConf
Impact Analysis - LoopConfImpact Analysis - LoopConf
Impact Analysis - LoopConf
 
Automated Software Testing
Automated Software TestingAutomated Software Testing
Automated Software Testing
 

Similar to Spec by-example

Requirements Engineering @ Agile
Requirements Engineering @ AgileRequirements Engineering @ Agile
Requirements Engineering @ Agile
Girish Khemani
 
Chapter 4.pptx
Chapter 4.pptxChapter 4.pptx
Chapter 4.pptx
zaaakditte
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
Rupesh Vaishnav
 
Use Case Modelling.pptx
Use Case Modelling.pptxUse Case Modelling.pptx
Use Case Modelling.pptx
azida3
 
One day Course On Agile
One day Course On AgileOne day Course On Agile
One day Course On Agile
James Whitehead
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
Amna Ch
 
Use Cases and Use in Agile world
Use Cases and Use in Agile worldUse Cases and Use in Agile world
Use Cases and Use in Agile world
Ravikanth-BA
 
Finding the right authoring tool - STC Carolina Event 2018
Finding the right authoring tool - STC Carolina Event 2018Finding the right authoring tool - STC Carolina Event 2018
Finding the right authoring tool - STC Carolina Event 2018
Carolina Chapter of STC
 
Good PracticesFor RequirementEngineering.pptx
Good PracticesFor RequirementEngineering.pptxGood PracticesFor RequirementEngineering.pptx
Good PracticesFor RequirementEngineering.pptx
zimalfayzankhan
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
Naveen Kumar Singh
 
agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.ppt
AteeqaKokab1
 
06 business and functional requirements
06 business and functional requirements06 business and functional requirements
06 business and functional requirements
Namita Razdan
 
AT2012_Pune_UserStories_BhawanaGupta
AT2012_Pune_UserStories_BhawanaGuptaAT2012_Pune_UserStories_BhawanaGupta
AT2012_Pune_UserStories_BhawanaGupta
India Scrum Enthusiasts Community
 
sdlc.pptx
sdlc.pptxsdlc.pptx
sdlc.pptx
XylemSolutions
 
Man.ppt
Man.pptMan.ppt
Improve Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsImprove Product Design with High Quality Requirements
Improve Product Design with High Quality Requirements
Elizabeth Steiner
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3
Ahmed Misbah
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slides
venkatasubramanianSr5
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvements
Michael J Geiser
 
Software process models
Software process modelsSoftware process models
Software process models
Malik WaQas
 

Similar to Spec by-example (20)

Requirements Engineering @ Agile
Requirements Engineering @ AgileRequirements Engineering @ Agile
Requirements Engineering @ Agile
 
Chapter 4.pptx
Chapter 4.pptxChapter 4.pptx
Chapter 4.pptx
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
Use Case Modelling.pptx
Use Case Modelling.pptxUse Case Modelling.pptx
Use Case Modelling.pptx
 
One day Course On Agile
One day Course On AgileOne day Course On Agile
One day Course On Agile
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Use Cases and Use in Agile world
Use Cases and Use in Agile worldUse Cases and Use in Agile world
Use Cases and Use in Agile world
 
Finding the right authoring tool - STC Carolina Event 2018
Finding the right authoring tool - STC Carolina Event 2018Finding the right authoring tool - STC Carolina Event 2018
Finding the right authoring tool - STC Carolina Event 2018
 
Good PracticesFor RequirementEngineering.pptx
Good PracticesFor RequirementEngineering.pptxGood PracticesFor RequirementEngineering.pptx
Good PracticesFor RequirementEngineering.pptx
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.ppt
 
06 business and functional requirements
06 business and functional requirements06 business and functional requirements
06 business and functional requirements
 
AT2012_Pune_UserStories_BhawanaGupta
AT2012_Pune_UserStories_BhawanaGuptaAT2012_Pune_UserStories_BhawanaGupta
AT2012_Pune_UserStories_BhawanaGupta
 
sdlc.pptx
sdlc.pptxsdlc.pptx
sdlc.pptx
 
Man.ppt
Man.pptMan.ppt
Man.ppt
 
Improve Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsImprove Product Design with High Quality Requirements
Improve Product Design with High Quality Requirements
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slides
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvements
 
Software process models
Software process modelsSoftware process models
Software process models
 

Recently uploaded

LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
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
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 

Recently uploaded (20)

LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
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
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 

Spec by-example

  • 1. SPECIFICATION BY EXAMPLE Looking for the source of the truth
  • 2. Specification by Example • Key benefits: – Less rework – Higher product quality – Implementing changes more efficiently – Better alignment of the activities of different roles • Key Practices: – Deriving scope from goals – Specify collaboratively – Illustrating using examples – Refining the specification – Automation validation – Evolving a living documentation system
  • 3. Specification by example • Understand better the goals of the system • Building a living documentation of the system • Maintaining a constant source of the truth • Validating the system often in order to ensure the functionality • To describe the system in a way so that it is easy to add features.
  • 4. Deriving scope from goals • F16 should fly at 2 to 2.5M (requirement) • F16 should be able to scape from combat (goal) GOAL1 REQ1 REQ2 REQ3 GOAL2 Strategy Needs CompetitivenessSolution to Implement: A requirement use to be a direct answer to a specific goal
  • 5. Deriving scope from goals • Ask for the goals using the requirements • Be clear about the goals when the requirements are defined. • Refine your requirements in the context of the goals not other requirements • If you have any doubt, don’t be fooled, ask for the right person .
  • 6. Deriving scope from goals • “The hardest single part of building a software system is deciding precisely what to build.” – Fred Brooks, The Mythical Man-Month: Essays on Software Engineering (Addison-Wesley, 1975) • “People tell you what they think they need, and by asking them “Why” you can identify new implicit goals they have. Many organizations aren’t able to specify their business goals explicitly. However, once you derived the goals, you should again reverse and derive scope from the identified goals, potentially discarding the originally assumed scope.” – Christian Hassa
  • 7. Deriving scope from goals Received scope Adressesed goals Derived scope WHY DO YOU NEED THAT? COLLABORATIVE SOLUTION Challenging requirements is always part of the solution model
  • 8. EXERCISE 1 • The system should persist my shopping cart for 1-2 weeks • The system should be able to send me a copy of my shopping cart • The system should alert if any of the prices has changed in the articles of my shopping cart. • The shopping cart should appear always when the user logs in.
  • 9. Deriving scope from goals • As Stakeholder (WHO) • In order to achieve some goal (WHY) • I need some system function (HOW) Advice: Use this form for deriving scope from goals
  • 10. Specify collaboratively • Different teams in different context have their own way of collaborating. – Find your own way! – Discover how to make efficient conventions! – Always look for improvements in your way! • Of course I am talking about cross-functional- teams.
  • 11. Specify collaboratelly “Specification workshops are intensive, hands-on domain and scope exploration exercises that ensure that the implementation team, business stakeholders, and domain experts build a consistent, shared understanding of what the system should do” – Gojko Adzic. “Specification by Example: How Successful Teams Deliver the Right Software.”
  • 12. EXERCISE 2 • Let’s make a kite.
  • 13. Specify collaboratelly • Workshop goals – To find the technical constraints (feasibility) – To find the business constraints (boundaries) – To address the solution targets (goals) – To build a common vocabulary – To use the right examples for specifications – To establish a safety network of knowledge and later refinement.
  • 14. Specify collaboratelly • Prepare the workshop beforehand. • Record the event for further referencing. • Business use to drive but others can raise some insights. • Clasify the topics: – Not in scope – To further investigation – Not easy feasible – High importance • Outcome: – write a document with some conclusions. – Create a follow up agenda – Next steps
  • 15. Specify collaboratelly • Smaller workshops (three amigos) – A tester – A developer – A Business analyst Outcome: Acceptance Criteria Narratives
  • 16. Be sensitive to your user task’s “altitude” 16 © Jeff Patton, all rights reserved, www.AgileProductDesign.com * from Cockburn’s Writing Effective Use Cases Functional or “Sea level” I’d reasonably expect to complete this in a single sitting Sub-Functional or “Fish level” Small tasks that by themselves don’t mean much. I’ll do several of these before I reach a functional level goal Activity or “Kite level” Longer term goals often with no precise ending. I’ll perform several functional tasks in the context of an activity Too abstract Too detailed Think about user experience at this level
  • 17. Specify collaboratelly • Find the right examples to illustrate a feature • Use the examples as drivers in a specification workshop • Write out those examples for further reference. • Use the domain vocabulary around the examples. • Examples are easy to understand and share.
  • 18. Specify collaboratelly Refination meetings: • Acceptance criteria write down. (peers) • Acceptance criteria review. (seniors) • Batching questions. (business) • Key conversations  use your documentation tool for collect it. • Planning meetings. (testers, developers) • Elephant Carpaccio & Story mapping – http://agileproductdesign.com/writing/how_you_slice_it.pdf – http://alistair.cockburn.us/Elephant+Carpaccio+Exercise
  • 19. The user story map contains two important anatomical features • The backbone of the application is the list of essential activities the application supports • The walking skeleton is the software we build that supports the least number of necessary tasks across the full span of user experience 19 © Jeff Patton, all rights reserved, www.AgileProductDesign.com time necessity The backbone The walking skeleton
  • 20. Given story map organized vertically by necessity, we need only slice to plan • Choose coherent groups of features that consider the span of business functionality and user activities • Support all necessary activities with the first release • Improve activity support and add additional activities with subsequent releases 20 © Jeff Patton, all rights reserved, www.AgileProductDesign.com time optionality necessary less optional more optional first release second release third release
  • 21. Exercise 3 • Slice the shopping cart epic from user stories to tasks • Review it against another group (win to win) • User story mapping to release the shopping cart product incrementally • Outcome: the final acceptance criteria for the first release.
  • 22. Illustrating using examples • “Illustrating requirements using examples is a way to specify how we expect the system to work with enough detail that we can check that assertion. Examples used to illustrate requirements are good black-box tests.” – Gojko Adzic. “Specification by Example: How Successful Teams Deliver the Right Software.”
  • 23. Illustrating using examples • Examples spot inconsistencies – Free delivery example • Examples spot ambiguities – Free for everyone! • Examples helps to dive in the user story – When to send an email? • Examples shows boundaries – Who is NOT able to receive this loan
  • 24. Illustrating using examples • Examples should be complete
  • 25. Illustrating using examples • Examples should be realistic – Avoid making up data – If possible use real data – Extract examples from the organization – Or clients! I am not good as an example
  • 26. Illustrating using examples • Use examples for non functional requirements – Performance targets should be precise – Resiliency only has a meaning with examples • Use examples to find the boundaries – Technical exclusions – Warning messages – Actions after push to the limits • Use mockups to illustrate your examples.
  • 27. Illustrating using examples • The paradigmatic example (example of examples) – https://en.wikipedia.org/wiki/Tests_of_general_re lativity • Good examples capture expectations and business concepts.
  • 28. Refining the specification “In its rough form, a diamond is a lusterless, translucent crystal that resembles a chip of broken glass. For it to be transformed into a jewel, it must be cut into a particular gem shape and then polished, facet by facet.” – Edward Jay Epstein, The Diamond Invention
  • 29. Refining the specification • From raw examples to Acceptance tests • Focused, Precise and Testable • About business functionality, not software design • Should document what the system does, no more. • Where were the S.M.A.R.T. requirements? – Those are coming from Management by Objectives – Peter Drucker 1.981
  • 30. Refining the specification • Free delivery example • Bad examples are more frequent than good ones – Scripts are not specifications – Technical oriented language is a bad sympton – Describe what the system does not imply dense user-system flow. – But still should be executable. – Merciless refination
  • 31. Refining the specification • Self exploratory – Use Inputs and outputs as behaviour expectation – Use a title and a description paragraph – Specify the actor and the goal to achieve – Try to understand it in the context of a regression test fail. – Ask another person if she understands the specification.
  • 32. Exercise 4 • The shopping basket revisited – Refine our specification – Add a new functionality
  • 33. Refining the specification • A good specification should contain tipically – Key examples of each important part of the business functionality. – An example of each important technical edge case or boundary conditions. – An example of each particular troublesome area of the expected implmentation. • Over-specify has always a bad smell
  • 34. Refining the specification • Self-explanatory • Use the domain language • Use given-when-then narrative aka Gherkin • Focused in a single aspect • Do not try to over specify (refine instead) • Use the happy path to enable the automation pipeline.