20
An Evolution Into An Evolution Into Specification By Specification By Example Example Adam Knight Adam Knight Twitter: adampknight Twitter: adampknight

An Evolution Into Specification By Example' by Adam Knight

Embed Size (px)

DESCRIPTION

For the last four years myself and my colleagues at RainStor have been evolving a process for testing a structure data archiving system in an Agile development environment. In this talk I will discuss the evolution of a team from a rudimentary Agile implementation on an unreleased product, to our current process which uses the fundamental elements of Specification By Example to successfully deliver software functionality across 30 different platform/backend configurations to a series of high profile and demanding customers. Last year our company was used as a case study for successful implementation in Gojko Adzic's book on Specification By Example. My report will discuss the lessons learned during the early implementation and the challenges faced in moving away from a compressed waterfall approach. Through a process of incremental change we have identified and tackled the fundamental issues that undermined the development effort as a team. I’ll describe some of the mistakes made in attempting to implement a more formal process of requirements documentation into an Agile implementation and the benefits we uncovered on moving to a more flexible user story based approach. I’ll also discuss some of the issues around trying to implement user stories in a server system with no GUI and very technical and performance based requirements. Raising the importance of quality and the status of testing both within the development team and the organisation as a whole has allowed the challenges facing the team to be recognised and respected. The result has been a more collaborative approach taken between developers and testers both through “collaborative specification” of user stories and tackling the problems that impact the delivery of value to the customers. I also plan to discuss how we’ve expanded from documenting acceptance criteria for each user story such that we now document Criteria, Assumptions and Risks for each feature and, rather than a ‘Done/Not Done’ approach how we identify the confidence in each of these categories to measure the confidence we have in each new feature being implemented. Having the test team as an involved and influential team through the entire development process has also allowed us to implement a number of testability features to help to make the product more testable. I will discuss the benefits of having development understand and prioritise testability issues with some illustrative examples. I will discuss the challenges and benefits of developing our own metadata driven test harnesses as opposed to an off the shelf solution. I’ll detail how having control over these harnesses has allowed us to work towards a self documenting test system using realistic customer examples as “Automated Specifications” of the RainStor system allowing us to explain current behaviour to Product Management in terms of well understood customer scenarios.

Citation preview

Page 1: An Evolution Into Specification By Example' by Adam Knight

An Evolution Into Specification An Evolution Into Specification By ExampleBy Example

Adam KnightAdam Knight

Twitter: adampknightTwitter: adampknight

Page 2: An Evolution Into Specification By Example' by Adam Knight

Two ConversationsTwo Conversations

• Zachary KnightZachary Knight

““Can we see Can we see the picture the picture of the of the Monkey Monkey turning into turning into a Man?”a Man?”

• Gojko AdzicGojko Adzic

““Although their Although their process has process has almost all the almost all the elements of SBE, elements of SBE, they just think of they just think of it as their it as their homegrown way homegrown way of developing of developing software”software”

Page 3: An Evolution Into Specification By Example' by Adam Knight

Evolution - ContextEvolution - Context

• Successful Strategy Successful Strategy Depends on ContextDepends on Context

• ProductProduct API/CLI interfacesAPI/CLI interfaces Scalable Parallel Scalable Parallel

ProcessingProcessing SQL ParserSQL Parser

• MarketMarket OEM PartnersOEM Partners Varied Varied

implementationsimplementations Traditional Delivery Traditional Delivery

ModelsModels

Page 4: An Evolution Into Specification By Example' by Adam Knight

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

Page 5: An Evolution Into Specification By Example' by Adam Knight

Requirements and SpecificationsRequirements and Specifications

Page 6: An Evolution Into Specification By Example' by Adam Knight

• Included Functional DesignIncluded Functional Design• Abstracted out Customer DetailAbstracted out Customer Detail• Not maintainedNot maintained• Not completed in sprintNot completed in sprint

Requirements Documents Requirements Documents

Page 7: An Evolution Into Specification By Example' by Adam Knight

User StoriesUser Stories

• Developer Developer ReservationsReservations

• Hard to break downHard to break down• Still Solution BasedStill Solution Based

• Value drivenValue driven• IndependentIndependent• RecursiveRecursive

Page 8: An Evolution Into Specification By Example' by Adam Knight

Challenging RequirementsChallenging Requirements

• Rejecting SolutionsRejecting Solutions

• Requesting ExamplesRequesting Examples

• Raising Testing ProfileRaising Testing Profile

Page 9: An Evolution Into Specification By Example' by Adam Knight

Collaborative SpecificationCollaborative Specification

• Defining SuccessDefining Success Acceptance Acceptance

CriteriaCriteria RisksRisks AssumptionsAssumptions

• Discussing ExamplesDiscussing Examples

