www.axon.vnfb.com/AxonActiveVietNam
1. Why do we need to improve quality ?
2. What makes a good product quality ?
3. How to improve quality ?
4. How to start improve quality ?
5. Q & A
AGENDA
www.axon.vnfb.com/AxonActiveVietNam
1- WHY DO WE NEED TO IMPROVE ?
www.axon.vnfb.com/AxonActiveVietNam
2 - WHAT MAKES A GOOD PRODUCT QUALITY ?
www.axon.vnfb.com/AxonActiveVietNam
Reduce defects
2-WHAT MAKES A GOOD PRODUCT QUALITY ?
 A low defect count is often
synonymous with high
quality software.
 Defects are also the most
visible sign of quality
problems.
www.axon.vnfb.com/AxonActiveVietNam
Improve Design
 High quality design makes for an application that is easy to
understand and change as new requirements are discovered
2-WHAT MAKES A GOOD PRODUCT QUALITY ?
www.axon.vnfb.com/AxonActiveVietNam
Theory Building
 One way to look at software development is theory building
2-WHAT MAKES A GOOD PRODUCT QUALITY ?
www.axon.vnfb.com/AxonActiveVietNam
Build less
 It has been shown that we build many more features than are
actually used
2-WHAT MAKES A GOOD PRODUCT QUALITY ?
www.axon.vnfb.com/AxonActiveVietNam
3- HOW TO IMPROVE PRODUCT QUALITY ?
www.axon.vnfb.com/AxonActiveVietNam
3-HOW TO IMPROVE PRODUCT QUALITY ?
PRODUCT
QUALITY
Test Driven
Development
Test Driven
Requirements
Definition Of
Done
Automation
Test
Refactoring
Pair
Programming
Simple Design
Release Often
Stand Up
Meeting
Testing party
Review Code
Testing by real
user
Collective Code
Ownership
www.axon.vnfb.com/AxonActiveVietNam
PRODUCT
QUALITY
Test Driven
Development
Test Driven
Requirements
Definition Of
Done
Automation
Test
Refactoring
Pair
Programming
Simple Design
Release Often
Stand Up
Meeting
Testing party
Review Code
Testing by real
user
Collective Code
Ownership
3-HOW TO IMPROVE PRODUCT QUALITY ?
www.axon.vnfb.com/AxonActiveVietNam
REVIEW CODE
www.axon.vnfb.com/AxonActiveVietNam
WHY?
REVIEW CODE
www.axon.vnfb.com/AxonActiveVietNam
WHY?
REVIEW CODE
47% of time
spent digging
through the
code
28% of time
spent in
testing
19%
development
time
6% of time spent documenting
Source: B. Manachem, 1999
POOR CODE QUALITY
www.axon.vnfb.com/AxonActiveVietNam
WHY?
REVIEW CODE
www.axon.vnfb.com/AxonActiveVietNam
BENEFITS
REVIEW CODE
www.axon.vnfb.com/AxonActiveVietNam
BENEFITS
REVIEW CODE
Finding bugs on the cheap
www.axon.vnfb.com/AxonActiveVietNam
BENEFITS
REVIEW CODE
Ensuring maintainability
www.axon.vnfb.com/AxonActiveVietNam
BENEFITS
REVIEW CODE
Learning and Sharing
www.axon.vnfb.com/AxonActiveVietNam
TYPES OF CODE REVIEW
REVIEW CODE
www.axon.vnfb.com/AxonActiveVietNam
TYPES OF CODE REVIEW
REVIEW CODE
SELF CODE REVIEW
To review one’s own code
Review it carefully
and in detail
Preferably not using
the same IDE you used
to write the code
• Code format and
comments
• Logic algorithm
correctness
• Unit test coverage
www.axon.vnfb.com/AxonActiveVietNam
TYPES OF CODE REVIEW
REVIEW CODE
PEER CODE REVIEW
In Pair In Team
To have code examined by one or more colleagues
Cross check
Series of
meetings
www.axon.vnfb.com/AxonActiveVietNam
TYPES OF CODE REVIEW
REVIEW CODE
PEER CODE REVIEW
To have code examined by one or more colleagues
Extremely
thorough and
effective
Time-consuming
www.axon.vnfb.com/AxonActiveVietNam
ACTIVITY
REVIEW CODE
www.axon.vnfb.com/AxonActiveVietNam
ACTIVITY
www.axon.vnfb.com/AxonActiveVietNam
ACTIVITY
www.axon.vnfb.com/AxonActiveVietNam
ACTIVITY
www.axon.vnfb.com/AxonActiveVietNam
Pair Programming
www.axon.vnfb.com/AxonActiveVietNam
Pair Programming
Chords
Crucial bass
Accompaniment
Melody
www.axon.vnfb.com/AxonActiveVietNam
Pair Programming
Write Code
Review, potential defect, another
better design
www.axon.vnfb.com/AxonActiveVietNam
Intro
www.axon.vnfb.com/AxonActiveVietNam
Public opinions
• Waste double number of people
• My code is personal
• The partner will slow me down
• Trouble about collaborate
 This is my perfered programming style
 More than twice as fast
 Better design, shorter code, easy to extend
 Even junior can contribute
