What makes thesecreatures last? Nature ‘designed’ them to endure Darwin revised ‘Natural Selection’ to Source: ‘Survival of the Fittest’ http://en.wikipedia.org/wiki/Komodo_dragon Implying (among others) the unconscious ability to adapt
Successful organizations are drivenby values they commit to: “Everyday low prices” “Provide superb customer experience”Good values help organizations endureHow does this translate to everyday life of asoftware organization?
Is this sprint Built to Endure? Is quality adequate? Are we focused?What I have learned in pre-natal courseWhen do we involve testers in theprocess?
Ahhhhh…. …but a mother cat must also make tough decisions sometimesPhoto by danizen24 http://www.flickr.com/photos/39311243@N05/4272639675/
Writing good stories is hard(but it gets easier with time)Backlog grooming is also hard(and it always remains that way)
What makes a good story? INVEST CCCIf both PO and Team share the sameunderstanding of what should be delivered Consider the story review when writing the story
Why placenta/egg? Decoupling Distinction Separation Protection Short-beaked Echidna, a Monotreme, egg laying mammal. Source: wikipedia
Protect existing code from poisoningGet early feedback on defects innew codeWith local builds, get better decouplingbetween new code and existing codebase
Introduce new code in a ‘placenta’Not affecting existing code New code can be checked in without affecting existing functionality Existing code does not interfere with new changesIncorporate into codebase only when safe
Use tests approach to improve design andarchitectureOnce done, tests continue to run in CIOnce deployed, tests become part of theteams’ DNA
Back to our Sphex Wasp The wasp behavior is not intelligent But it is purposefulAdopting practices requires practice toassimilate into the daily work Once ‘in the DNA’, intelligence is replaced with common sense So intelligence can be used on more important things
A large gene pool indicates extensive genetic diversity, which is associated with robust populations that can survive bouts of intense selection. Meanwhile, low genetic diversity (see inbreeding and population bottlenecks) can cause reduced biological fitness and an increased chance of extinctionSource: Wikipedia http://en.wikipedia.org/wiki/Gene_pool
Individual programming is similar to reducedgene pool Repeating similar mistakes/pitfalls Returning to similar patternsWith pairing the “Gene Pool” is increased Common pitfalls are identified on the fly More patterns are shared New patterns are generated
In 18 months of C++ development, this [heinous] bugwas our hardest challenge. It represented the longest time that we failed to make forward progress. We put one pair on it. It took us 6 hours Arlo Belshee , Promiscuous Pairing and Beginner’s Mind, 2006
What if nature did testing only at the end?DEV TEST
ברירת מחדל1. Default, a preset setting or value2. A Canadian post-grunge and alternative rock band3. Choice of neglect
By choosing to test at the end, quality isneglectedBy doing quality from the start, testing is lessof an issueSome argue that quality starts from RFx
Built to Endure Quality is intertwined throughout the process Requirements should be created with quality in mind – Definition of Done CI - Testing must be executed continually Coding Practices – generating high quality code Unit tests – testing the code generates better design Pairing – Testers can also pair with programmers!
It is not necessary to change. Survival is not mandatory Prof. Deming