SlideShare une entreprise Scribd logo
1  sur  28
How to Deliver
the Right
Software
Asier Barrenetxea
What is the single
greatest cause of
software failure?
Requirements!
Requirements
 are wrong.
 are badly written.
 are incomplete.
 The programmers and the specifiers understand the
requirements differently.
Classical approach:
testing at the end
Requirements Development Testing
Hand over of requirements
Each source telling a
different story
 Tests ≃ Requirements
 How system really works ≃ Requirements
 Documentation get stale
Late feedback
 Business misunderstands get arisen late on the process
 When developer implementing requirements.
 When qa testing it.
 When software gets into production.
 Big WASTE
Spec by example
to the rescue
Bring testing to the front
Requirements
+
Testing
Development
Verification
(automated)
Use examples
 Easy to understand
 Plain English
 Unambiguous
Write examples
collaboratively
 Business people, developers and testers in the same
room.
 Transfer the knowledge.
 Learn about the domain.
 Ubiquitous language.
 Early feedback of misunderstandings.
 In 30 min meeting can find out things that it would take a
whole iteration or even more.
 everybody understands the same thing.
Write examples
collaboratively
 Inconsistencies and gaps are easy to spot when you
write down the rules.
 Find out incorrect assumptions.
 Find out real business value.
 Everybody gets this feeling of ownership.
 Different approaches:
 Three amigos
 One developer with a stakeholder/domain expert
 Whole team with stakeholders
 Specification workshop
Specification workshop
 For harder to specificy stories.
 Meeting with 10+ people. POs, BAs, devs, QAs..
 Bring people from other teams if necessary.
 Create 3 teams and write examples in one board each.
 Compare. Look for inconsistencies. Why do we have
them?
Automate examples
 Map examples to executable tests.
 Use tools as Specflow, Cucumber, Fitness..
 Do not modify examples when automating.
Automate examles
 Brittle UI tests?
 Do not couple your examples to the UI.
 Page Objects https://code.google.com/p/selenium/wiki/PageObjects
 Tests don’t have to go always through the UI!
 Test pyramid. http://martinfowler.com/bliki/TestPyramid.html
Implement examples
 Developers will have to code just what was specified.
 Make the tests green -> Done.
Single source of truth
 Examples = Requirements.
 Examples = Automated tests.
 Examples = What the system does.
Living documentation
 Run examples with every change to the system.
 Documentation never gets out-dated.
 All tests green -> system is doing what examples say.
User stories
 Relate examples with user story.
 Gives context.
 Focus on business goal.
As a <role>
I want <software feature>
In order to <goal/desire>
I order to <goal/desire>
as a <role>
so that <software feature>
Gherkin syntax
 Given -> arrange
 When -> action
 Then -> assert
What makes a good example
 Focused on a single thing.
 Self explanatory.
 Uses the domain language.
 SMART
 Specific
 Measurable
 Achievable
 Relevant
 Time-bound.
Do not automate EVERYTHING
 There would always be some manual testing.
 Usability testing.
 Exploratory testing.
 Be aware.
Examples of examples
Conversation brings new
scenarios to the table
Communication > Automation
 The important thing is to communicate
 Automation and tools are nice, but don’t get your main
focus on them
 “Individuals and interactions over processes and tools”
- Agile Manifesto
 “I want to bridge the gap between business people and
technical people”
- Kent Beck about XP
More Info + resources
Book. Specification by Example: How Successful
Teams Deliver the Right Software , Gojko Adzic
http://www.amazon.co.uk/Specification-
Example-Successful-Deliver-
Software/dp/1617290084
Blog post. A.T. FAIL!, Robert C. Martin
http://blog.8thlight.com/uncle-
bob/2013/09/26/AT-FAIL.html
Specification by Example and Agile Acceptance
Testing, Gojko Adzic
http://www.slideshare.net/gojkoadzic/specific
ation-by-example-and-agile-acceptance-testing
My blog post.
http://asierba.net/2014/04/03/spec-by-
example/
Questions?

Contenu connexe

Tendances

Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Anand Bagmar
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSonivodQA
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile projectHien Nguyen
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are doneAleksey Solntsev
 
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
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing DilemmasAman King
 
Test Driven Development: Part 2
Test Driven Development: Part 2Test Driven Development: Part 2
Test Driven Development: Part 2CodeAndroid
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzQA or the Highway
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 
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
 
Impact Analysis - LoopConf
Impact Analysis - LoopConfImpact Analysis - LoopConf
Impact Analysis - LoopConfChris Lema
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
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
 
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
 
