Upload
stefano-fornari
View
201
Download
0
Embed Size (px)
Citation preview
BUG FREE DEVELOPMENTStefano Fornari
WHY?(manager hat on)
IT IS ALL ABOUT QUALITY!
… AND ...
MORE QA =
LESS QUALITY
IT IS ALL ABOUT CONFIDENCE!
… AND ...
MORE QA =
LESS CONFIDENCE
WHY?(developer hat on)
STEP 1 – SEND YOUR QA TEAM TO THE BEACH
DEFECT?
POOR DESCRIPTION OF/WRONG REQUIREMENTSMISUNDERSTANDINS
WRONG ASSUMPTRIONSCHANGING REQUIREMENTS
LACK OF KNOWLEDGE/INFORMATIONENHANCEMENTS
...
DEFECT ROOT CAUSES
DEFECT ROOT CAUSESPOOR DESCRIPTION OF/WRONG REQUIREMENTS
MISUNDERSTANDINSWRONG ASSUMPTRIONS
CHANGING REQUIREMENTSLACK OF KNOWLEDGE/INFORMATION
ENHANCEMENTS...
CODE MISTAKES:BUGS!
BUGS vs MISTAKES
MISTAKE unplanned behaviour given my current understanding and knowledge of the problem
BUG unexpected behaviour given my current understanding and
knowledge of the problem
EXAMPLES
EXAMPLES
STEP 2 – BUGS ARE UNACCEPTABLE
(PERIOD!)
DEFECTS TREND
OpenOffice bug statistics
!!!!
STEP 3 – DAILY BUG REVIEW
BUG REVIEW GOAL
MISTAKE handled as usual(too bad...)
BUG must be fixed immediately(remember: bugs are unacceptable!)
STEP 4 – BUILD QUALITY IN
HOW?
MISTAKE testing → prevention (quality assurance → user advocates)
BUG unconfidence → confidence(bug free development)
STEP 5 – BUG FREE DEVELOPMENT
CONFIDENCE ZONE
1 do not write code...… unless you need it
CONFIDENCE ZONE
2 what do you want to do?...… write a specification
specif
caton
CONFIDENCE ZONE
3 run the specification… it fails, now we need to write code
specif
caton
the spec is not satsfed
CONFIDENCE ZONE
4 write the simplest code possible...… and satisfy the specification
specif
caton
the spec is not satsfed
the s
pec i
s sa
tsfed
ISN'T TDD?
YES but...“Test” of T... Driven
Development is BANNED!
the Kent Beck way, literally!
it is a coding practice (i.e. not a unit testing technique)
DOES IT WORK?
BENEFITSQUALITY IS ANYONE RESPONSIBILITY ATTITUDENO “DON'T TOUCH WHAT WORKS” ANYMORE
ENJOYABLE FEELING WHILE WRITING CODECONFIDENCE TO CHANGE SHARED CODE
CONFIDENCE TO CHANGE ANYONE'S CODEBETTER CODE, BETTER ARCHITECTURE
REDUCED/NO USE OF DEBUGGERSREDUCED/NO NEED OF LOGGING
REDUCED/NO NEED OF EMULATORSREDUCED/NO NEED OF BROWSERS
...
CAN WE MEASURE?
Q=f(# of bugs, severity, component priority)
Q FACTOR
Q=f(# of bugs, severity, component priority)
Q FACTOR (the real one 2)
QUESTIONS?http://www.bugfreedevelopment.net