An Evolution Into SpecificationAn Evolution Into Specification
By ExampleBy Example
Adam KnightAdam Knight
Twitter: adampknightTwitter: adampknight
Two ConversationsTwo Conversations
• Zachary KnightZachary Knight
 ““Can we seeCan we see
the picture ofthe picture of
the Monkeythe Monkey
turning into aturning into a
Man?”Man?”
• Gojko AdzicGojko Adzic
 ““Although theirAlthough their
process has almostprocess has almost
all the elements ofall the elements of
SBE, they just thinkSBE, they just think
of it as theirof it as their
homegrown way ofhomegrown way of
developingdeveloping
software”software”
Evolution - ContextEvolution - Context
• Successful StrategySuccessful Strategy
Depends on ContextDepends on Context
• ProductProduct
 API/CLI interfacesAPI/CLI interfaces
 Scalable ParallelScalable Parallel
ProcessingProcessing
 SQL ParserSQL Parser
• MarketMarket
 OEM PartnersOEM Partners
 Varied implementationsVaried implementations
 Traditional DeliveryTraditional Delivery
ModelsModels
Evolutionary CyclesEvolutionary Cycles
• It takes time to adapt to changeIt takes time to adapt to change
• Methodology is an environmental factorMethodology is an environmental factor
• Faster feedback cycles encourage evolutionFaster feedback cycles encourage evolution
Requirements and SpecificationsRequirements and Specifications
• Included Functional DesignIncluded Functional Design
• Abstracted out Customer DetailAbstracted out Customer Detail
• Not maintainedNot maintained
• Not completed in sprintNot completed in sprint
Requirements DocumentsRequirements Documents
User StoriesUser Stories
• Developer ReservationsDeveloper Reservations
• Hard to break downHard to break down
• Still Solution BasedStill Solution Based
• Value drivenValue driven
• IndependentIndependent
• RecursiveRecursive
Challenging RequirementsChallenging Requirements
• Rejecting SolutionsRejecting Solutions
• Requesting ExamplesRequesting Examples
• Raising Testing ProfileRaising Testing Profile
Collaborative SpecificationCollaborative Specification
• Defining SuccessDefining Success
 Acceptance CriteriaAcceptance Criteria
 RisksRisks
 AssumptionsAssumptions
• Discussing ExamplesDiscussing Examples
• Breaking the ModelBreaking the Model
Test ApproachTest Approach
Early Test ManagementEarly Test Management
• Poorly selected TCM toolPoorly selected TCM tool
• Excel with Test CaseExcel with Test Case
EstimatesEstimates
Counting test cases is inappropriateCounting test cases is inappropriate
Exploratory TestingExploratory Testing
• Session Based ETSession Based ET
 Run times too longRun times too long
 Can’t parallelise sessionsCan’t parallelise sessions
• Thread Based ETThread Based ET
 Estimate chartersEstimate charters
• Reporting ConfidenceReporting Confidence
Test AutomationTest Automation
Automation PrinciplesAutomation Principles
• IncrementalIncremental
GrowthGrowth
• DRYDRY
• User InputUser Input
DrivenDriven
• TestabilityTestability
Towards Living DocumentationTowards Living Documentation
• Self DocumentingSelf Documenting
• Reporting in Business TermsReporting in Business Terms
• Specification for RefactoringSpecification for Refactoring
Current PositionCurrent Position
• Around100 End Customer installationsAround100 End Customer installations
• Highly Rated Testing/Support TeamHighly Rated Testing/Support Team
• ““The product was installed seamlessly and the customerThe product was installed seamlessly and the customer
was delighted.”was delighted.”
RecapRecap
It takes time to adapt to changeIt takes time to adapt to change
FROMFROM TOTO
Formal RequirementsFormal Requirements User Stories, CollaborativelyUser Stories, Collaboratively
Specified using ExamplesSpecified using Examples
Test Case ManagementTest Case Management Exploratory ThreadsExploratory Threads
Bespoke AutomationBespoke Automation
ScriptsScripts
Self Documenting File DrivenSelf Documenting File Driven
Test AutomationTest Automation
““Improbably excellent teamsImprobably excellent teams
become so through a sustainedbecome so through a sustained
series of entirely probable smallseries of entirely probable small
improvements ”improvements ”
Jason GormanJason Gorman
Bletchley Park :Bletchley Park :
www.bletchleypark.org/content/contact/donation/support.rhtmwww.bletchleypark.org/content/contact/donation/support.rhtm
ThanksThanks
• Email:Email: adampknight@a-sisyphean-task.comadampknight@a-sisyphean-task.com
• Twitter: adampknightTwitter: adampknight
• Blog: http://www.a-sisyphean-task.comBlog: http://www.a-sisyphean-task.com
• Email: adam.knight@rainstor.comEmail: adam.knight@rainstor.com
• WebSite: http://www.rainstor.comWebSite: http://www.rainstor.com
ReferencesReferences
• Further ReadingFurther Reading
 Specification By Example – Gojko Adzic ; ISBN 9781617290084Specification By Example – Gojko Adzic ; ISBN 9781617290084
 Thread BasedTest Management – James BachThread BasedTest Management – James Bach
