SlideShare a Scribd company logo
Bugs first,
even before new Features?
or
Zero Defect
1
What is “Bugs first”?
 Alternative one: Fix bugs immediately
 “Fix all bugs before starting next user story.”
 Sprint: “User story can be closed only when all bugs have been fixed.”
 Kanban: “Work in progress (WIP) can only be closed when all bugs have been fixed.”
 Alternative two: Fix bugs in sprint
 “No bugs at end of sprint.”
“No bugs as done-done criteria.”
2Oliver Schreck
Potentially shippable product
3Oliver Schreck
Why?
 Bug-free, stable software makes a tremendous impression, especially when
you demonstrate intermediate versions.
 Closer to full product quality in each sprint
Higher Product quality
4Oliver Schreck
Why?
 Each unsolved bug is a piece of work that need to be done “later”
 Reducing bugs leads to less “later work”
 The need of stabilization sprints after “end of development” decrease
 Velocity measurements become more true
 In sum: Release planning becomes much more reliable!
Higher predictability
5Oliver Schreck
Finding Bugs early
6Oliver Schreck
Finding Bugs early
7Oliver Schreck
Zero Defect
 Maintain the software at highest quality during the development
 Improving quality actually reduces development time
 Programmer writes between eight and twenty lines of code a day;
 the rest of the day is usually spent on debugging
 Studies done at e.g. NASA, IBM, have shown that better QA leads to shorter
schedules.
 An IBM study concluded that software projects that make quality a top
priority typically have the shortest schedules, the highest productivity, and
even the best sales.
8Oliver Schreck
9Oliver Schreck
10Oliver Schreck
11Oliver Schreck
12Oliver Schreck
13Oliver Schreck
14Oliver Schreck
15Oliver Schreck
16Oliver Schreck
Ten basic rules – (1-5)
 Test your product every day as you develop it, and fix defects as soon as you find them.
 Gated checkin, 20 minute build, Daily Build
 Once you find a defect, fixing it becomes your number one priority, and you avoid writing any new code until the defect is 100%
eliminated.
 Review your code regularly.
 Code inspections are far more effective than testing
 Code reading detected almost twice as many defects per hour as testing
 Rewrite poor-quality modules.
 Typically you find that 20% of your routines are responsible for 80% of your errors
 Assume full responsibility for every bug.
 95% of all software defects are caused by the programmer. Only 1% of defects are hardware errors, and the remaining 4% are
caused by the compiler, the OS, or other software
 Never dismiss a potential bug; find out the exact cause of any anomaly, especially if irregular
 Handle change effectively.
 Carefully consider how each change will impact your pre-existing code. Poor integration of unanticipated features is a major cause
of defects
17Oliver Schreck
Ten basic rules – (6-10)
 Rewrite all prototyping code from scratch.
 Rapidly prototyped features that slip into the final product are a major source of bugs because they are not subject to the same
quality standards as the rest of the code.
 Set QA objectives at the beginning of every project.
 Set QA goals, e.g. performance, quality standards, coding guidelines
 Don't rush debugging work.
 50% of all bug fixes are done incorrectly the first time, often introducing new bugs in the process.
 Take the time to understand the source of the bug.
 Write UT first to verify your correction.
 Treat the quality of your code at the same level of importance as the quality of your product.
 Rate your code on a scale of one to ten for overall quality.
 Are you sure that it is above 8, if not rewrite it.
 Learn from every bug; each one represents a mistake that you made.
 Learn why you made each mistake
 Adopt simple coding conventions to avoid common bugs, e.g. initialize each variable, release memory, try/catch, comment your code
18Oliver Schreck
Accumulation of “Undone”
19Oliver Schreck
preparation development
Undone Undone
Undone
Stabilization
Iterations
Planned
Release
Actual
Release
Undone
Unknown amount
of undone work !
(Ken Schwaber)
Open Bugs Compared
 Waterfall compared to “Bugs First”
20Oliver Schreck
Why? - Faster Learning
 Fast feedback enables fast learning
 Improve coding practices
 Improve system knowledge
 Improve domain knowledge
 Additional bugs can be avoided
