The document discusses how adopting quality practices can enable productivity and speed in software development. It argues that quality and speed are complementary, not opposing goals, and that taking time to implement quality measures like automated testing and continuous integration actually makes development faster overall by reducing bugs and technical debt. The document provides examples of how different organizations have evolved their quality and testing practices to fully integrate them into agile development teams and processes.
3. Flipping the Iron Triangle
Scope/
Requirements
Plan Driven
Resources Schedule
FIXED
ESTIMATED
Resources Schedule
Value Driven
Scope/
Requirements
QuQauliatylity
?
3
4. Quality <-> Speed
Quick and Dirty is Faster
(short term)
Bad Quality slows you down
(long term)
Going faster gives better quality
(short & long term)
4
5. Economics of Product Development
Cycle Time
How Long it Takes to get Through the
Value Stream
• Economies of Speed/Cost of Delay
• Fast Feedback & Learning (Empirical)
• Waste/Cost Reduction & Agility
Unit/Post-Dev Cost
Cost of Deploying, Configuring,
Supporting, Using each ‘instance’
• Ease of Use, Robustness
• Cost of Configuration/Administration
• Browser/Platform/OS Support
Development Expense
Development Project Costs
• Cost of Engineering Team
• Dev Tools: SCM, CI, AutoTest
• Team Management & Facilities
• Shared Services (HR, Finance,etc.)
Product Value
Profit from a Software Product; Savings
from Internal IT Project
• Sales Revenue (Volume * Price)
• Cost Savings
• Strategic Value
Adapted from Don Reinertsen, 2009
5
9. Lessons Learnt / Challenges
Test
Automation
Line
Management
Definition of
Done
Test
Competency
Test Strategy &
Risk
Requirements
(e.g. Story size,
Non-Fn)
Techniques (e.g.
exploratory),
Planning for Quality,
Documentation, …..
9
14. The Automation Pyramid
Manual Tests
e.g. exploratory
GUI layer
e.g. Selenium
API/Service layer
Acceptance Tests
e.g. Fitnesse, Cucumber
Unit/Component layer
Developer Tests
e.g. JUnit
Automate at
feature/workflow level
Automate at
story level
Automate at
design level
Based on Mike Cohn
14
Test
Automation
15. Development Team
(Analysts, Progmrs., Testers, Architect, DBA, UI/UX, etc)
Architect
Team Lead
Developer1
Developer2
QA Lead
Tester1
Tester2
BA Lead
BA1
BA2 15
Create each
increment of
‘Done’ Product
No Specialised Sub-Teams
Test
Competency
?
16. Is testing fully integrated?
Sprint 1 Sprint 2
Code Code
Code &
Bug Fix
Test
Sprint 1 Sprint 2
Code
Code &
Bug Fix
Test
Code
Code &
Bug Fix
Test
Sprint 1 Sprint 2
Code & Bug Fix
Test
Code & Bug Fix
Test
A
B
C
Requirements
(e.g. Story
size, Non-Fn)
16