测试向前一步
测试向前一步测试向前一步
测试向前一步drewz lin
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess LancasterQA or the Highway
 

Tendances (20)

Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
Code review
Code reviewCode review
Code review
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
 
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
 
XP Injection
XP InjectionXP Injection
XP Injection
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing Dilemmas
 
Test Driven Development: Part 2
Test Driven Development: Part 2Test Driven Development: Part 2
Test Driven Development: Part 2
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig Stuntz
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
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
 
Impact Analysis - LoopConf
Impact Analysis - LoopConfImpact Analysis - LoopConf
Impact Analysis - LoopConf
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
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
 
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
 
I dream of ISPWeb
I dream of ISPWebI dream of ISPWeb
I dream of ISPWeb
 
测试向前一步
测试向前一步测试向前一步
测试向前一步
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster
 

En vedette

Developing knowledge and content in an online course
Developing knowledge and content in an online courseDeveloping knowledge and content in an online course
Developing knowledge and content in an online courseHelen Strong
 
docs+lists - software specification tool
docs+lists - software specification tooldocs+lists - software specification tool
docs+lists - software specification toolAndreasKleffel
 
Developing an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite WisconsinDeveloping an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite WisconsinD2L Barry
 
Marketing your Personal Training Business Online
Marketing your Personal Training Business OnlineMarketing your Personal Training Business Online
Marketing your Personal Training Business OnlineDemandmart
 
Important Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online CourseImportant Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online Coursemjrobertson
 
Developing an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 ConceptsDeveloping an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 ConceptsSteve Yuen
 
Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...Hello Group
 
Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...Justin Tamsett
 
Pineapple presentation 4 10 12
Pineapple presentation   4 10 12Pineapple presentation   4 10 12
Pineapple presentation 4 10 12ameetmehta
 
How to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through PackagingHow to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through PackagingBLOCKbETA Marketing
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specificationAman Adhikari
 
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]HubSpot
 
5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills Secrets5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills SecretsAkash Karia
 
3 Steps to Success with Digital Marketing
3 Steps to Success with Digital Marketing3 Steps to Success with Digital Marketing
3 Steps to Success with Digital MarketingJeff Bullas
 
training & development ppt
training & development ppttraining & development ppt
training & development pptMonishaangel
 

En vedette (20)

A Crash Course In Developing An Online Marketing Strategy For SEO
A Crash Course In Developing An Online Marketing Strategy For SEOA Crash Course In Developing An Online Marketing Strategy For SEO
A Crash Course In Developing An Online Marketing Strategy For SEO
 
Developing knowledge and content in an online course
Developing knowledge and content in an online courseDeveloping knowledge and content in an online course
Developing knowledge and content in an online course
 
docs+lists - software specification tool
docs+lists - software specification tooldocs+lists - software specification tool
docs+lists - software specification tool
 
Developing an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite WisconsinDeveloping an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite Wisconsin
 
Building a SaaS Style Application
Building a SaaS Style ApplicationBuilding a SaaS Style Application
Building a SaaS Style Application
 
Marketing your Personal Training Business Online
Marketing your Personal Training Business OnlineMarketing your Personal Training Business Online
Marketing your Personal Training Business Online
 
Important Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online CourseImportant Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online Course
 
Developing an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 ConceptsDeveloping an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 Concepts
 
Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...
 
Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...
 
Pineapple presentation 4 10 12
Pineapple presentation   4 10 12Pineapple presentation   4 10 12
Pineapple presentation 4 10 12
 
7 Habits of Highly Effective Personal Trainers
7 Habits of Highly Effective Personal Trainers7 Habits of Highly Effective Personal Trainers
7 Habits of Highly Effective Personal Trainers
 
How to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through PackagingHow to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through Packaging
 
6 Steps to Dynamic Public Speaking
6 Steps to Dynamic Public Speaking6 Steps to Dynamic Public Speaking
6 Steps to Dynamic Public Speaking
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
 
5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills Secrets5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills Secrets
 
3 Steps to Success with Digital Marketing
3 Steps to Success with Digital Marketing3 Steps to Success with Digital Marketing
3 Steps to Success with Digital Marketing
 
training & development ppt
training & development ppttraining & development ppt
training & development ppt
 
Online Marketing PPT
Online Marketing PPTOnline Marketing PPT
Online Marketing PPT
 

