From Defect Reporting
 to Defect Prevention
A Lean Approach to Software Testing


Sune Gynthersen & Lars Thorup
         BestBrains
Who are we?

Sune Gynthersen                  Lars Thorup
Lean/Agile software consultant   Founder
Cost of correcting defects




   Price




                 Time
A brilliant solution
No bashing of Waterfall today


    "All models are wrong; Some models are useful"
                      - George Box
A quick status...

• Number of currently open defects?
  o 10?
  o 50?
  o 100?
  o 1000?
A quick status...

• Prioritization of defects?
  o Priority 1
  o Priority 2
  o Priority 3
Is it really that bad?


          "Current software projects spend about
    40 to 50 percent of their effort on avoidable rework"
                     - Barry Boehm (2001)
A true story (2010)

• 9000 defects
   o 3 hours per defect (reporting, prioritization, fixing, retest, accept)
   o 6 effective hours a day
   o 220 work days a year
    = 20 man-years!
It reminds me of...

           How many americans does
            it take to make a toast?
It reminds me of...

           How many americans does
            it take to make a toast?

                      Two!
          One to burn it, one to scrape it
What is the cost of delay?

• A one month delay?
• A one year delay?




                         Greater salary expenses
                                  Lower financial return
                       Decreasing organisational inertia
                                    Decreasing trust
                          Short-term prioritization
Vi believe...

• Any undesirable result represents a starting point for
  generating new learning.
We believe...

                Or in plain english...

       Every problem is an opportunity
The small details...

• Test versus Quality Assurance?
The small details...

• Test                       • Quality Assurance
   o Verification              o Early involvement
   o Test-driving              o Proactivity
   o Something that should     o Help building the right
     be automated                system in the right
                                  quality
Conventional wisdom
Test/QA should find defects
A new hypothesis

    Prevention is far more effective than fault-finding.


                        Rationale?
Focus

                           If
   Prevention is far more effective than fault-finding

                     That means
     Quality should be built-in from the beginning

                Which should produce
            Significantly higher profitability
What factors influence the quality?
What can I do?

Do more of this
• Strive to create a common understanding
   o   no later than just before development starts
• Exploratory testing
   o   as soon as possible
• Stop feature work
   o   until defects have been corrected
• Find, understand and remove the causes behind defects

Do less of this
• Manuel regression testing
4 questions for you...

•   What is the most important output from Test/QA?
•   What is the avg. lead-time for defects? ("found" to "fixed")
•   How much undiscovered rework does your team have?
•   How do you reduce the amount of undiscovered rework?

From defect reporting to defect prevention

  • 1.
    From Defect Reporting to Defect Prevention A Lean Approach to Software Testing Sune Gynthersen & Lars Thorup BestBrains
  • 2.
    Who are we? SuneGynthersen Lars Thorup Lean/Agile software consultant Founder
  • 3.
    Cost of correctingdefects Price Time
  • 4.
  • 5.
    No bashing ofWaterfall today "All models are wrong; Some models are useful" - George Box
  • 6.
    A quick status... •Number of currently open defects? o 10? o 50? o 100? o 1000?
  • 7.
    A quick status... •Prioritization of defects? o Priority 1 o Priority 2 o Priority 3
  • 8.
    Is it reallythat bad? "Current software projects spend about 40 to 50 percent of their effort on avoidable rework" - Barry Boehm (2001)
  • 9.
    A true story(2010) • 9000 defects o 3 hours per defect (reporting, prioritization, fixing, retest, accept) o 6 effective hours a day o 220 work days a year = 20 man-years!
  • 10.
    It reminds meof... How many americans does it take to make a toast?
  • 11.
    It reminds meof... How many americans does it take to make a toast? Two! One to burn it, one to scrape it
  • 12.
    What is thecost of delay? • A one month delay? • A one year delay? Greater salary expenses Lower financial return Decreasing organisational inertia Decreasing trust Short-term prioritization
  • 13.
    Vi believe... • Anyundesirable result represents a starting point for generating new learning.
  • 14.
    We believe... Or in plain english... Every problem is an opportunity
  • 15.
    The small details... •Test versus Quality Assurance?
  • 16.
    The small details... •Test • Quality Assurance o Verification o Early involvement o Test-driving o Proactivity o Something that should o Help building the right be automated system in the right quality
  • 17.
  • 18.
    A new hypothesis Prevention is far more effective than fault-finding. Rationale?
  • 19.
    Focus If Prevention is far more effective than fault-finding That means Quality should be built-in from the beginning Which should produce Significantly higher profitability
  • 20.
  • 21.
    What can Ido? Do more of this • Strive to create a common understanding o no later than just before development starts • Exploratory testing o as soon as possible • Stop feature work o until defects have been corrected • Find, understand and remove the causes behind defects Do less of this • Manuel regression testing
  • 22.
    4 questions foryou... • What is the most important output from Test/QA? • What is the avg. lead-time for defects? ("found" to "fixed") • How much undiscovered rework does your team have? • How do you reduce the amount of undiscovered rework?

