SlideShare a Scribd company logo
Organisator: imbus AG www.qs-tag.de
Expanding Horizons
Getting towards Zero
Defects
Arnon Axelrod
Sela Group, Israel
Arnon Axelrod
Expert for:
Test Automation
eXtreme
Programming
Defect-free software
development
ArnonAxelrod
@ArnonAxelrod
@ArnonAxelrod
2
Agenda
Defect-free software: Are you kidding me?
The cost of quality
Maintaining Defect-free software development
Getting to Defect-free state
3
Zero Defects…
Is it possible ?!
4
5
Defect is any behavior of the system
that doesn’t meet the user’s
expectations
6
Defects by area
Regression
New behavior
Missing behavior
7
Our Goals Prevent
Regressions
Minimize defects
in new behavior
Respond quickly
8
The Cost of Quality
Quality
Features
Delivery
Speed
9
The Cost of Quality
Quality
Features
Delivery
Speed
Quality
Features
Delivery
Speed
Good Eng. SkillsBad Engineering Skills
10
“High performers understand that they don’t
have to trade speed for stability or vice versa,
because by building quality in they get both.”
“Astonishingly, these results demonstrate that
there is no tradeoff between improving
performance and achieving higher levels of
stability and quality. Rather, high performers do
better at all of these measures.”
11
Maintaining a Defect-Free Software
12
Preventing Regressions
13
Defects in New Features
Coding Mistakes
Design/Architectural flaw
Misunderstood requirements
Requirements don’t meet user
expectations
14
Clean Code and Simple Design
15
Loose Coupling
16
Poka-Yoke (Mistake Prevention)
17
Clean Code and Simple Design
18
19
What usually happens…
20
21
Evolving Design
22
User Stories
23
The Connextra format
As a <Role>
In order to <Achieve a goal>
I want <a behavior of the application>
24
The ATDD Process
PO defines the problem (User Story)
PO & team collaborate on simplest solution
Define Acceptance Criteria
Implement automated test
Implement Code & Refactor
Exploratory testing
Get customer feedback
25
Eliminating Defects with ATDD
Coding mistakes
Design or architectural flaw
Misunderstood requirements
Requirements don’t meet user expectations
Test coverage
Refactoring
Collaborative Acceptance
Criteria
Fast feedback
cycle
26
Handling Escaping Defects
1.Top Priority!
2.Create an automatic test to reproduce
3.Fix the bug
4.Perform a RCA and Apply to prevent similar issues
27
Root Cause Examples
Miscommunication
Human errors
Coding practices
Naïve assumptions / lack of awareness
Complicated and brittle design
28
Mitigations Examples
Reviews
Automated processes
Static code analysis
Adding additional test types
Formal processes
Refactoring
Remove duplication
Error prevention
Fail-fast
29
Some things are beyond our control…
30
Regressions due to external dependencies
Availability issues
Changed behavior
Including bugs
31
Other Important Practices
Retrospectives
Reviews
Pair/Mob Programming
32
Getting to Defect Free State
33
One Step At a Time…
34
Low Hanging Fruits
Collaborate on User Stories and
Acceptance Criteria
Root-Cause Analysis
Write Automatic tests before fixing a
defect
Write new tests according to Acceptance
Criteria
35
Low Hanging Fruits
Retrospectives
Run tests more often
Move responsibility to developers
Experiment with ATDD on new and
isolated features
36
Gradually…
Cover loosely-coupled components
Refactor
Remove duplication
Break dependencies
Simplify
Add production monitoring
Deeper Root-Cause Analysis and Retrospective…
Learn, measure and adapt
37
Regressions can be eliminated (almost) completely
ATDD ensures full coverage
Full coverage enables refactoring and evolving the design
Simple design eliminates defects
Perform Root-Cause Analysis and Retrospectives
Measure and adopt
Investing in Quality improves Delivery speed
Summary
38
Questions
39

More Related Content

What's hot

Automation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and TracingAutomation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and Tracing
Markus Borg
 
Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?
Original Software
 
Automated visual-regression-testing (1)
Automated visual-regression-testing (1)Automated visual-regression-testing (1)
Automated visual-regression-testing (1)
Sriram Angajala
 
Hello
HelloHello
Defect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей ТитаренкоDefect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей Титаренко
Sigma Software
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategies
Hylke Stapersma
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOps
dpaulmerrill
 
Agile driven development main principles
Agile driven development main principlesAgile driven development main principles
Agile driven development main principles
Tanya Epstein
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
suwalki24.pl
 
DevOps Tactical Adoption Theory: Continuous Testing
DevOps Tactical Adoption Theory: Continuous TestingDevOps Tactical Adoption Theory: Continuous Testing
DevOps Tactical Adoption Theory: Continuous Testing
Berk Dülger
 