• Breaking the Breaking the ModelModel

Page 10: An Evolution Into Specification By Example' by Adam Knight

Test ApproachTest Approach

Page 11: An Evolution Into Specification By Example' by Adam Knight

Early Test ManagementEarly Test Management

• Poorly selected TCM Poorly selected TCM tooltool

• Excel with Test Case Excel with Test Case EstimatesEstimates

Counting test cases is Counting test cases is inappropriateinappropriate

Page 12: An Evolution Into Specification By Example' by Adam Knight

Exploratory TestingExploratory Testing

• Session Based ETSession Based ET Run times too longRun times too long Can’t parallelise Can’t parallelise

sessionssessions

• Thread Based ETThread Based ET Estimate chartersEstimate charters

• Reporting ConfidenceReporting Confidence

Page 13: An Evolution Into Specification By Example' by Adam Knight

Test AutomationTest Automation

Page 14: An Evolution Into Specification By Example' by Adam Knight

Automation PrinciplesAutomation Principles

• IncrementIncremental Growthal Growth

• DRYDRY

• User Input User Input DrivenDriven

• TestabilityTestability

Page 15: An Evolution Into Specification By Example' by Adam Knight

Towards Living DocumentationTowards Living Documentation

• Self DocumentingSelf Documenting

• Reporting in Business Reporting in Business TermsTerms

• Specification for Specification for RefactoringRefactoring

Page 16: An Evolution Into Specification By Example' by Adam Knight

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 product was installed seamlessly and

the customer was delighted.”the customer was delighted.”

Page 17: An Evolution Into Specification By Example' by Adam Knight

RecapRecap

It takes time to adapt to It takes time to adapt to changechange

FROMFROM TOTO

Formal Formal RequirementsRequirements

User Stories, User Stories, Collaboratively Specified Collaboratively Specified using Examplesusing Examples

Test Case Test Case ManagementManagement

Exploratory ThreadsExploratory Threads

Bespoke Bespoke Automation ScriptsAutomation Scripts

Self Documenting File Self Documenting File Driven Test AutomationDriven Test Automation

Page 18: An Evolution Into Specification By Example' by Adam Knight

““Improbably excellent teams Improbably excellent teams become so through a sustained become so through a sustained

series of entirely probable small series of entirely probable small improvements ”improvements ”

Jason GormanJason GormanBletchley Park : Bletchley Park :

www.bletchleypark.org/content/contact/donation/supwww.bletchleypark.org/content/contact/donation/support.rhtmport.rhtm

Page 19: An Evolution Into Specification By Example' by Adam Knight

ThanksThanks

• Email: Email: [email protected]• Twitter: adampknightTwitter: adampknight• Blog: http://www.a-sisyphean-task.comBlog: http://www.a-sisyphean-task.com

• Email: [email protected]: [email protected]• WebSite: http://www.rainstor.comWebSite: http://www.rainstor.com

Page 20: An Evolution Into Specification By Example' by Adam Knight

ReferencesReferences• Further ReadingFurther Reading

Specification By Example – Gojko Adzic ; ISBN Specification By Example – Gojko Adzic ; ISBN 9781617290084 9781617290084

Thread Based Test Management – James Bach Thread Based Test Management – James Bach http://www.satisfice.com/blog/archives/503http://www.satisfice.com/blog/archives/503

• ImagesImages All images in public domain or under Wikimedia or All images in public domain or under Wikimedia or

Creative Commons LicenseCreative Commons License 1&14 © BIODIDAC 2004 ; 2 Steveoc 86 ; 3 – Pangolin 1&14 © BIODIDAC 2004 ; 2 Steveoc 86 ; 3 – Pangolin

Hubert Ludwig ; 4 - Rafael Brix ; 5 - Hubert Ludwig ; 4 - Rafael Brix ; 5 - www.palaeocritti.com ; 6 Brachiosaurus - Богданов www.palaeocritti.com ; 6 Brachiosaurus - Богданов [email protected] ; 7 - Matt Martyniuk ; 8 – Public [email protected] ; 7 - Matt Martyniuk ; 8 – Public Domain ; 9 - Original uploader was Killdevil at Domain ; 9 - Original uploader was Killdevil at en.wikipedia ; 10 – Wikmedia commons no name ; 11&12 en.wikipedia ; 10 – Wikmedia commons no name ; 11&12 (unkown, extensively used in Public Domain); 13 – (unkown, extensively used in Public Domain); 13 – Yewenyi ; 15 - Richard Bartz, Munich Makro Freak & Yewenyi ; 15 - Richard Bartz, Munich Makro Freak & Beemaster Hubert Seibring ; 16 - Coniac PublishingBeemaster Hubert Seibring ; 16 - Coniac Publishing