Agile Metrics Alimenkou Mikalai 27.09.2008
Introduction <ul><li>&quot; Tell me how you will measure me and I will tell you how I will behave &quot; </li></ul><ul><li...
Metrics VS Diagnostics
Metrics Uses <ul><li>Understand real ROI </li></ul><ul><li>Plan market strategies, product releases </li></ul><ul><li>Fail...
Why Do We Measure? <ul><li>To inform </li></ul><ul><li>To compare </li></ul><ul><li>To motivate </li></ul><ul><li>To under...
Why Metrics Are So Important? <ul><li>Great help for retrospectives </li></ul><ul><li>Continuously gives feedback </li></u...
Metrics Approaches <ul><li>Using wrong metrics </li></ul><ul><li>No metrics at all </li></ul><ul><li>Using right metrics <...
Useless Metrics <ul><li>Total lines of code </li></ul><ul><li>Line of code per developer </li></ul><ul><li>Total number of...
Business Metrics <ul><li>RTF (Running Tested Features) </li></ul><ul><li>Earned Business Value (EBV) </li></ul><ul><li>Net...
RTF Basics <ul><li>Running – shipped in a product </li></ul><ul><li>Tested – continuously pass acceptance tests </li></ul>...
RTF Agility <ul><li>RTF requires feature count to grow from first day so team is focused on features </li></ul><ul><li>RTF...
RTF Smells <ul><li>RTF is zero from start during some sprints </li></ul><ul><li>RTF starts fast and then slow down </li></...
EBV Basics <ul><li>Each story has its own relative weight assigned by product owner </li></ul><ul><li>Each story has binar...
EBV Agility <ul><li>Focus on business value so no big upfront design </li></ul><ul><li>Don’t work on layers, but on featur...
Business Metrics Tools <ul><li>Agile task management tool/plug-in </li></ul><ul><li>Issues management system </li></ul><ul...
Code Metrics <ul><li>Cyclomatic complexity </li></ul><ul><li>Best practices violation </li></ul><ul><li>Coding standards v...
Code Metrics Tools <ul><li>Checkstyle </li></ul><ul><li>PMD/CPD </li></ul><ul><li>Jester </li></ul><ul><li>Findbugs </li><...
Checkstyle Sample
PMD Sample
Findbugs Sample
Maven Site Plug-in Sample
Intellij IDEA Inspections Sample
Design Metrics <ul><li>Code dependencies </li></ul><ul><ul><li>Incoming (Affering Coupling) </li></ul></ul><ul><ul><li>Out...
Design Metrics Tools <ul><li>JDepend </li></ul><ul><li>Eclipse CAP plug-in </li></ul>
JDepend Sample
Process Metrics <ul><li>Agile practice maturity </li></ul><ul><li>Obstacles cleared per iteration </li></ul><ul><li>Obstac...
Velocity <ul><li>Classic velocity </li></ul><ul><li>Speed velocity </li></ul><ul><li>Interruptions per day </li></ul>
Backlog Size
Process Metrics Tools <ul><li>Issues management system </li></ul><ul><li>Special agile tools/plug-ins </li></ul><ul><li>Ph...
Automation Metrics <ul><li>Code coverage </li></ul><ul><li>Number of builds per day </li></ul><ul><li>Time taken per build...
Automation Metrics Tools <ul><li>Continuous integration tools </li></ul><ul><ul><li>CruiseControl </li></ul></ul><ul><ul><...
TeamCity Sample
Cobertura Sample
Testing Metrics <ul><li>Acceptance tests per story </li></ul><ul><li>Defects count per story </li></ul><ul><li>Tests time ...
Testing Metrics Tools <ul><li>FitNesse </li></ul><ul><li>Concordion </li></ul><ul><li>Selenium </li></ul><ul><li>Issues ma...
Other Metrics <ul><li>WTFs per minute </li></ul><ul><li>VCS Activity </li></ul>
Metrics Evaluation Checklist
Example: Business Value Delivered
Example: Velocity
Best Practices <ul><li>Don’t produce metrics that no one wants </li></ul><ul><li>Be honest about metrics usage </li></ul><...
Best Practices <ul><li>Measure outcomes, not outputs </li></ul><ul><li>Measure results, not activity </li></ul><ul><li>Mea...
Best Practices <ul><li>Don’t measure something just because you can </li></ul><ul><li>Use just enough set of metrics </li>...
Upcoming SlideShare
Loading in...5
×

Agile Metrics

2,344

Published on

