Slideshow transcript
Slide 1: Metrics for Agile Projects Presented at Agile NCR 2008 Conference (March 8, 08) by Deepak Mittal www.IntelliGrape.com
Slide 2: Speaker background ● 9 years of experience with software development ● became agilist 2 years back when joined Xebia ● Certified Scrum Master ● recently founded IntelliGrape Systems ● enjoy looking at and evaluating new and exciting frameworks in java space http://www.IntelliGrape.com
Slide 3: ”If you can not measure it, you can not improve it.” Lord Kelvin http://www.IntelliGrape.com
Slide 4: ”Measure and let it be known that you are measuring.” ”Measurement drives behaviour.” ”You get what you measure” http://www.IntelliGrape.com
Slide 5: Session Agenda ● What are Metrics / Diagnostics ● Why are Metrics so important for Agile Projects ● Various types of Metrics ● Metrics collection tools ● Demo at Metrics reports ● Recommendations / Thoughts http://www.IntelliGrape.com
Slide 6: Take Away from Session ✔ The importance of Metrics on Agile Projects ✔ Various Metrics that can be collected and analysed ✔ Tools used for Metrics collection http://www.IntelliGrape.com
Slide 7: Quick Poll ● How many people have used Metrics in their projects : Agile or Non Agile? ● One useful metric ● One useless metric http://www.IntelliGrape.com
Slide 8: Metrics Vs Diagnostics ● A metric measures something of direct value to the business – e.g. Earned Business value per iteration ● A diagnositc measures something of our ability to produce the thing of value – e.g. Velocity, Code Quality http://www.IntelliGrape.com
Slide 9: Why do we Measure? ● to inform ● to compare / benchmark ● to motivate ● to improve ● to get CMM certification :) http://www.IntelliGrape.com
Slide 10: 3 Approaches to Metrics ● Using the wrong metrics – Improper metrics collection besides being wasteful also skews teambehaviour in counter productive ways. e.g. Code Review Effectiveness, Kloc ● No Metrics at all – how do you improve? ● Using the right metrics http://www.IntelliGrape.com
Slide 11: Why Metrics are Important for Agile Projects ● Because we are doing the same thing over and over again – the same metrics are applicable throughout the project. ● Agile projects are all about early feedback which helps you improve in the project and not only at the end of the project ● Agile Principle : Plan> Do > Inspect > Adapt (Having metrics help you inspect objectively) ● http://www.IntelliGrape.com
Slide 12: Why Metrics are Important for Agile Projects ● Agile projects embrace change – To incorporate changing requirements – you need a healthy codebase – Evolutionary design against big upfront design – To refactor code, you need good code coverage and clearly defined package dependencies – To be able to make frequent releases, you need continuous integration http://www.IntelliGrape.com
Slide 13: Quick Recap ● Why do we measure ● Metrics / Diagnostics ● Why Metrics are needed on Agile Projects http://www.IntelliGrape.com
Slide 14: Metrics Classification ● Code ● Design ● Project ● Automation ● Business Value ● etc http://www.IntelliGrape.com
Slide 15: Code Metrics ● Cyclomatic complexity ● Best practices violation ● Coding standards violation ● Possible bugs (empty trycatch) ● Code duplication ● Unit Tests Quality ● Dead Code (unused variables) http://www.IntelliGrape.com
Slide 16: Code Metrics Tools ● Checkstyle ● PMD ● Jester ● Findbugs ● Simian http://www.IntelliGrape.com
Slide 17: Design Metrics ● Distance from Main sequence – measures the balance between abstractness and instability – # of Abstract Classes & Interfaces – # of Concrete Classes – # of Incoming Dependencies (Affering Coupling) – # of Outgoing Dependencies (Efferent Coupling) ● Cyclic Dependencies http://www.IntelliGrape.com
Slide 18: Design Metrics Tools ● jDepend ● Eclipse CAP Plugin http://www.IntelliGrape.com
Slide 19: Project Metrics ● Velocity / Burndown ● Rework % ● Open and Closed Issues ● Defects carried over to next iteration ● User stories carried over to next iteration ● Obstacles carried over to next iteration http://www.IntelliGrape.com
Slide 20: Project Metrics Tools ● VersionOne ● ThoughtWorks Mingle ● ScrumWorks ● Atlassian JIRA ● MS Excel http://www.IntelliGrape.com
Slide 21: Automation Metrics ● Test coverage ● # of builds in a day ● Time taken for the build ● Total builds done / passed / failed ● Trends – Code coverage – Checkstyle – PMD http://www.IntelliGrape.com
Slide 22: Automation Metrics Tools ● Atlassian Clover ● Cobertura ● CruiseControl ● Maven Dashboard plugin http://www.IntelliGrape.com
Slide 23: Business Value Metrics ● EBV – Earned Business Value ● RTF – Running Tested Features ● Potential Value delivered http://www.IntelliGrape.com
Slide 24: The ”real” Metric Earned Business Value ● Product owner assigns a relative weight to each user story/feature. ● Small stories with clearly defined completion criteria: 100% done or 0% done : binary status http://www.IntelliGrape.com
Slide 25: Benefits of EBV metric ● No bigupfront design possible because of the focus on business value ● You build the application in vertical slices than horizontal layers ● You don't work on layers but features ● Customer sees the value immediately rather than after months ● Easy to identify when the project hits the point of diminishing returns http://www.IntelliGrape.com
Slide 26: Business Value Metrics Tools ● MS Excel ● ThoughtWorks Mingle ● VersionOne http://www.IntelliGrape.com
Slide 27: Demo : Metrics of a real project Show Code, Design and Automation Metrics on Magnolia CMS http://www.IntelliGrape.com
Slide 28: Checkstyle http://www.IntelliGrape.com
Slide 29: Cobertura : Code coverage http://www.IntelliGrape.com
Slide 30: Copy Paste Detection http://www.IntelliGrape.com
Slide 31: FindBugs http://www.IntelliGrape.com
Slide 32: jDepend : Design Metrics http://www.IntelliGrape.com
Slide 33: PMD Reports http://www.IntelliGrape.com
Slide 34: CruiseControl Metrics http://www.IntelliGrape.com
Slide 35: Metrics Demo : Recap ● Maven dashboard report ● Cyclic dependencies ● Good Builds / Bad builds ● Code coverage ● Build breakdown ● Distance from Main ● Checkstyle Sequence ● PMD ● Abstractness ● Findbugs: Possible Bugs ● Cyclomatic Complexity Code Duplication ● ● http://www.IntelliGrape.com
Slide 36: Demo : Burndown chart Show Burndown Chart, Velocity and Velocity trends, etc from a past project http://www.IntelliGrape.com
Slide 37: Sprint Burn down Chart http://www.IntelliGrape.com
Slide 38: Velocity http://www.IntelliGrape.com
Slide 39: Open and Closed Issues http://www.IntelliGrape.com
Slide 40: Release Burndown Chart http://www.IntelliGrape.com
Slide 41: Demo of EBV Metric ● EBV Metrics Excel Sheet http://www.IntelliGrape.com
Slide 42: Benefits of Metrics Collection & Analysis on my Projects ● Keeping a check on codebase health ● Estimation for future sprints ● Project planning ● Velocity Trends and Insights ● Tells us when to refactor ● Code metrics used as the most important factor when doing a big refactoring ● http://www.IntelliGrape.com
Slide 43: Metrics Collection Tools List ● ScrumWorks ● Cobertura ● FindBugs ● Code Analysis Plugin ● PMD ● Maven Dashboard ● Checkstyle ● Simian ● Clover ● ThoughtWorks Mingle ● jDepend ● VersionOne ● Jester ● Atlassian JIRA http://www.IntelliGrape.com
Slide 44: Useless Metrics ● Kloc & Defects / Kloc – doesn't make sense – promotes copypasting ● Time/Effort spent in various phases of the project http://www.IntelliGrape.com
Slide 45: Recommendations ● Collect minimum number of metrics that will provide all information necessary to meet business goals – Measure ”just enough”. ● Look at Metrics in perspective ● Choose Metrics carefully applying waterfall metrics to agile projects can do more harm than good ● Metrics collection should be as automated as possible http://www.IntelliGrape.com
Slide 46: References / Attribution ● Neal Ford's presentation on Agile Metrics ● David Nicolette's presentation on Agile Metrics ● Appropriate Agile Measurement ● Hemant Saraf : for excellent review & ideas http://www.IntelliGrape.com
Slide 47: Feedback dmittal@IntelliGrape.com http://www.IntelliGrape.com http://blog.IntelliGrape.com http://www.IntelliGrape.com
Slide 48: License This work is licensed under the Creative Commons AttributionNoncommercialShare Alike 3.0 License http://www.IntelliGrape.com



Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 1 (more)