Successfully reported this slideshow.
Your SlideShare is downloading. ×

Agile Metrics

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Top 10 Agile Metrics
Top 10 Agile Metrics
Loading in …3
×

Check these out next

1 of 45 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (17)

Advertisement

Similar to Agile Metrics (20)

More from Mikalai Alimenkou (20)

Advertisement

Recently uploaded (20)

Agile Metrics

  1. 1. Agile Metrics Alimenkou Mikalai [email_address] http://agilecoaching.com.ua 11.10.2008
  2. 2. Agenda <ul><li>Introduction </li></ul><ul><li>Metrics basics </li></ul><ul><li>Business metrics </li></ul><ul><li>Code metrics </li></ul><ul><li>Design metrics </li></ul><ul><li>Process metrics </li></ul><ul><li>Automation metrics </li></ul><ul><li>Testing metrics </li></ul><ul><li>Other metrics </li></ul><ul><li>Best practices </li></ul>
  3. 3. 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>
  4. 4. Metrics VS Diagnostics
  5. 5. 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>
  6. 6. 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>
  7. 7. 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>
  8. 8. Metrics Approaches <ul><li>Using wrong metrics </li></ul><ul><li>No metrics at all </li></ul><ul><li>Using right metrics </li></ul>
  9. 9. 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>
  10. 10. 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>
  11. 11. 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>
  12. 12. 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>
  13. 13. 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>
  14. 14. 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>
  15. 15. 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>
  16. 16. 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>
  17. 17. 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>
  18. 18. 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>
  19. 19. Checkstyle Sample
  20. 20. PMD Sample
  21. 21. Findbugs Sample
  22. 22. Maven Site Plug-in Sample
  23. 23. Intellij IDEA Inspections Sample
  24. 24. 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>
  25. 25. Design Metrics Tools <ul><li>JDepend </li></ul><ul><li>Eclipse CAP plug-in </li></ul>
  26. 26. JDepend Sample
  27. 27. Process Metrics <ul><li>Agile practice maturity </li></ul><ul><li>Impediments cleared per iteration </li></ul><ul><li>Impediments carried over the next iteration </li></ul><ul><li>User stories carried over the next iteration </li></ul><ul><li>User stories done per 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>
  28. 28. Velocity <ul><li>Classic velocity </li></ul><ul><li>Speed velocity </li></ul><ul><li>Interruptions per day </li></ul>
  29. 29. Impediments Backlog
  30. 30. Backlog Size
  31. 31. 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>
  32. 32. 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>
  33. 33. 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>
  34. 34. TeamCity Sample
  35. 35. Cobertura Sample
  36. 36. 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>
  37. 37. 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>
  38. 38. Other Metrics <ul><li>WTFs per minute </li></ul><ul><li>VCS Activity </li></ul>
  39. 39. Metrics Evaluation Checklist
  40. 40. Example: Business Value Delivered
  41. 41. Example: Velocity
  42. 42. 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>
  43. 43. 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>
  44. 44. 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>
  45. 45. Any Questions?

×