SlideShare a Scribd company logo
1 of 47
Download to read offline
Achieving Zero Defect
 with Agile Methods
  Varokas Panusuwan (Agile66)
   - Bug Day Bangkok 2012 -
Agenda
●   Context
●   TDD
●   QA Role in Agile
●   Continuous Delivery
●   Q&A
About My Team
My Team
●   10 Devs (5+5)
●   2 Product Owner
●   3 QAs
●   Agile !! -- 2 Years from 0
●   Inherited Legacy code
●   Web Application
●   Release Weekly
●   Zero Defect*

                       PMs Love Us !!
     * in TDDed code
Zero Defect
Test Driven Development
Test Driven Development (TDD)
   #1                        #2

                                  <Test 1>
                                  <Test 2>
                                  <Test 3>
                  <Test 1>
                  <Test 2>
                  <Test 3>    Test Failed !!

        Le Write Test




   #3                        #4
                                                  Writing Code
                                  <Test 1>         Like a Sir
                                  <Test 2>
                                  <Test 3>
                 [Code 1]                             Code
                 [Code 2]                            Always
                 [Code 3]         Test Passed!!      Tested


        Le Write Code
TDD == Testable Specification
Story
                                             TDD

          Create Login
          Page
          (1) Email has                      testEmailFormat()
          correct format
          (2) Password                       testPasswordRequired()
          required
          ...
Acceptance
Criteria
              Le Spec                                            Le Test
                                           Automate
                                           Tested
                        #2 fail.
                                   Oh...
                                   setup
                                   wrong
                                                         B****
                                                         PLEASE !!

                 QA                                DEV
[Code 1]
                                                                         [Code 2]
                                                                         [Code 3]


                                                        Req?                Code?


                Interface




                                                                                                      ●    Specific
                                                                                                      ●    Measurable
                                                                                                      ●    Actionable
                                                                                          T           ●    Realistic
                                                                                       EN
                                                                                R EM                  ●    Time-bound
                                                                              UI
                                                                         RE
                                                                           Q                          ●
                                Test

https://github.com/varokas/tdd-examples/blob/master/src/test/java/com/huskycode/stack/StackImplTest.java
Bug




           TDD
                              ? ??
 F***
YEAH!!   Mismatch         Not in Spec
           Spec
TDD == Better Modular Design
    == Easier to Test
QA... U MAD ??


public billing() {
  date = new Date(); //Get Today
  if(date == endOfMonth)
     sendBillToCustomer();
}




              QA
1. Let todayService.getToday == 30
             2. runTest --> billing(todayService)
             3. SUCCESS !!

                        Le Test Code


                  MO                                     K
                       CK                             EA
                                                    TW       Le QA
    Le Dev



public billing(dateService) {
  date = dateService.getToday();
  if(date == endOfMonth)
     sendBillToCustomer();
}
QA Role in Agile Team?
Bug



                          ???
                 Exploratory
                 Testing


  Spec           Not in Spec
Mismatch
Story (Spec) Writing


      SPEC

PM                       #2 Conflict with ...
      (1) HAPPY PATH
      (2) HAPPY PATH


      (3) SAD PATH
DEV   (4) EDGE CASE
      (5) EXCEPTION
        What about ...



                          QA
QA Like a Sir

Agile All The Way
                                 Quality
                                Up Front


1. PM & Dev & QA Write Story
2. QA Review Acceptance Criteria [ TESTs !!! ]
3. Dev implement Story
4. QA Exploratory Test
DONE !!!


                   Regression
                      Test
QA >> Testing
Continuous Delivery
"Responding to Change
 over Following a Plan"
     - Agile Manifesto #4 -




                        http://agilemanifesto.org/
Following Big Plan...

week 1                  Bug in legacy
                        code found !!          H
                                            ANC
week 2                  Need fix in 1    BR                MER
                                                                GE
                        week

              Order Management
                                                   ION
                   System                    ESS
                                        R EGR G
                                            TIN           HOT
                                        TES                     FIX


                                         RELEASE                SCHEDULED