Do you have any idea or experience about pair programming?
In your opinion, Is it more effective than solo programming?
www.axon.vnfb.com/AxonActiveVietNam
Project experience
www.axon.vnfb.com/AxonActiveVietNam
Project experience
www.axon.vnfb.com/AxonActiveVietNam
Project experience
Let’s pair programming!
• Reduce risk of errors
• Broader code review
• Opportunity to communicate
knowledge between coders
www.axon.vnfb.com/AxonActiveVietNam
Project experience
www.axon.vnfb.com/AxonActiveVietNam
Project experience
www.axon.vnfb.com/AxonActiveVietNam
Project experience
 Catching Errors early
www.axon.vnfb.com/AxonActiveVietNam
Project experience
 Get closer
 Both
understand
the change
 Faster
 Confident
about the
correctness
of the result
www.axon.vnfb.com/AxonActiveVietNam
Project experience
QA
www.axon.vnfb.com/AxonActiveVietNam
Project experience
QA
 Dramatically
reduce the defect
rate / bugs
www.axon.vnfb.com/AxonActiveVietNam
Investigation
www.axon.vnfb.com/AxonActiveVietNam
Investigation
www.axon.vnfb.com/AxonActiveVietNam
Investigation
www.axon.vnfb.com/AxonActiveVietNam
Investigation
www.axon.vnfb.com/AxonActiveVietNam
Summary
 Many mistakes get caught immidately when they are being typed in
rather than in QA test
 The design is better, the code length is shorter
 The team solve problems faster
 The project ends up with multiple people understand each piece of
system
 The team learn to work together and increase communication skill
 People enjoy their work more
www.axon.vnfb.com/AxonActiveVietNam
Pair programming
Are there any factors that affect to this technic?
www.axon.vnfb.com/AxonActiveVietNam
• EXPRESS YOUR SUPERIORITY
• NEVER BACK DOWN
• GLOAT
• WATCH SILENTLY
• CODE SILENTLY
• BETRAY TRUST
• DOMINATE THE KEYBOARD
7 ways kill pair programming
www.axon.vnfb.com/AxonActiveVietNam
DEFINITION OF DONE
www.axon.vnfb.com/AxonActiveVietNam
• When can we say “My task (or user story) is done or finished?
DEFINITION OF DONE
www.axon.vnfb.com/AxonActiveVietNam
• A list of criteria which must be met.
1. Definition of “done” for user story
DEFINITION OF DONE
www.axon.vnfb.com/AxonActiveVietNam
 Improving team quality and agility
DEFINITION OF DONE
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
 Better release planning
DEFINITION OF DONE
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
 Minimizing the delay of risk
DEFINITION OF DONE
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
 Creating transparency for stakeholders
DEFINITION OF DONE
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
DEFINITION OF DONE
3. Dicussion
www.axon.vnfb.com/AxonActiveVietNam
DEFINITION OF DONE
4. Activity
Each group: 4 ~ 10 persons.
Tools: stickers and pen.
Activity: disscuss in group the list requirements which a task need to be
met when we say it done .
Note: Each sticker just write one requirement, please.
www.axon.vnfb.com/AxonActiveVietNam
DONE STATE
www.axon.vnfb.com/AxonActiveVietNam
AUTOMATION TEST
www.axon.vnfb.com/AxonActiveVietNam
AUTOMATION TEST
1. What is automation test?
www.axon.vnfb.com/AxonActiveVietNam
 Saves Time and Money
AUTOMATION TEST
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
 Testing Improves Accuracy
AUTOMATION TEST
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
 Increase Test Coverage
AUTOMATION TEST
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
 Automation Does What Manual Testing Cannot
AUTOMATION TEST
2. Benefit
www.axon.vnfb.com/AxonActiveVietNam
AUTOMATION TEST
3. Discussion
www.axon.vnfb.com/AxonActiveVietNam
4- HOW TO START IMPROVE QUALITY ?
www.axon.vnfb.com/AxonActiveVietNam
1. Define quality clearly
HOW TO START IMPROVEMENT ?
www.axon.vnfb.com/AxonActiveVietNam
1. Define quality clearly
HOW TO START IMPROVEMENT ?
www.axon.vnfb.com/AxonActiveVietNam
2. Choose the way
to improve
HOW TO START IMPROVEMENT ?
www.axon.vnfb.com/AxonActiveVietNam
3. Make quality easy to improve
HOW TO START IMPROVEMENT ?
www.axon.vnfb.com/AxonActiveVietNam
www.axon.vnfb.com/AxonActiveVietNam
www.axon.vnfb.com/AxonActiveVietNam
• http://ronjeffries.com/articles/2015-04-24-done/
• https://www.scrumalliance.org/community/articles/2008/september/what-is-definition-of-done-%28dod%29
• http://www.ranorex.com/why-test-automation.html
• http://searchsoftwarequality.techtarget.com/tip/Use-Agile-software-testing-principles-to-plan-your-
tests
• http://searchsoftwarequality.techtarget.com/tip/Seven-ways-to-know-when-to-automate-testing
• http://support.smartbear.com/articles/testcomplete/manager-overview/
• https://dzone.com/refcardz/agile-adoption-improving
Reference source

[HCM Scrum Breakfast] How to improve product quality in Scrum Team