SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler 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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 

Último (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 

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