[Release 1]                              PLANNING               DOWNTIME


                                                   REPLAN !!!
              User Management
                   System
                                                                       LL
                                        RE-ESTIMATE                S TA H
                                                                 TE NC
                                                                     A
[Release 2]                                                       BR


              Big Gigantic Module
                System Thingie
                       ..
                       ..
                       ..
Responding to Change                    Weekly
                                                Releases

week 1        View All Orders

week 2
                Add Order
                                                                     Deliver
                                                                     Value
week 3
               Cancel Order                                          Over
                                                                     Time
                    P1 Bug ... Have
                    to fix in 1 week !!
                                                     PM
                                          Fix   Shuffle priorities
                                          Bug   like a sir

  DEV    QA

week 4
              Cancel Order

week 5
               Edit Order

   ...
   ...
One Thing At A Time
Work 1



            Work 2

PM

            Work 3




                     QAs

     Devs
Work 1



            Work 2

PM

            Work 3




                     QAs

     Devs
Code Review / Pair
  Programming
"given enough eyeballs,
 all bugs are shallow"
       - Linus' Law -
Pair Programming == Real time code review




       Does not have to be all the time !!
Better Quality
● Test Harder?
● Test More?
● Don't Change Anything?
Agile == Simplify
● No spec mismatch
● 100% code coverage
● Document always match code
● Automated regression test
● Less bug inducing activities/useless tasks,
  More delivering good quality code.
● "Do the right thing, at the right time"
"The only way to go fast
     is to go well."
         Uncle Bob
Thank you !!
                                       n s?
                                  s tio
                              ue
                            Q
               Agile66:
               www.facebook.com/groups/agile66




Me:
www.facebook.com/varokas
Please:

      Feel free to view and distribute

Use/Modify this slide only under permission
              from the author
Additional Topics
More About Agile ??




           Agile Thailand 2012
               (17/06/2012)
http://agilethailand2k12.eventbrite.com/
TDD == 100% Coverage
Code 1

Test 1


                     Code 2

                        .....
     Test 2
                        .....          YU
              (Le Wild Code appears)   NO TEST?
                         ....
                         ....

     Test 3
                     Code 3




                    Le Code
Incremental Design
Trunk development?
You Ain't Gonna Need It
TDD == Safety Net
Whole Team == reduced bug

More Related Content

Similar to Achieving Zero Defect with Agile Methods BugDay Bangkok 2012 โดย Varokas Panusuwan (Agile66)

TDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaTDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaEddy Reyes
 
ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)Shashikant Jagtap
 
Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010kensipe
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Peter Kofler
 
Testing is Fun @Confoo.ca 2012
Testing is Fun @Confoo.ca  2012Testing is Fun @Confoo.ca  2012
Testing is Fun @Confoo.ca 2012Gourav Tiwari
 
Test driven development_continuous_integration
Test driven development_continuous_integrationTest driven development_continuous_integration
Test driven development_continuous_integrationhaochenglee
 
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Dharmesh Sheta
 
Take Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentTake Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentBADR
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceJakub Holy
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Rick Hwang
 
Test Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMTest Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMSagar Sane
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dslKnoldus Inc.
 
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid OutagesDeveloping an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid OutagesPascal-Louis Perez
 
김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011devCAT Studio, NEXON
 
Big feature - small sprint
Big feature - small sprint Big feature - small sprint
Big feature - small sprint Igor Goldshmidt
 

Similar to Achieving Zero Defect with Agile Methods BugDay Bangkok 2012 โดย Varokas Panusuwan (Agile66) (20)

TDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaTDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and Gomega
 
ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)
 
Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
 
Oxente BDD
Oxente BDDOxente BDD
Oxente BDD
 
Testing is Fun @Confoo.ca 2012
Testing is Fun @Confoo.ca  2012Testing is Fun @Confoo.ca  2012
Testing is Fun @Confoo.ca 2012
 
Test driven development_continuous_integration
Test driven development_continuous_integrationTest driven development_continuous_integration
Test driven development_continuous_integration
 
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
 
Take Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentTake Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven Development
 