Continuous business goal validation
Continuous business goal validationContinuous business goal validation
Continuous business goal validation
Hylke Stapersma
 
Software Verification in Academia and Business
Software Verification in Academia and BusinessSoftware Verification in Academia and Business
Software Verification in Academia and Business
Jan Michael Auer
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
Jean-François Nguyen
 
Testing automation in agile environment
Testing automation in agile environmentTesting automation in agile environment
Testing automation in agile environment
Perfecto Mobile
 
Agile testing presentation
Agile testing presentationAgile testing presentation
Agile testing presentation
Komal Garg
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
Arslan Ali
 
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarRisk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
QASymphony
 
Build FAST with parallel_calabash
Build FAST with parallel_calabashBuild FAST with parallel_calabash
Build FAST with parallel_calabash
Thoughtworks
 
Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.
Mikalai Alimenkou
 

What's hot (19)

Automation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and TracingAutomation in the Bug Flow - Machine Learning for Triaging and Tracing
Automation in the Bug Flow - Machine Learning for Triaging and Tracing
 
Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?Agile Test Automation: Truth, Oxymoron or Lie?
Agile Test Automation: Truth, Oxymoron or Lie?
 
Automated visual-regression-testing (1)
Automated visual-regression-testing (1)Automated visual-regression-testing (1)
Automated visual-regression-testing (1)
 
Hello
HelloHello
Hello
 
Defect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей ТитаренкоDefect root cause analysis, Андрей Титаренко
Defect root cause analysis, Андрей Титаренко
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategies
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOps
 
Agile driven development main principles
Agile driven development main principlesAgile driven development main principles
Agile driven development main principles
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
 
DevOps Tactical Adoption Theory: Continuous Testing
DevOps Tactical Adoption Theory: Continuous TestingDevOps Tactical Adoption Theory: Continuous Testing
DevOps Tactical Adoption Theory: Continuous Testing
 
Continuous business goal validation
Continuous business goal validationContinuous business goal validation
Continuous business goal validation
 
Software Verification in Academia and Business
Software Verification in Academia and BusinessSoftware Verification in Academia and Business
Software Verification in Academia and Business
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
Testing automation in agile environment
Testing automation in agile environmentTesting automation in agile environment
Testing automation in agile environment
 
Agile testing presentation
Agile testing presentationAgile testing presentation
Agile testing presentation
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
 
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarRisk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
 
Build FAST with parallel_calabash
Build FAST with parallel_calabashBuild FAST with parallel_calabash
Build FAST with parallel_calabash
 
Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.Gamification in outsourcing company: experience report.
Gamification in outsourcing company: experience report.
 

Similar to Defect free development - QS Tag2019

[India Merge World Tour] Coverity
[India Merge World Tour] Coverity[India Merge World Tour] Coverity
[India Merge World Tour] Coverity
Perforce
 
[Europe merge world tour] Coverity Development Testing
[Europe   merge world tour] Coverity Development Testing[Europe   merge world tour] Coverity Development Testing
[Europe merge world tour] Coverity Development Testing
Perforce
 
Effective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentEffective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile Environment
Raj Indugula
 
caring_about_code_quality
caring_about_code_qualitycaring_about_code_quality
caring_about_code_quality
Ketan Patel
 
Future of QA
Future of QAFuture of QA
Future of QA
amitagarwal2006
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
amitagarwal2006
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
Test Design + Environment Management: Scaling UI Automation for Agile
Test Design + Environment Management: Scaling UI Automation for AgileTest Design + Environment Management: Scaling UI Automation for Agile
Test Design + Environment Management: Scaling UI Automation for Agile
SmartBear
 
Quality management
Quality managementQuality management
Quality management
MunibaNoureen
 
Caring about Code Quality
Caring about Code QualityCaring about Code Quality
Caring about Code Quality
Saltmarch Media
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycle
DiUS
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
TEST Huddle
 
Scope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vidScope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vid
Colin Hammond
 
Industrial Training in Software Testing
Industrial Training in Software TestingIndustrial Training in Software Testing
Industrial Training in Software Testing
Arcadian Learning
 
IT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management ProcessIT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management Process
Yolanda Williams
 
The Era of Intelligent Testing
The Era of Intelligent TestingThe Era of Intelligent Testing
The Era of Intelligent Testing
mabl
 
Risk Driven Testing
Risk Driven TestingRisk Driven Testing
Risk Driven Testing
Jorge Boria
 
Test driven development
Test driven developmentTest driven development
Test driven development
Sunil Prasad
 