21Oliver Schreck
Why? - Less total effort
 The earlier a bug is fixed, the less is the administrative cost
 Fix bugs as long as the code is still fresh in mind – is faster
 Fix bugs before the code has developed further – is easier
 A lot of time can be saved in system integration and test – expensive test environments
can be better used
 Each sprint provides a stable platform for the next one
22Oliver Schreck
If you see a problem  fix it!
23Oliver Schreck
Questions?
If (unclear == true) then askme();
Oliver Schreck

More Related Content

What's hot

Niels Malotaux - Help We Have a QA Problem!
Niels Malotaux -  Help We Have a QA Problem!Niels Malotaux -  Help We Have a QA Problem!
Niels Malotaux - Help We Have a QA Problem!TEST Huddle
 
Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!SQALab
 
Testing Metrics and why Managers like them
Testing Metrics and why Managers like themTesting Metrics and why Managers like them
Testing Metrics and why Managers like themPractiTest
 
Risks of Risk-Based Testing
Risks of Risk-Based TestingRisks of Risk-Based Testing
Risks of Risk-Based Testingrrice2000
 
Risk based testing with Jira and Jubula
Risk based testing with Jira and JubulaRisk based testing with Jira and Jubula
Risk based testing with Jira and JubulaDaniele Gagliardi
 
Testing fundamentals in a changing world
Testing fundamentals in a changing worldTesting fundamentals in a changing world
Testing fundamentals in a changing worldPractiTest
 
Practical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsPractical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsReuben Korngold
 
Risk based testing - Final
Risk based testing - FinalRisk based testing - Final
Risk based testing - FinalKuldeep Kumar
 
Best practices quality assurance
Best practices   quality assuranceBest practices   quality assurance
Best practices quality assuranceShakal Shukla
 
Stop! you're testing too much
Stop!  you're testing too muchStop!  you're testing too much
Stop! you're testing too muchShawn Wallace
 
The Risk Questionnaire - by: Adam Knight
  The Risk Questionnaire - by: Adam Knight  The Risk Questionnaire - by: Adam Knight
The Risk Questionnaire - by: Adam KnightPractiTest
 
Jelle Calsbeek - Stay Agile with Model Based Testing revised
Jelle Calsbeek - Stay Agile with Model Based Testing revisedJelle Calsbeek - Stay Agile with Model Based Testing revised
Jelle Calsbeek - Stay Agile with Model Based Testing revisedTEST Huddle
 
Requirements Driven Risk Based Testing
Requirements Driven Risk Based TestingRequirements Driven Risk Based Testing
Requirements Driven Risk Based TestingJeff Findlay
 
Test beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause AnalysisTest beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause AnalysisPractiTest
 
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...PractiTest
 

What's hot (20)

Negative Testing
Negative TestingNegative Testing
Negative Testing
 
[HCMC STC Jan 2015] Practical Experiences In Test Automation
[HCMC STC Jan 2015] Practical Experiences In Test Automation[HCMC STC Jan 2015] Practical Experiences In Test Automation
[HCMC STC Jan 2015] Practical Experiences In Test Automation
 
Niels Malotaux - Help We Have a QA Problem!
Niels Malotaux -  Help We Have a QA Problem!Niels Malotaux -  Help We Have a QA Problem!
Niels Malotaux - Help We Have a QA Problem!
 
Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!Put Risk Based Testing in place right now!
Put Risk Based Testing in place right now!
 
Testing Metrics and why Managers like them
Testing Metrics and why Managers like themTesting Metrics and why Managers like them
Testing Metrics and why Managers like them
 
Risks of Risk-Based Testing
Risks of Risk-Based TestingRisks of Risk-Based Testing
Risks of Risk-Based Testing
 
Risk based testing with Jira and Jubula
Risk based testing with Jira and JubulaRisk based testing with Jira and Jubula
Risk based testing with Jira and Jubula
 
Testing fundamentals in a changing world
Testing fundamentals in a changing worldTesting fundamentals in a changing world
Testing fundamentals in a changing world
 
Practical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing MethodsPractical Application Of Risk Based Testing Methods
Practical Application Of Risk Based Testing Methods
 
Testing Metrics
Testing MetricsTesting Metrics
Testing Metrics
 