Метрики для Agile проектов. Николай Алименков для Agile Gathering.

Published in: Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,344
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
96
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Agile Metrics

  1. 1. Agile Metrics Alimenkou Mikalai 27.09.2008
  2. 2. Introduction <ul><li>&quot; Tell me how you will measure me and I will tell you how I will behave &quot; </li></ul><ul><li>- Eliyahu Goldratt </li></ul><ul><li>” If you can’t measure it, you can’t improve it” </li></ul><ul><li>- Lord Kelvin </li></ul>
  3. 3. Metrics VS Diagnostics
  4. 4. Metrics Uses <ul><li>Understand real ROI </li></ul><ul><li>Plan market strategies, product releases </li></ul><ul><li>Fail fast and save money </li></ul><ul><li>Identify and mitigate business risks </li></ul><ul><li>Estimate new projects </li></ul><ul><li>Award bonuses to developers </li></ul>
  5. 5. Why Do We Measure? <ul><li>To inform </li></ul><ul><li>To compare </li></ul><ul><li>To motivate </li></ul><ul><li>To understand </li></ul><ul><li>To improve </li></ul><ul><li>To protect </li></ul>
  6. 6. Why Metrics Are So Important? <ul><li>Great help for retrospectives </li></ul><ul><li>Continuously gives feedback </li></ul><ul><li>Help to have healthy code base </li></ul><ul><li>To refactor code </li></ul><ul><li>To be able to do frequent releases </li></ul><ul><li>Show issues early </li></ul>
  7. 7. Metrics Approaches <ul><li>Using wrong metrics </li></ul><ul><li>No metrics at all </li></ul><ul><li>Using right metrics </li></ul>
  8. 8. Useless Metrics <ul><li>Total lines of code </li></ul><ul><li>Line of code per developer </li></ul><ul><li>Total number of completed tasks </li></ul><ul><li>Total time worked </li></ul><ul><li>Bugs fixed </li></ul>
  9. 9. Business Metrics <ul><li>RTF (Running Tested Features) </li></ul><ul><li>Earned Business Value (EBV) </li></ul><ul><li>Net Present Value (NPV) </li></ul><ul><li>Internal Rate of Return (IRR) </li></ul><ul><li>Return on Investment (ROI) </li></ul>
  10. 10. RTF Basics <ul><li>Running – shipped in a product </li></ul><ul><li>Tested – continuously pass acceptance tests </li></ul><ul><li>Features – real customer given features </li></ul>
  11. 11. RTF Agility <ul><li>RTF requires feature count to grow from first day so team is focused on features </li></ul><ul><li>RTF requires feature count to grow continuously </li></ul><ul><li>so team integrates often </li></ul><ul><li>RTF requires features to be tested </li></ul><ul><li>so team has contract with the customer </li></ul><ul><li>RTF requires tests continue to pass </li></ul><ul><li>so tests are automated </li></ul><ul><li>RTF requires to grow smoothly </li></ul><ul><li>so design will need to be clean </li></ul>
  12. 12. RTF Smells <ul><li>RTF is zero from start during some sprints </li></ul><ul><li>RTF starts fast and then slow down </li></ul><ul><li>RTF behaves like yoyo </li></ul><ul><li>RTF grows too quickly </li></ul>
  13. 13. EBV Basics <ul><li>Each story has its own relative weight assigned by product owner </li></ul><ul><li>Each story has binary status: done/not done </li></ul><ul><li>EBV calculated as sum of weights for done stories </li></ul>
  14. 14. EBV Agility <ul><li>Focus on business value so no big upfront design </li></ul><ul><li>Don’t work on layers, but on features </li></ul><ul><li>Customer sees value immediately </li></ul><ul><li>Features prioritizing instrument </li></ul><ul><li>Help planning releases and demos </li></ul>
  15. 15. Business Metrics Tools <ul><li>Agile task management tool/plug-in </li></ul><ul><li>Issues management system </li></ul><ul><li>MS Excel </li></ul>
  16. 16. Code Metrics <ul><li>Cyclomatic complexity </li></ul><ul><li>Best practices violation </li></ul><ul><li>Coding standards violation </li></ul><ul><li>Possible bugs </li></ul><ul><li>Code duplication </li></ul><ul><li>Code coverage </li></ul><ul><li>Dead code </li></ul><ul><li>Tests quality </li></ul>
  17. 17. Code Metrics Tools <ul><li>Checkstyle </li></ul><ul><li>PMD/CPD </li></ul><ul><li>Jester </li></ul><ul><li>Findbugs </li></ul><ul><li>Simian </li></ul><ul><li>Maven site plug-in </li></ul><ul><li>Intellij IDEA inspections </li></ul>
  18. 18. Checkstyle Sample
  19. 19. PMD Sample
  20. 20. Findbugs Sample
  21. 21. Maven Site Plug-in Sample
  22. 22. Intellij IDEA Inspections Sample
  23. 23. Design Metrics <ul><li>Code dependencies </li></ul><ul><ul><li>Incoming (Affering Coupling) </li></ul></ul><ul><ul><li>Outgoing (Efferent Coupling) </li></ul></ul><ul><li>Abstractness </li></ul><ul><ul><li>Number of abstract classes and interfaces </li></ul></ul><ul><ul><li>Number of concrete classes </li></ul></ul>
  24. 24. Design Metrics Tools <ul><li>JDepend </li></ul><ul><li>Eclipse CAP plug-in </li></ul>
  25. 25. JDepend Sample
  26. 26. Process Metrics <ul><li>Agile practice maturity </li></ul><ul><li>Obstacles cleared per iteration </li></ul><ul><li>Obstacles carried over the next iteration </li></ul><ul><li>User stories carried over the next iteration </li></ul><ul><li>Defects carried over the next iteration </li></ul><ul><li>Team member loading </li></ul><ul><li>Velocity </li></ul><ul><li>Backlog size </li></ul>
  27. 27. Velocity <ul><li>Classic velocity </li></ul><ul><li>Speed velocity </li></ul><ul><li>Interruptions per day </li></ul>
  28. 28. Backlog Size
  29. 29. Process Metrics Tools <ul><li>Issues management system </li></ul><ul><li>Special agile tools/plug-ins </li></ul><ul><li>Physical task management tools </li></ul><ul><li>MS Excel </li></ul>
  30. 30. Automation Metrics <ul><li>Code coverage </li></ul><ul><li>Number of builds per day </li></ul><ul><li>Time taken per build </li></ul><ul><li>Number of failed/success builds </li></ul><ul><li>Trends in code metrics </li></ul>
  31. 31. Automation Metrics Tools <ul><li>Continuous integration tools </li></ul><ul><ul><li>CruiseControl </li></ul></ul><ul><ul><li>TeamCity </li></ul></ul><ul><ul><li>Bamboo </li></ul></ul><ul><ul><li>Hudson </li></ul></ul><ul><ul><li>Continuum </li></ul></ul><ul><li>Cobertura </li></ul><ul><li>Clover </li></ul><ul><li>Maven dashboard plug-in </li></ul>
  32. 32. TeamCity Sample
  33. 33. Cobertura Sample
  34. 34. Testing Metrics <ul><li>Acceptance tests per story </li></ul><ul><li>Defects count per story </li></ul><ul><li>Tests time to run </li></ul><ul><li>Tests run frequency </li></ul><ul><li>Manual tests per story </li></ul><ul><li>Automation percent </li></ul><ul><li>Time to fix tests </li></ul>
  35. 35. Testing Metrics Tools <ul><li>FitNesse </li></ul><ul><li>Concordion </li></ul><ul><li>Selenium </li></ul><ul><li>Issues management system </li></ul><ul><li>Testing automation tools </li></ul>
  36. 36. Other Metrics <ul><li>WTFs per minute </li></ul><ul><li>VCS Activity </li></ul>
  37. 37. Metrics Evaluation Checklist
  38. 38. Example: Business Value Delivered
  39. 39. Example: Velocity
  40. 40. Best Practices <ul><li>Don’t produce metrics that no one wants </li></ul><ul><li>Be honest about metrics usage </li></ul><ul><li>Don’t use metrics to compare teams </li></ul><ul><li>Use metrics as a basis of discussion </li></ul><ul><li>Don’t demoralize team with metrics </li></ul><ul><li>Take team state into account when selecting metrics </li></ul><ul><li>Don’t select hard produced metrics </li></ul>
  41. 41. Best Practices <ul><li>Measure outcomes, not outputs </li></ul><ul><li>Measure results, not activity </li></ul><ul><li>Measure work items done, not time spent per task </li></ul><ul><li>Follow trends, not numbers </li></ul>
  42. 42. Best Practices <ul><li>Don’t measure something just because you can </li></ul><ul><li>Use just enough set of metrics </li></ul><ul><li>Use metrics that are easy to collect </li></ul><ul><li>Share metrics to get feedback </li></ul><ul><li>Different metrics for product and process </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×