Similaire à How to Deliver the Right Software (Specification by example)

Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gapGuillagui San
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingPeter Presnell
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonSeb Rose
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Grig Gheorghiu
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010guest5639fa9
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoElad Elrom
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2Rosie Sherry
 
Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Kevin Schultz
 

Similaire à How to Deliver the Right Software (Specification by example) (20)

Automated tests
Automated testsAutomated tests
Automated tests
 
Specification by example
Specification by exampleSpecification by example
Specification by example
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009
 
Tdd
TddTdd
Tdd
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
Why unit testingl
Why unit testinglWhy unit testingl
Why unit testingl
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)
 

Dernier

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 

Dernier (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 

How to Deliver the Right Software (Specification by example)

  • 1. How to Deliver the Right Software Asier Barrenetxea
  • 2. What is the single greatest cause of software failure? Requirements!
  • 3. Requirements  are wrong.  are badly written.  are incomplete.  The programmers and the specifiers understand the requirements differently.
  • 4. Classical approach: testing at the end Requirements Development Testing
  • 5. Hand over of requirements
  • 6. Each source telling a different story  Tests ≃ Requirements  How system really works ≃ Requirements  Documentation get stale
  • 7. Late feedback  Business misunderstands get arisen late on the process  When developer implementing requirements.  When qa testing it.  When software gets into production.  Big WASTE
  • 8. Spec by example to the rescue
  • 9. Bring testing to the front Requirements + Testing Development Verification (automated)
  • 10. Use examples  Easy to understand  Plain English  Unambiguous
  • 11. Write examples collaboratively  Business people, developers and testers in the same room.  Transfer the knowledge.  Learn about the domain.  Ubiquitous language.  Early feedback of misunderstandings.  In 30 min meeting can find out things that it would take a whole iteration or even more.  everybody understands the same thing.
  • 12. Write examples collaboratively  Inconsistencies and gaps are easy to spot when you write down the rules.  Find out incorrect assumptions.  Find out real business value.  Everybody gets this feeling of ownership.  Different approaches:  Three amigos  One developer with a stakeholder/domain expert  Whole team with stakeholders  Specification workshop
  • 13. Specification workshop  For harder to specificy stories.  Meeting with 10+ people. POs, BAs, devs, QAs..  Bring people from other teams if necessary.  Create 3 teams and write examples in one board each.  Compare. Look for inconsistencies. Why do we have them?
  • 14. Automate examples  Map examples to executable tests.  Use tools as Specflow, Cucumber, Fitness..  Do not modify examples when automating.
  • 15. Automate examles  Brittle UI tests?  Do not couple your examples to the UI.  Page Objects https://code.google.com/p/selenium/wiki/PageObjects  Tests don’t have to go always through the UI!  Test pyramid. http://martinfowler.com/bliki/TestPyramid.html
  • 16. Implement examples  Developers will have to code just what was specified.  Make the tests green -> Done.
  • 17. Single source of truth  Examples = Requirements.  Examples = Automated tests.  Examples = What the system does.
  • 18. Living documentation  Run examples with every change to the system.  Documentation never gets out-dated.  All tests green -> system is doing what examples say.
  • 19. User stories  Relate examples with user story.  Gives context.  Focus on business goal. As a <role> I want <software feature> In order to <goal/desire> I order to <goal/desire> as a <role> so that <software feature>
  • 20. Gherkin syntax  Given -> arrange  When -> action  Then -> assert
  • 21. What makes a good example  Focused on a single thing.  Self explanatory.  Uses the domain language.  SMART  Specific  Measurable  Achievable  Relevant  Time-bound.
  • 22. Do not automate EVERYTHING  There would always be some manual testing.  Usability testing.  Exploratory testing.  Be aware.
  • 24.
  • 26. Communication > Automation  The important thing is to communicate  Automation and tools are nice, but don’t get your main focus on them  “Individuals and interactions over processes and tools” - Agile Manifesto  “I want to bridge the gap between business people and technical people” - Kent Beck about XP
  • 27. More Info + resources Book. Specification by Example: How Successful Teams Deliver the Right Software , Gojko Adzic http://www.amazon.co.uk/Specification- Example-Successful-Deliver- Software/dp/1617290084 Blog post. A.T. FAIL!, Robert C. Martin http://blog.8thlight.com/uncle- bob/2013/09/26/AT-FAIL.html Specification by Example and Agile Acceptance Testing, Gojko Adzic http://www.slideshare.net/gojkoadzic/specific ation-by-example-and-agile-acceptance-testing My blog post. http://asierba.net/2014/04/03/spec-by- example/