Risk based testing - Final
Risk based testing - FinalRisk based testing - Final
Risk based testing - Final
 
Best practices quality assurance
Best practices   quality assuranceBest practices   quality assurance
Best practices quality assurance
 
Stop! you're testing too much
Stop!  you're testing too muchStop!  you're testing too much
Stop! you're testing too much
 
The Risk Questionnaire - by: Adam Knight
  The Risk Questionnaire - by: Adam Knight  The Risk Questionnaire - by: Adam Knight
The Risk Questionnaire - by: Adam Knight
 
Jelle Calsbeek - Stay Agile with Model Based Testing revised
Jelle Calsbeek - Stay Agile with Model Based Testing revisedJelle Calsbeek - Stay Agile with Model Based Testing revised
Jelle Calsbeek - Stay Agile with Model Based Testing revised
 
Requirements Driven Risk Based Testing
Requirements Driven Risk Based TestingRequirements Driven Risk Based Testing
Requirements Driven Risk Based Testing
 
Test beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause AnalysisTest beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause Analysis
 
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
 
Agile testing
Agile  testingAgile  testing
Agile testing
 
Value added testing (VAT)
Value added testing (VAT)Value added testing (VAT)
Value added testing (VAT)
 

Similar to Bug first Zero Defect

DeKnowledge - Try us
DeKnowledge - Try usDeKnowledge - Try us
DeKnowledge - Try usBob Pinto
 
Shift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaShift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaSAGAR BARBHAYA
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Intro to CI/CD using Docker
Intro to CI/CD using DockerIntro to CI/CD using Docker
Intro to CI/CD using DockerMichael Irwin
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automationopkey
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationBoris Dominic
 
Fixing security by fixing software development
Fixing security by fixing software developmentFixing security by fixing software development
Fixing security by fixing software developmentNick Galbreath
 
10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdf10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdfAhmed Salama
 
Topic production code
Topic production codeTopic production code
Topic production codeKavi Kumar
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...PVS-Studio
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Robert Reiz
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Rapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRogue Wave Software
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsMohamed Samy
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 

Similar to Bug first Zero Defect (20)

DeKnowledge - Try us
DeKnowledge - Try usDeKnowledge - Try us
DeKnowledge - Try us
 
Shift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaShift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhaya
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Agility Requires Safety
Agility Requires SafetyAgility Requires Safety
Agility Requires Safety
 
Intro to CI/CD using Docker
Intro to CI/CD using DockerIntro to CI/CD using Docker
Intro to CI/CD using Docker
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automation
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
postdev.pptx
postdev.pptxpostdev.pptx
postdev.pptx
 
Fixing security by fixing software development
Fixing security by fixing software developmentFixing security by fixing software development
Fixing security by fixing software development
 
10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdf10 Code Anti-Patterns to Avoid in Software Development.pdf
10 Code Anti-Patterns to Avoid in Software Development.pdf
 
Topic production code
Topic production codeTopic production code
Topic production code
 
Why test with flex unit
Why test with flex unitWhy test with flex unit
Why test with flex unit
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Rapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysis
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 

Recently uploaded

Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdfKamal Acharya
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Electivekarthi keyan
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...Amil baba
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationRobbie Edward Sayers
 
fluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answerfluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answerapareshmondalnita
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturingssuser0811ec
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdfKamal Acharya
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxViniHema
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectRased Khan
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfKamal Acharya
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Aryaabh.arya
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdfKamal Acharya
 
Toll tax management system project report..pdf
Toll tax management system project report..pdfToll tax management system project report..pdf
Toll tax management system project report..pdfKamal Acharya
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientistgettygaming1
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopEmre Günaydın
 
fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionjeevanprasad8
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxMd. Shahidul Islam Prodhan
 

Recently uploaded (20)

Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
fluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answerfluid mechanics gate notes . gate all pyqs answer
fluid mechanics gate notes . gate all pyqs answer
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdf
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
Toll tax management system project report..pdf
Toll tax management system project report..pdfToll tax management system project report..pdf
Toll tax management system project report..pdf
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projection
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 

