crafting quality software
TRANSCRIPT
![Page 1: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/1.jpg)
Crafting Quality Software
Best Good Practices
![Page 2: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/2.jpg)
Intro - Tarcio
![Page 3: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/3.jpg)
Intro - Adam
![Page 4: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/4.jpg)
What is Quality?
![Page 5: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/5.jpg)
What is Quality?
Meets customer needs
and provides satisfaction
“Fitness for use”(Juran)
“Conformance to requirements”
(Crosby)
“Quality is pride of workmanship”
(Deming)
Freedom fromdefects of
deficiencies
Value of worthiness
Definition of quality
![Page 6: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/6.jpg)
How good or bad something is?
What is Quality?
![Page 7: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/7.jpg)
What is Quality?
![Page 8: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/8.jpg)
What is Quality?
![Page 9: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/9.jpg)
What is Quality?
![Page 10: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/10.jpg)
● Perceptions● Preconditioned● Experiences● Education● Culture● Opinions
Individual Traits
![Page 11: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/11.jpg)
A Historical Perspective of Quality
![Page 12: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/12.jpg)
A Historical Perspective of Quality
![Page 13: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/13.jpg)
A Historical Perspective of Quality
![Page 14: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/14.jpg)
A Historical Perspective of Quality
![Page 15: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/15.jpg)
A Historical Perspective of Quality
Integrate learningsRenew theoriesAdjust methodsDo we need to learn more?
Act
Study(Check)
Do
Plan
Monitor outcomes, test validityof theory. Test the plan. Examine success or unexpected outcomes. Look for new lessons or problems to solve.
Execute the plan, carry out the
activities, apply our best knowledge,
pursue the desired purpose and goals.
Identify purpose and goals. Formulate
theories and proposals. Define
measures of success (and how to measure them). Plan activities.
![Page 16: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/16.jpg)
A Historical Perspective of Quality
![Page 17: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/17.jpg)
● Team motivation.
● Increased customer satisfaction.
● Return on investment.
What are the Benefits of Quality?
![Page 18: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/18.jpg)
![Page 19: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/19.jpg)
● Individual and collective responsibility.
● Individuals can contribute in different ways.
● Starts when an idea is conceived and continues throughout a product’s lifecycle.
Who is Responsible?
![Page 20: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/20.jpg)
Applying Quality
![Page 21: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/21.jpg)
3 Aspects of Software Quality
Process
Structural Functional
What can we do to ensure quality?
Does the software do whatis supposed to do?
Is the software easy to modify and enhance?
![Page 22: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/22.jpg)
Functional and Structural Traits
Correctness
Usability
Efficiency
Reliability
Integrity
Adaptability
Accuracy
Robustness
Maintainability
Flexibility
Portability
Reusability
Readability
Testability
Understandability
Security
FunctionalStructural
![Page 23: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/23.jpg)
Process’ activities
Inception Iteration Zero
Iteration Kick Off
StoryKick Off
Story Walkthrough Release
Development Retrospective
![Page 24: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/24.jpg)
Functional + Structural Quality
UnderstandabilityKnowledge share
PairingBetter
written software
Team Collaboration
![Page 25: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/25.jpg)
Pair Programming
Nope, not like this
![Page 26: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/26.jpg)
Pair Programming
Yeah, more like this
![Page 27: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/27.jpg)
Pair Programming Traits
● Emotionally demanding● Constant learning● Conversational● Collaborative● High quality output● Costly (2 heads per problem)
TIME
Prod
uctiv
ity
Quality
Cost
![Page 28: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/28.jpg)
Testing
Functional + Structural Quality
TestabilityValidates requirements
Confidence
Robustness
![Page 29: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/29.jpg)
● Costs more● No real focus● Slow to run● Longer to write● Too Integrated
Testing Sad Reality
![Page 30: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/30.jpg)
Testing IdealExploratory
Testing
![Page 31: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/31.jpg)
Test Driven Development
![Page 32: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/32.jpg)
Test Driven Development
● Not a silver bullet● Know when to use it● Understand first, TDD later
![Page 33: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/33.jpg)
Unit Testing
Small
Fast
Isolated
Cost effective
Focused
![Page 34: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/34.jpg)
Unit Testing
Helps design
Find issues early
Facilitate change
Facilitate integration
![Page 35: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/35.jpg)
Integration Testing
Two unit tests, no integration test.
![Page 36: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/36.jpg)
Acceptance Testing
![Page 37: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/37.jpg)
Exploratory Testing
Test Design
Test Execution
Analysis
Learn
![Page 38: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/38.jpg)
Other Types of Testing
“You never know what a customer will doto your product until they do it”
- Adam Crough
● Smoke testing.
● Penetration testing.
● Performance testing.
● User testing.
● Accessibility testing.
● Regression testing.
● A/B testing.
● Functional testing.
● Acceptance testing.
● Security testing.
![Page 39: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/39.jpg)
Continuous Integration
● Automate code checks
● Exercise regression testing
● Improves team confidence
![Page 40: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/40.jpg)
Visibility
![Page 41: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/41.jpg)
Continuous Delivery
Plan Build
Release Test
![Page 42: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/42.jpg)
One more thing
![Page 43: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/43.jpg)
User Validation
![Page 44: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/44.jpg)
User Validation - Types
Q & A Observation Prototyping Release early
![Page 45: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/45.jpg)
User Validation - Benefits (Case Study)
18 Month Project
3 months 6 months 9 months
![Page 46: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/46.jpg)
Final thoughts
Collaborate oftenTest, test, test
Automate checksVisualize results
Involve users early
Everyone is responsible for quality
![Page 47: Crafting Quality Software](https://reader031.vdocuments.us/reader031/viewer/2022022202/587bbb6b1a28abb8258b6539/html5/thumbnails/47.jpg)
Thank you!
@tarciosaraiva
http://bit.ly/acrough