Editor's Notes

  • #3 Vi kommer med udviklerbaggrund. Det skal være i jeres gode ret at mene vi har jord i hovedet. Vi prøver at anlægge et helhedorienteret perspektiv.
  • #4 En gammel klassiker Den er få vel uenige i...?
  • #5 Når fejlrettelser bliver eksponentielt dyrere over tid, er det et under at vandfaldsmodellen er i brug - Her tester vi, med vilje, så sent som muligt
  • #6 Selvom vi kunne bruge timevis på det, så skal det jo ikke bare handle om at sige grimme ting om vandfaldsmodellen. Som den gode statistiker George Box sagde...
  • #8 Hvor mange har så mange prioritet 1 og 2 fejl, at der reelt aldrig bliver rettet prioritet 3 fejl. Grov prioritering er god - men man risikerer at holde folk for nar, hvis man beder dem registrere defects, som alle ved aldrig vil blive fikset.
  • #10 En fælles kollega gav os lidt defect statistik (baseret på overslag)
  • #13 Den ekstra omkostning er nem at beregne: 20x gennemsnitlig årsløn. Detaljerne er sværere at regne på - men de er ikke små. * Større lønudgifter * Manglende indtjening * Faldende tillid * Organisatorisk træghed * Kortsigtet prioritering
  • #15 Det lyder som en floskel, men... Ethvert problem er en mulighed. Uhensigtsmæssighed (f.eks. defekter) Uhensigtsmæssigheder er en perfekt anledning til at stoppe op, og spørge sig selv: Lærer vi i dag af vores fejl? Hvad kunne vi lære af vores fejl? Hvor hurtigt lærer vi af vores fejl?
  • #16 Hvordan navngiver vi rollen? Lars har sagt at det er en 20 år gammel diskussion i test-kredse. Jeg (Sune) er ikke rigtigt stødt på før.
  • #17 Når *vi* hører Test vs. QA tænker vi følgende... Test: Noget der burde automatiseres.
  • #18 Det vil vi gøre op med Softwaretestere skal i mindre grad end tidligere  finde fejl. Fejl er et udtryk for en dysfunktionel process. En process der ikke resulterer i den ønskede kvalitet. Videre til "En ny hypotese"
  • #19 Testere bør finde færre fejl pr. feature, over tid. Hvis de ikke finder færre er det måske tegn på at kvaliteten af udviklingsprocessen ikke bliver bedre. Vi mener ikke at  testere ikke skal finde fejl. Men når de gør.. er det et tegn på at der er gået noget galt et andet sted.
  • #20 Kvalitet skal indbygges fra starten (i modsætning til at "teste" det ind senere) Hvis kvaliteten skal indbygges fra start...
  • #21 Så må vi spørge os selv - Hvilke faktorer har indflydelse på kvaliteten? Materiale: f.eks. krav - hvordan afgøres kvaliteten af indkomne krav? Mennesker: Er de rette kompetencer til stede? og på det rette tidspunkt? Værktøjer: F.eks.miljø (automatisk build og test).  Har vi testværktøjer der understøtter den process vi ønsker os? For mig er det vigtigt at værktøjsvalg ikke bliver et spørgsmål om vi *kan* teste, men om vi kan teste *effektivt*. Skalerer testmetoden? I hvilken grad skaber vi en vedligeholdelsesbyrde? Process: Process er altafgørende - ethvert resultat er en direkte konsekvens af den forudgående process. Det gælder også kvaliteten.
  • #23 Ukendt udestående arbejde. D.v.s. opgaver i endnu ikke har identificeret (f.eks. fejlrettelser)