TDD and Getting Paid
TDD and Getting PaidTDD and Getting Paid
TDD and Getting Paid
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World Experience
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214
 
Test Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMTest Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEM
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
Testing Times
Testing TimesTesting Times
Testing Times
 
Spock pres
Spock presSpock pres
Spock pres
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dsl
 
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid OutagesDeveloping an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
 
김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011
 
Big feature - small sprint
Big feature - small sprint Big feature - small sprint
Big feature - small sprint
 

More from Prathan Dansakulcharoenkit

QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017Prathan Dansakulcharoenkit
 
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...Prathan Dansakulcharoenkit
 
อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐Prathan Dansakulcharoenkit
 
Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...Prathan Dansakulcharoenkit
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai Prathan Dansakulcharoenkit
 
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อยออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อยPrathan Dansakulcharoenkit
 
Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012Prathan Dansakulcharoenkit
 

More from Prathan Dansakulcharoenkit (20)

QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
 
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
 
PROJECT MANAGEMENT TRAINING 09-22-2011
PROJECT MANAGEMENT TRAINING 09-22-2011PROJECT MANAGEMENT TRAINING 09-22-2011
PROJECT MANAGEMENT TRAINING 09-22-2011
 
tpse-sprint3r-software-testing-you-know-maybe
tpse-sprint3r-software-testing-you-know-maybetpse-sprint3r-software-testing-you-know-maybe
tpse-sprint3r-software-testing-you-know-maybe
 
SPRINT3R-SWPSDLC2556-CLOSING
SPRINT3R-SWPSDLC2556-CLOSINGSPRINT3R-SWPSDLC2556-CLOSING
SPRINT3R-SWPSDLC2556-CLOSING
 
Introduction to Scrum version 3.1
Introduction to Scrum version 3.1Introduction to Scrum version 3.1
Introduction to Scrum version 3.1
 
SPRINT3R-MY-CITY
SPRINT3R-MY-CITYSPRINT3R-MY-CITY
SPRINT3R-MY-CITY
 
อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐
 
Geek Academy Introduction to Agile
Geek Academy Introduction to AgileGeek Academy Introduction to Agile
Geek Academy Introduction to Agile
 
Sprint3 r agile101-introduction-18052556
Sprint3 r agile101-introduction-18052556Sprint3 r agile101-introduction-18052556
Sprint3 r agile101-introduction-18052556
 
hello-my-name-is-software-testing-v2-pdf
hello-my-name-is-software-testing-v2-pdfhello-my-name-is-software-testing-v2-pdf
hello-my-name-is-software-testing-v2-pdf
 
Opening Session of BugDay Bangkok 2012
Opening Session of BugDay Bangkok 2012Opening Session of BugDay Bangkok 2012
Opening Session of BugDay Bangkok 2012
 
Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012
 
The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012
 
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
 
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อยออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
 
Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012
 
Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012
 
Data, Information and Analyst
Data, Information and AnalystData, Information and Analyst
Data, Information and Analyst
 

