http://www.youtube.com/watch?v=5t2p4ukzL74
The wasp behavior is not intelligent
But it is purposeful
How about the cumulative behavior of all
wasps?
How does this apply to us?
  When should we apply logic?
  When should we practice routines?
Name: Ilan Kirschenbaum
Profession: Agile Coach
Co-founder of
Previously: Programmer, Product Support,
Designer, Architect, Product Manager, Project
Manager
http://fostnope.com , @kirschi_,
ilan@practical-agile.com
What makes these
creatures 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 driven
by values they commit to:
  “Everyday low prices”
  “Provide superb customer experience”
Good values help organizations endure
How does this translate to everyday life of a
software organization?
Is this sprint Built to Endure?
  Is quality adequate?
  Are we focused?
What I have learned in pre-natal course
When do we involve testers in the
process?
Ahhhhh….




   …but a mother cat must also make tough decisions
   sometimes

Photo 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
  CCC
If both PO and Team share the same
understanding 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 poisoning
Get early feedback on defects in
new code
With local builds, get better decoupling
between 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 changes
Incorporate into codebase only when safe
Use tests approach to improve design and
architecture
Once done, tests continue to run in CI
Once deployed, tests become part of the
teams’ DNA
Back to our Sphex Wasp
  The wasp behavior is not intelligent
  But it is purposeful
Adopting practices requires practice to
assimilate 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 extinction



Source: Wikipedia http://en.wikipedia.org/wiki/Gene_pool
Individual programming is similar to reduced
gene pool
  Repeating similar mistakes/pitfalls
  Returning to similar patterns
With 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] bug
was 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 value
2. A Canadian post-grunge and alternative rock band
3. Choice of neglect
By choosing to test at the end, quality is
neglected
By doing quality from the start, testing is less
of an issue
Some 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
Agile and the evolution

Agile and the evolution

  • 2.
  • 3.
    The wasp behavioris not intelligent But it is purposeful How about the cumulative behavior of all wasps? How does this apply to us? When should we apply logic? When should we practice routines?
  • 4.
    Name: Ilan Kirschenbaum Profession:Agile Coach Co-founder of Previously: Programmer, Product Support, Designer, Architect, Product Manager, Project Manager http://fostnope.com , @kirschi_, ilan@practical-agile.com
  • 5.
    What makes these creatureslast? 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
  • 6.
    Successful organizations aredriven by values they commit to: “Everyday low prices” “Provide superb customer experience” Good values help organizations endure How does this translate to everyday life of a software organization?
  • 7.
    Is this sprintBuilt to Endure? Is quality adequate? Are we focused? What I have learned in pre-natal course When do we involve testers in the process?
  • 8.
    Ahhhhh…. …but a mother cat must also make tough decisions sometimes Photo by danizen24 http://www.flickr.com/photos/39311243@N05/4272639675/
  • 9.
    Writing good storiesis hard (but it gets easier with time) Backlog grooming is also hard (and it always remains that way)
  • 10.
    What makes agood story? INVEST CCC If both PO and Team share the same understanding of what should be delivered Consider the story review when writing the story
  • 11.
    Why placenta/egg? Decoupling Distinction Separation Protection Short-beaked Echidna, a Monotreme, egg laying mammal. Source: wikipedia
  • 12.
    Protect existing codefrom poisoning Get early feedback on defects in new code With local builds, get better decoupling between new code and existing codebase
  • 13.
    Introduce new codein a ‘placenta’ Not affecting existing code New code can be checked in without affecting existing functionality Existing code does not interfere with new changes Incorporate into codebase only when safe
  • 14.
    Use tests approachto improve design and architecture Once done, tests continue to run in CI Once deployed, tests become part of the teams’ DNA
  • 15.
    Back to ourSphex Wasp The wasp behavior is not intelligent But it is purposeful Adopting practices requires practice to assimilate into the daily work Once ‘in the DNA’, intelligence is replaced with common sense So intelligence can be used on more important things
  • 16.
    A large genepool 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 extinction Source: Wikipedia http://en.wikipedia.org/wiki/Gene_pool
  • 17.
    Individual programming issimilar to reduced gene pool Repeating similar mistakes/pitfalls Returning to similar patterns With pairing the “Gene Pool” is increased Common pitfalls are identified on the fly More patterns are shared New patterns are generated
  • 18.
    In 18 monthsof C++ development, this [heinous] bug was 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
  • 19.
    What if naturedid testing only at the end? DEV TEST
  • 20.
    ‫ברירת מחדל‬ 1. Default,a preset setting or value 2. A Canadian post-grunge and alternative rock band 3. Choice of neglect
  • 21.
    By choosing totest at the end, quality is neglected By doing quality from the start, testing is less of an issue Some argue that quality starts from RFx
  • 22.
    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!
  • 23.
    It is notnecessary to change. Survival is not mandatory Prof. Deming