http://www.satisfice.com/blog/archives/503http://www.satisfice.com/blog/archives/503
• ImagesImages
 All images in public domain or underWikimedia or Creative CommonsAll images in public domain or underWikimedia or Creative Commons
LicenseLicense
 1&14 © BIODIDAC 2004 ; 2 Steveoc 86 ; 3 – Pangolin Hubert Ludwig ;1&14 © BIODIDAC 2004 ; 2 Steveoc 86 ; 3 – Pangolin Hubert Ludwig ;
4 - Rafael Brix ; 5 - www.palaeocritti.com ; 6 Brachiosaurus - Богданов4 - Rafael Brix ; 5 - www.palaeocritti.com ; 6 Brachiosaurus - Богданов
dmitrchel@mail.ru ; 7 - Matt Martyniuk ; 8 – Public Domain ; 9 -dmitrchel@mail.ru ; 7 - Matt Martyniuk ; 8 – Public Domain ; 9 -
Original uploader was Killdevil at en.wikipedia ; 10 –WikmediaOriginal uploader was Killdevil at en.wikipedia ; 10 –Wikmedia
commons no name ; 11&12 (unkown, extensively used in Publiccommons no name ; 11&12 (unkown, extensively used in Public
Domain); 13 –Yewenyi ; 15 - Richard Bartz, Munich Makro Freak &Domain); 13 –Yewenyi ; 15 - Richard Bartz, Munich Makro Freak &
Beemaster Hubert Seibring ; 16 - Coniac PublishingBeemaster Hubert Seibring ; 16 - Coniac Publishing

