Bug Free Development

Preview:

Citation preview

https://www.facebook.com/wedevpv

February

3

BUG FREE DEVELOPMENTStefano Fornari

(ste@funambol.com)

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

Recommended