Recently uploaded

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Achieving Zero Defect with Agile Methods BugDay Bangkok 2012 โดย Varokas Panusuwan (Agile66)

  • 1. Achieving Zero Defect with Agile Methods Varokas Panusuwan (Agile66) - Bug Day Bangkok 2012 -
  • 2. Agenda ● Context ● TDD ● QA Role in Agile ● Continuous Delivery ● Q&A
  • 4.
  • 5. My Team ● 10 Devs (5+5) ● 2 Product Owner ● 3 QAs ● Agile !! -- 2 Years from 0 ● Inherited Legacy code ● Web Application ● Release Weekly ● Zero Defect* PMs Love Us !! * in TDDed code
  • 8. Test Driven Development (TDD) #1 #2 <Test 1> <Test 2> <Test 3> <Test 1> <Test 2> <Test 3> Test Failed !! Le Write Test #3 #4 Writing Code <Test 1> Like a Sir <Test 2> <Test 3> [Code 1] Code [Code 2] Always [Code 3] Test Passed!! Tested Le Write Code
  • 9. TDD == Testable Specification
  • 10. Story TDD Create Login Page (1) Email has testEmailFormat() correct format (2) Password testPasswordRequired() required ... Acceptance Criteria Le Spec Le Test Automate Tested #2 fail. Oh... setup wrong B**** PLEASE !! QA DEV
  • 11. [Code 1] [Code 2] [Code 3] Req? Code? Interface ● Specific ● Measurable ● Actionable T ● Realistic EN R EM ● Time-bound UI RE Q ● Test https://github.com/varokas/tdd-examples/blob/master/src/test/java/com/huskycode/stack/StackImplTest.java
  • 12. Bug TDD ? ?? F*** YEAH!! Mismatch Not in Spec Spec
  • 13. TDD == Better Modular Design == Easier to Test
  • 14. QA... U MAD ?? public billing() { date = new Date(); //Get Today if(date == endOfMonth) sendBillToCustomer(); } QA
  • 15. 1. Let todayService.getToday == 30 2. runTest --> billing(todayService) 3. SUCCESS !! Le Test Code MO K CK EA TW Le QA Le Dev public billing(dateService) { date = dateService.getToday(); if(date == endOfMonth) sendBillToCustomer(); }
  • 16. QA Role in Agile Team?
  • 17. Bug ??? Exploratory Testing Spec Not in Spec Mismatch
  • 18. Story (Spec) Writing SPEC PM #2 Conflict with ... (1) HAPPY PATH (2) HAPPY PATH (3) SAD PATH DEV (4) EDGE CASE (5) EXCEPTION What about ... QA
  • 19. QA Like a Sir Agile All The Way Quality Up Front 1. PM & Dev & QA Write Story 2. QA Review Acceptance Criteria [ TESTs !!! ] 3. Dev implement Story 4. QA Exploratory Test DONE !!! Regression Test
  • 22. "Responding to Change over Following a Plan" - Agile Manifesto #4 - http://agilemanifesto.org/
  • 23. Following Big Plan... week 1 Bug in legacy code found !! H ANC week 2 Need fix in 1 BR MER GE week Order Management ION System ESS R EGR G TIN HOT TES FIX RELEASE SCHEDULED [Release 1] PLANNING DOWNTIME REPLAN !!! User Management System LL RE-ESTIMATE S TA H TE NC A [Release 2] BR Big Gigantic Module System Thingie .. .. ..
  • 24. Responding to Change Weekly Releases week 1 View All Orders week 2 Add Order Deliver Value week 3 Cancel Order Over Time P1 Bug ... Have to fix in 1 week !! PM Fix Shuffle priorities Bug like a sir DEV QA week 4 Cancel Order week 5 Edit Order ... ...
  • 25. One Thing At A Time
  • 26. Work 1 Work 2 PM Work 3 QAs Devs
  • 27. Work 1 Work 2 PM Work 3 QAs Devs
  • 28. Code Review / Pair Programming
  • 29. "given enough eyeballs, all bugs are shallow" - Linus' Law -
  • 30. Pair Programming == Real time code review Does not have to be all the time !!
  • 31. Better Quality ● Test Harder? ● Test More? ● Don't Change Anything?
  • 32. Agile == Simplify ● No spec mismatch ● 100% code coverage ● Document always match code ● Automated regression test ● Less bug inducing activities/useless tasks, More delivering good quality code. ● "Do the right thing, at the right time"
  • 33. "The only way to go fast is to go well." Uncle Bob
  • 34. Thank you !! n s? s tio ue Q Agile66: www.facebook.com/groups/agile66 Me: www.facebook.com/varokas
  • 35. Please: Feel free to view and distribute Use/Modify this slide only under permission from the author
  • 37. More About Agile ?? Agile Thailand 2012 (17/06/2012) http://agilethailand2k12.eventbrite.com/
  • 38. TDD == 100% Coverage
  • 39. Code 1 Test 1 Code 2 ..... Test 2 ..... YU (Le Wild Code appears) NO TEST? .... .... Test 3 Code 3 Le Code
  • 41.
  • 42.
  • 43.
  • 45. You Ain't Gonna Need It
  • 47. Whole Team == reduced bug