QM in Software Projects
QM in Software ProjectsQM in Software Projects
QM in Software Projects
Abhishek Prasoon
 
01 the value of quality
01   the value of quality01   the value of quality
01 the value of quality
Clemens Reijnen
 

Similar to Defect free development - QS Tag2019 (20)

[India Merge World Tour] Coverity
[India Merge World Tour] Coverity[India Merge World Tour] Coverity
[India Merge World Tour] Coverity
 
[Europe merge world tour] Coverity Development Testing
[Europe   merge world tour] Coverity Development Testing[Europe   merge world tour] Coverity Development Testing
[Europe merge world tour] Coverity Development Testing
 
Effective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentEffective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile Environment
 
caring_about_code_quality
caring_about_code_qualitycaring_about_code_quality
caring_about_code_quality
 
Future of QA
Future of QAFuture of QA
Future of QA
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Test Design + Environment Management: Scaling UI Automation for Agile
Test Design + Environment Management: Scaling UI Automation for AgileTest Design + Environment Management: Scaling UI Automation for Agile
Test Design + Environment Management: Scaling UI Automation for Agile
 
Quality management
Quality managementQuality management
Quality management
 
Caring about Code Quality
Caring about Code QualityCaring about Code Quality
Caring about Code Quality
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycle
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
 
Scope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vidScope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vid
 
Industrial Training in Software Testing
Industrial Training in Software TestingIndustrial Training in Software Testing
Industrial Training in Software Testing
 
IT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management ProcessIT Quality Testing and the Defect Management Process
IT Quality Testing and the Defect Management Process
 
The Era of Intelligent Testing
The Era of Intelligent TestingThe Era of Intelligent Testing
The Era of Intelligent Testing
 
Risk Driven Testing
Risk Driven TestingRisk Driven Testing
Risk Driven Testing
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
QM in Software Projects
QM in Software ProjectsQM in Software Projects
QM in Software Projects
 
01 the value of quality
01   the value of quality01   the value of quality
01 the value of quality
 

More from Arnon Axelrod

ATDD open house
ATDD open houseATDD open house
ATDD open house
Arnon Axelrod
 
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
Arnon Axelrod
 
Competitive code
Competitive codeCompetitive code
Competitive code
Arnon Axelrod
 
Effective refactoring
Effective refactoringEffective refactoring
Effective refactoring
Arnon Axelrod
 
Beyond pageobjects
Beyond pageobjectsBeyond pageobjects
Beyond pageobjects
Arnon Axelrod
 
Test automation and architecture
Test automation and architectureTest automation and architecture
Test automation and architecture
Arnon Axelrod
 
Unit Testing, TDD and ATDD
Unit Testing, TDD and ATDDUnit Testing, TDD and ATDD
Unit Testing, TDD and ATDD
Arnon Axelrod
 
Software quality - no more bugs!
Software quality - no more bugs!Software quality - no more bugs!
Software quality - no more bugs!
Arnon Axelrod
 
C# in depth
C# in depthC# in depth
C# in depth
Arnon Axelrod
 
ATDD with SpecFlow
ATDD with SpecFlowATDD with SpecFlow
ATDD with SpecFlow
Arnon Axelrod
 
Automation at Philips Healthcare
Automation at Philips HealthcareAutomation at Philips Healthcare
Automation at Philips Healthcare
Arnon Axelrod
 

More from Arnon Axelrod (11)

ATDD open house
ATDD open houseATDD open house
ATDD open house
 
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
 
Competitive code
Competitive codeCompetitive code
Competitive code
 
Effective refactoring
Effective refactoringEffective refactoring
Effective refactoring
 
Beyond pageobjects
Beyond pageobjectsBeyond pageobjects
Beyond pageobjects
 
Test automation and architecture
Test automation and architectureTest automation and architecture
Test automation and architecture
 
Unit Testing, TDD and ATDD
Unit Testing, TDD and ATDDUnit Testing, TDD and ATDD
Unit Testing, TDD and ATDD
 
Software quality - no more bugs!
Software quality - no more bugs!Software quality - no more bugs!
Software quality - no more bugs!
 
C# in depth
C# in depthC# in depth
C# in depth
 
ATDD with SpecFlow
ATDD with SpecFlowATDD with SpecFlow
ATDD with SpecFlow
 
Automation at Philips Healthcare
Automation at Philips HealthcareAutomation at Philips Healthcare
Automation at Philips Healthcare
 

Recently uploaded

DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
anfaltahir1010
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 

Recently uploaded (20)

DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 

Defect free development - QS Tag2019

