2. Agenda
Introduction Process metrics
Metrics basics Automation metrics
Business metrics Testing metrics
Code metrics Other metrics
Design metrics Best practices
3. Introduction
quot;Tell me how you will measure me and I will
tell you how I will behavequot;
- Eliyahu Goldratt
”If you can’t measure it, you can’t improve it”
- Lord Kelvin
5. Metrics Uses
Understand real ROI
Plan market strategies, product releases
Fail fast and save money
Identify and mitigate business risks
Estimate new projects
Award bonuses to developers
6. Why Do We Measure?
To inform
To compare
To motivate
To understand
To improve
To protect
7. Why Metrics Are So Important?
Great help for retrospectives
Continuously gives feedback
Help to have healthy code base
To refactor code
To be able to do frequent releases
Show issues early
9. Useless Metrics
Total lines of code
Line of code per developer
Total number of completed tasks
Total time worked
Bugs fixed
10. Business Metrics
RTF (Running Tested Features)
Earned Business Value (EBV)
Net Present Value (NPV)
Internal Rate of Return (IRR)
Return on Investment (ROI)
11. RTF Basics
Running – shipped in a product
Tested – continuously pass acceptance tests
Features – real customer given features
12. RTF Agility
RTF requires feature count to grow from first day
so team is focused on features
RTF requires feature count to grow continuously
so team integrates often
RTF requires features to be tested
so team has contract with the customer
RTF requires tests continue to pass
so tests are automated
RTF requires to grow smoothly
so design will need to be clean
13. RTF Smells
RTF is zero from start during some sprints
RTF starts fast and then slow down
RTF behaves like yoyo
RTF grows too quickly
14. EBV Basics
Each story has its own
relative weight assigned
by product owner
Each story has binary
status: done/not done
EBV calculated as sum of
weights for done stories
15. EBV Agility
Focus on business value so no big upfront
design
Don’t work on layers, but on features
Customer sees value immediately
Features prioritizing instrument
Help planning releases and demos
24. Design Metrics
Code dependencies
Incoming (Affering Coupling)
Outgoing (Efferent Coupling)
Abstractness
Number of abstract classes and interfaces
Number of concrete classes
27. Process Metrics
Agile practice maturity
Impediments cleared per iteration
Impediments carried over the next iteration
User stories carried over the next iteration
User stories done per iteration
Defects carried over the next iteration
Team member loading
Velocity
Backlog size
36. Testing Metrics
Acceptance tests per story
Defects count per story
Tests time to run
Tests run frequency
Manual tests per story
Automation percent
Time to fix tests
42. Best Practices
Don’t produce metrics that no one wants
Be honest about metrics usage
Don’t use metrics to compare teams
Use metrics as a basis of discussion
Don’t demoralize team with metrics
Take team state into account when
selecting metrics
Don’t select hard produced metrics
43. Best Practices
Measure outcomes, not outputs
Measure results, not activity
Measure work items done, not time spent
per task
Follow trends, not numbers
44. Best Practices
Don’t measure something just because you
can
Use just enough set of metrics
Use metrics that are easy to collect
Share metrics to get feedback
Different metrics for product and process