SlideShare a Scribd company logo
Agile Metrics Alimenkou Mikalai [email_address] http://agilecoaching.com.ua 11.10.2008
Agenda Introduction Metrics basics Business metrics Code metrics Design metrics Process metrics Automation metrics Testing metrics Other metrics Best practices
Introduction " Tell me how you will measure me and I will tell you how I will behave " -  Eliyahu Goldratt ” If you can’t measure it, you can’t improve it” - Lord Kelvin
Metrics VS Diagnostics
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
Why Do We Measure? To inform To compare To motivate To understand To improve To protect
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
Metrics Approaches Using wrong metrics No metrics at all Using right metrics
Useless Metrics Total lines of code Line of code per developer Total number of completed tasks Total time worked Bugs fixed
Business Metrics RTF (Running Tested Features) Earned Business Value (EBV) Net Present Value (NPV) Internal Rate of Return (IRR) Return on Investment (ROI)
RTF Basics Running – shipped in a product Tested – continuously pass acceptance tests Features – real customer given features
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
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
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
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
Business Metrics Tools Agile task management tool/plug-in Issues management system MS Excel
Code Metrics Cyclomatic complexity Best practices violation Coding standards violation Possible bugs Code duplication Code coverage Dead code Tests quality
Code Metrics Tools Checkstyle PMD/CPD Jester Findbugs Simian Maven site plug-in Intellij IDEA inspections
Checkstyle Sample
PMD Sample
Findbugs Sample
Maven Site Plug-in Sample
Intellij IDEA Inspections Sample
Design Metrics Code dependencies Incoming (Affering Coupling) Outgoing (Efferent Coupling) Abstractness Number of abstract classes and interfaces Number of concrete classes
Design Metrics Tools JDepend Eclipse CAP plug-in
JDepend Sample
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
Velocity Classic velocity Speed velocity Interruptions per day
Impediments Backlog
Backlog Size
Process Metrics Tools Issues management system Special agile tools/plug-ins Physical task management tools MS Excel
Automation Metrics Code coverage Number of builds per day Time taken per build Number of failed/success builds Trends in code metrics
Automation Metrics Tools Continuous integration tools CruiseControl TeamCity Bamboo Hudson Continuum Cobertura Clover Maven dashboard plug-in
TeamCity Sample
Cobertura Sample
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
Testing Metrics Tools FitNesse Concordion Selenium Issues management system Testing automation tools
Other Metrics WTFs per minute VCS Activity
Metrics Evaluation Checklist
Example: Business Value Delivered
Example: Velocity
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
Best Practices Measure outcomes, not outputs Measure results, not activity Measure work items done, not time spent per task Follow trends, not numbers
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
Any Questions?

More Related Content

Agile Metrics

  • 1. Agile Metrics Alimenkou Mikalai [email_address] http://agilecoaching.com.ua 11.10.2008
  • 2. Agenda Introduction Metrics basics Business metrics Code metrics Design metrics Process metrics Automation metrics Testing metrics Other metrics Best practices
  • 3. Introduction " Tell me how you will measure me and I will tell you how I will behave " - 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
  • 8. Metrics Approaches Using wrong metrics No metrics at all Using right metrics
  • 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
  • 16. Business Metrics Tools Agile task management tool/plug-in Issues management system MS Excel
  • 17. Code Metrics Cyclomatic complexity Best practices violation Coding standards violation Possible bugs Code duplication Code coverage Dead code Tests quality
  • 18. Code Metrics Tools Checkstyle PMD/CPD Jester Findbugs Simian Maven site plug-in Intellij IDEA inspections
  • 24. Design Metrics Code dependencies Incoming (Affering Coupling) Outgoing (Efferent Coupling) Abstractness Number of abstract classes and interfaces Number of concrete classes
  • 25. Design Metrics Tools JDepend Eclipse CAP plug-in
  • 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
  • 28. Velocity Classic velocity Speed velocity Interruptions per day
  • 31. Process Metrics Tools Issues management system Special agile tools/plug-ins Physical task management tools MS Excel
  • 32. Automation Metrics Code coverage Number of builds per day Time taken per build Number of failed/success builds Trends in code metrics
  • 33. Automation Metrics Tools Continuous integration tools CruiseControl TeamCity Bamboo Hudson Continuum Cobertura Clover Maven dashboard plug-in
  • 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
  • 37. Testing Metrics Tools FitNesse Concordion Selenium Issues management system Testing automation tools
  • 38. Other Metrics WTFs per minute VCS Activity
  • 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