Editor's Notes

  1. (3min) Senior consultant Author Before that I worked in a team that applied most of the practices
  2. 4min
  3. 6min Well, it depends on the definition…
  4. Broadly speaking… It is subjective, but we all know a defect when we see it
  5. New behavior Missing functionality are actually opportunities
  6. (10min) Note that even *preventing regression” in our own code base seems to most people as not feasible! (If you’ll get something out of this session and it would be to prevent regression in your own codebase at all price – it will be a great breakthrough). Most teams I know are far from achieving that goal.
  7. 10min There’s a very common misconception that quality costs time and money. “In order to get higher quality we need to invest more in testing”. The truth is the opposite: good engineering practices and supportive culture, drive both higher quality and improves delivery, which saves time and money.
  8. This is demonstrated very clearly by the most thorough study that was done on this subject, which is described in the book Accelerate.
  9. thorough scientific research 2014-2017 23,000 people 2000 organizations
  10. 13min
  11. thorough automated testing suite We’ll discuss how to reach there
  12. Minimizing defects in new and changed features, and reaching full regression suite Coding mistakes Design or architectural flaw Misunderstood requirements Requirements don’t meet user expectations We’ll discuss mitigations
  13. 17min Design is rarely attributed to defects Defects hide in dirty places We must keep our code and design clean
  14. Components, micro-services (only if architected correctly!) Minimum inter-dependencies Higher confidence in changes Less, simpler and faster tests
  15. Examples: strong-typing (e.g. TypeScript vs. JavaScript), correct use of Encapsulation (private/public), Immutability, Generics
  16. This is all cool and nice in theory, but…
  17. Theory vs. reality… (This is more like what my house look like. I failed to teach my kids defect-free behavior ) Reasons: Changing requirements (and our understanding of the business) The knowledge we gain over time about the technology The evolution of the technologies we use Lack of discipline (due to time pressure, lack of awareness, etc.) This is the source for many defects difficult to fix It’s costly to add and modify features
  18. 22min Series of small steps
  19. Refactoring allows to evolve the design and improve it over time while adding new features
  20. 25min ATDD is a key technique in Zero Defects. One that is very under utilized… One key element of ATDD is the way user stories are defined
  21. Misconceptions Many people believe that the PO should define the user stories in a very detailed and clear way, so that the developers can understand exactly what they need to do, and the testers will know exactly what to test. Most people also believe that in order to come up with the best architecture, the entire feature should be planned, and only then be split into user stories, as a mean to project planning.
  22. The essence: Problem definition The team should collaborate on the solution
  23. And as you can see, it covers all the faults.
  24. 33min Consider this event and all the next steps as top priority! Create an automatic test to reproduce Fix the bug Perform a RCA and apply the learning to prevent similar issues
  25. Examples of RCA learnings can be: Process improvements (e.g. who should review what and when) Improve coding practices and guidelines (e.g. avoid returning null from functions). As much as possible automate these validations using Lint/Code analysis tools Missing Code inspections – could be mitigated either by code review or by Static Code Analysis Naïve assumptions – mitigate using reviews, knowledge sharing, etc, and other types of tests Improve and simplify the design: Remove duplication and coupling Separate concerns into different classes or components
  26. Error prevention: strong-typing, single source of truth Fail fast: assertions, mainly in initialization. But we should not wait only for detected defects in order to improve our codebase and apply these kinds of improvements. Assuming we have a thorough automated testing suite, we can (and should) constantly refactor to make these kinds of improvements, especially as we add new features.
  27. 37min Hardware failures (not exactly a defect!) 3rd party components and services
  28. Hardware issues HA is a feature Changed 3rd party behavior should be rare, due to backward compatibility run some tests in production + monitoring Treat production = escaping defects (see previous process)
  29. 50 ways… Important: Action items and follow-up
  30. 40 min (5 left) This all sounds great in theory, assuming we start the project using these practices. But in the real world, even projects that are considered “green field” start as a Q&D POC. So how do we reach this defect-free state in a legacy project?
  31. If you apply these practices very early on in a new project, it may be easier Otherwise, Don’t try to get it all at once
  32. Here are some low hanging fruits that you can start with more easily: Collaborating on user stories and acceptance criteria RCA on chosen defects. Mainly in new components Write automated tests to reproduce defects before fixing them Write new tests according to acceptance criteria (or alike)
  33. Here are some low hanging fruits that you can start with more easily: Retrospectives Run tests more often (by developers) Experiment with ATDD, on isolated features
  34. Cover with automated tests loosely coupled components and refactor Refactor/re-architect to break direct dependencies Add monitoring to production Perform deeper RCA and act upon them accordingly Continue to learn from retrospectives and improve your processes
  35. Contact me if you want me to help you!
  36. Contact me!