Bug first Zero Defect

  • 1. Bugs first, even before new Features? or Zero Defect 1
  • 2. What is “Bugs first”?  Alternative one: Fix bugs immediately  “Fix all bugs before starting next user story.”  Sprint: “User story can be closed only when all bugs have been fixed.”  Kanban: “Work in progress (WIP) can only be closed when all bugs have been fixed.”  Alternative two: Fix bugs in sprint  “No bugs at end of sprint.” “No bugs as done-done criteria.” 2Oliver Schreck
  • 4. Why?  Bug-free, stable software makes a tremendous impression, especially when you demonstrate intermediate versions.  Closer to full product quality in each sprint Higher Product quality 4Oliver Schreck
  • 5. Why?  Each unsolved bug is a piece of work that need to be done “later”  Reducing bugs leads to less “later work”  The need of stabilization sprints after “end of development” decrease  Velocity measurements become more true  In sum: Release planning becomes much more reliable! Higher predictability 5Oliver Schreck
  • 8. Zero Defect  Maintain the software at highest quality during the development  Improving quality actually reduces development time  Programmer writes between eight and twenty lines of code a day;  the rest of the day is usually spent on debugging  Studies done at e.g. NASA, IBM, have shown that better QA leads to shorter schedules.  An IBM study concluded that software projects that make quality a top priority typically have the shortest schedules, the highest productivity, and even the best sales. 8Oliver Schreck
  • 17. Ten basic rules – (1-5)  Test your product every day as you develop it, and fix defects as soon as you find them.  Gated checkin, 20 minute build, Daily Build  Once you find a defect, fixing it becomes your number one priority, and you avoid writing any new code until the defect is 100% eliminated.  Review your code regularly.  Code inspections are far more effective than testing  Code reading detected almost twice as many defects per hour as testing  Rewrite poor-quality modules.  Typically you find that 20% of your routines are responsible for 80% of your errors  Assume full responsibility for every bug.  95% of all software defects are caused by the programmer. Only 1% of defects are hardware errors, and the remaining 4% are caused by the compiler, the OS, or other software  Never dismiss a potential bug; find out the exact cause of any anomaly, especially if irregular  Handle change effectively.  Carefully consider how each change will impact your pre-existing code. Poor integration of unanticipated features is a major cause of defects 17Oliver Schreck
  • 18. Ten basic rules – (6-10)  Rewrite all prototyping code from scratch.  Rapidly prototyped features that slip into the final product are a major source of bugs because they are not subject to the same quality standards as the rest of the code.  Set QA objectives at the beginning of every project.  Set QA goals, e.g. performance, quality standards, coding guidelines  Don't rush debugging work.  50% of all bug fixes are done incorrectly the first time, often introducing new bugs in the process.  Take the time to understand the source of the bug.  Write UT first to verify your correction.  Treat the quality of your code at the same level of importance as the quality of your product.  Rate your code on a scale of one to ten for overall quality.  Are you sure that it is above 8, if not rewrite it.  Learn from every bug; each one represents a mistake that you made.  Learn why you made each mistake  Adopt simple coding conventions to avoid common bugs, e.g. initialize each variable, release memory, try/catch, comment your code 18Oliver Schreck
  • 19. Accumulation of “Undone” 19Oliver Schreck preparation development Undone Undone Undone Stabilization Iterations Planned Release Actual Release Undone Unknown amount of undone work ! (Ken Schwaber)
  • 20. Open Bugs Compared  Waterfall compared to “Bugs First” 20Oliver Schreck
  • 21. Why? - Faster Learning  Fast feedback enables fast learning  Improve coding practices  Improve system knowledge  Improve domain knowledge  Additional bugs can be avoided 21Oliver Schreck
  • 22. Why? - Less total effort  The earlier a bug is fixed, the less is the administrative cost  Fix bugs as long as the code is still fresh in mind – is faster  Fix bugs before the code has developed further – is easier  A lot of time can be saved in system integration and test – expensive test environments can be better used  Each sprint provides a stable platform for the next one 22Oliver Schreck
  • 23. If you see a problem  fix it! 23Oliver Schreck
  • 24. Questions? If (unclear == true) then askme(); Oliver Schreck