'An Evolution Into Specification By Example' by Adam Knight

  • 1.
    An Evolution IntoSpecificationAn Evolution Into Specification By ExampleBy Example Adam KnightAdam Knight Twitter: adampknightTwitter: adampknight
  • 2.
    Two ConversationsTwo Conversations •Zachary KnightZachary Knight  ““Can we seeCan we see the picture ofthe picture of the Monkeythe Monkey turning into aturning into a Man?”Man?” • Gojko AdzicGojko Adzic  ““Although theirAlthough their process has almostprocess has almost all the elements ofall the elements of SBE, they just thinkSBE, they just think of it as theirof it as their homegrown way ofhomegrown way of developingdeveloping software”software”
  • 3.
    Evolution - ContextEvolution- Context • Successful StrategySuccessful Strategy Depends on ContextDepends on Context • ProductProduct  API/CLI interfacesAPI/CLI interfaces  Scalable ParallelScalable Parallel ProcessingProcessing  SQL ParserSQL Parser • MarketMarket  OEM PartnersOEM Partners  Varied implementationsVaried implementations  Traditional DeliveryTraditional Delivery ModelsModels
  • 4.
    Evolutionary CyclesEvolutionary Cycles •It takes time to adapt to changeIt takes time to adapt to change • Methodology is an environmental factorMethodology is an environmental factor • Faster feedback cycles encourage evolutionFaster feedback cycles encourage evolution
  • 5.
  • 6.
    • Included FunctionalDesignIncluded Functional Design • Abstracted out Customer DetailAbstracted out Customer Detail • Not maintainedNot maintained • Not completed in sprintNot completed in sprint Requirements DocumentsRequirements Documents
  • 7.
    User StoriesUser Stories •Developer ReservationsDeveloper Reservations • Hard to break downHard to break down • Still Solution BasedStill Solution Based • Value drivenValue driven • IndependentIndependent • RecursiveRecursive
  • 8.
    Challenging RequirementsChallenging Requirements •Rejecting SolutionsRejecting Solutions • Requesting ExamplesRequesting Examples • Raising Testing ProfileRaising Testing Profile
  • 9.
    Collaborative SpecificationCollaborative Specification •Defining SuccessDefining Success  Acceptance CriteriaAcceptance Criteria  RisksRisks  AssumptionsAssumptions • Discussing ExamplesDiscussing Examples • Breaking the ModelBreaking the Model
  • 10.
  • 11.
    Early Test ManagementEarlyTest Management • Poorly selected TCM toolPoorly selected TCM tool • Excel with Test CaseExcel with Test Case EstimatesEstimates Counting test cases is inappropriateCounting test cases is inappropriate
  • 12.
    Exploratory TestingExploratory Testing •Session Based ETSession Based ET  Run times too longRun times too long  Can’t parallelise sessionsCan’t parallelise sessions • Thread Based ETThread Based ET  Estimate chartersEstimate charters • Reporting ConfidenceReporting Confidence
  • 13.
  • 14.
    Automation PrinciplesAutomation Principles •IncrementalIncremental GrowthGrowth • DRYDRY • User InputUser Input DrivenDriven • TestabilityTestability
  • 15.
    Towards Living DocumentationTowardsLiving Documentation • Self DocumentingSelf Documenting • Reporting in Business TermsReporting in Business Terms • Specification for RefactoringSpecification for Refactoring
  • 16.
    Current PositionCurrent Position •Around100 End Customer installationsAround100 End Customer installations • Highly Rated Testing/Support TeamHighly Rated Testing/Support Team • ““The product was installed seamlessly and the customerThe product was installed seamlessly and the customer was delighted.”was delighted.”
  • 17.
    RecapRecap It takes timeto adapt to changeIt takes time to adapt to change FROMFROM TOTO Formal RequirementsFormal Requirements User Stories, CollaborativelyUser Stories, Collaboratively Specified using ExamplesSpecified using Examples Test Case ManagementTest Case Management Exploratory ThreadsExploratory Threads Bespoke AutomationBespoke Automation ScriptsScripts Self Documenting File DrivenSelf Documenting File Driven Test AutomationTest Automation
  • 18.
    ““Improbably excellent teamsImprobablyexcellent teams become so through a sustainedbecome so through a sustained series of entirely probable smallseries of entirely probable small improvements ”improvements ” Jason GormanJason Gorman Bletchley Park :Bletchley Park : www.bletchleypark.org/content/contact/donation/support.rhtmwww.bletchleypark.org/content/contact/donation/support.rhtm
  • 19.
    ThanksThanks • Email:Email: adampknight@a-sisyphean-task.comadampknight@a-sisyphean-task.com •Twitter: adampknightTwitter: adampknight • Blog: http://www.a-sisyphean-task.comBlog: http://www.a-sisyphean-task.com • Email: adam.knight@rainstor.comEmail: adam.knight@rainstor.com • WebSite: http://www.rainstor.comWebSite: http://www.rainstor.com
  • 20.
    ReferencesReferences • Further ReadingFurtherReading  Specification By Example – Gojko Adzic ; ISBN 9781617290084Specification By Example – Gojko Adzic ; ISBN 9781617290084  Thread BasedTest Management – James BachThread BasedTest Management – James Bach http://www.satisfice.com/blog/archives/503http://www.satisfice.com/blog/archives/503 • ImagesImages  All images in public domain or underWikimedia or Creative CommonsAll images in public domain or underWikimedia or Creative Commons LicenseLicense  1&14 © BIODIDAC 2004 ; 2 Steveoc 86 ; 3 – Pangolin Hubert Ludwig ;1&14 © BIODIDAC 2004 ; 2 Steveoc 86 ; 3 – Pangolin Hubert Ludwig ; 4 - Rafael Brix ; 5 - www.palaeocritti.com ; 6 Brachiosaurus - Богданов4 - Rafael Brix ; 5 - www.palaeocritti.com ; 6 Brachiosaurus - Богданов dmitrchel@mail.ru ; 7 - Matt Martyniuk ; 8 – Public Domain ; 9 -dmitrchel@mail.ru ; 7 - Matt Martyniuk ; 8 – Public Domain ; 9 - Original uploader was Killdevil at en.wikipedia ; 10 –WikmediaOriginal uploader was Killdevil at en.wikipedia ; 10 –Wikmedia commons no name ; 11&12 (unkown, extensively used in Publiccommons no name ; 11&12 (unkown, extensively used in Public Domain); 13 –Yewenyi ; 15 - Richard Bartz, Munich Makro Freak &Domain); 13 –Yewenyi ; 15 - Richard Bartz, Munich Makro Freak & Beemaster Hubert Seibring ; 16 - Coniac PublishingBeemaster Hubert Seibring ; 16 - Coniac Publishing