SlideShare une entreprise Scribd logo
1  sur  35
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

Contenu connexe

Tendances

Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile projectHien 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 confCorina 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 henrikCodeFest
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing DilemmasAman 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…DebateTEST 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 WorldTechWell
 
Test Automation Principles
Test Automation PrinciplesTest Automation Principles
Test Automation PrinciplesNetSuite
 
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 AgileAnand 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 practicesKevin Peterson
 
Specification by Example - Agile India 2015
Specification by Example - Agile India 2015Specification by Example - Agile India 2015
Specification by Example - Agile India 2015Ankur Sambhar
 
Way to Agile - USTH
Way to Agile - USTHWay to Agile - USTH
Way to Agile - USTHHien 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 TDDDUONG 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 2010TEST Huddle
 
Impact Analysis - LoopConf
Impact Analysis - LoopConfImpact Analysis - LoopConf
Impact Analysis - LoopConfChris Lema
 
Automated Software Testing
Automated Software TestingAutomated Software Testing
Automated Software TestingRay Nicholus
 

Tendances (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
 

Similaire à Spec by-example

Requirements Engineering @ Agile
Requirements Engineering @ AgileRequirements Engineering @ Agile
Requirements Engineering @ AgileGirish Khemani
 
Chapter 4.pptx
Chapter 4.pptxChapter 4.pptx
Chapter 4.pptxzaaakditte
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRupesh Vaishnav
 
Use Case Modelling.pptx
Use Case Modelling.pptxUse Case Modelling.pptx
Use Case Modelling.pptxazida3
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptxAmna 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 worldRavikanth-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 2018Carolina Chapter of STC
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.pptAteeqaKokab1
 
06 business and functional requirements
06 business and functional requirements06 business and functional requirements
06 business and functional requirementsNamita Razdan
 
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 RequirementsElizabeth Steiner
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3Ahmed Misbah
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slidesvenkatasubramanianSr5
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMichael J Geiser
 
Software process models
Software process modelsSoftware process models
Software process modelsMalik WaQas
 
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)Maaret Pyhäjärvi
 

Similaire à 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
 
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
 
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
 

Dernier

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Dernier (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

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.