Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Software Metrics in Agile Methodologies [closed]

Agile methodologies are rather prevalent these days, but I cannot seem to find much documentation on what metrics are most useful and why. I have found many more things saying that some traditional metrics like LOC and code coverage of tests are not appropriate, leaving two main questions:

  1. Why are those two (and other) metrics inappropriate?
  2. What metrics are best for Agile and why?

Even with an Agile process, wouldn't you want to know how much code coverage you have with your unit tests? Or is it simply that this metric (and others) just are not as useful as other metrics like cyclomatic complexity and velocity?

like image 684
geowa4 Avatar asked Apr 22 '10 17:04

geowa4


2 Answers

Agile is a business oriented thing, Agile is about maximizing the customer value while minimizing waste to provide the most optimal ROI. This is what should get measured. And to do so, I use the system that Mary Poppendieck recommends. This system is based on three holistic measurements that must be taken as a package:

  1. Cycle time
    • From product concept to first release or
    • From feature request to feature deployment or
    • From bug detection to resolution
  2. Business Case Realization (without this, everything else is irrelevant)
    • P&L or
    • ROI or
    • Goal of investment
  3. Customer Satisfaction
    • e.g. Net Promoter Score

Sure, at the team level you can track things like test coverage, cyclomatic complexity, conformance to coding standards, etc, but high quality is not an end in itself, it's just a mean. Don't misinterpret me, I'm not saying high quality doesn't matters, high quality is mandatory to achieve sustainable pace (and we include "no increase of the technical debt" in our Definition of Done) but still, the goal is to deliver value to the customer in a fast and profitable way.

like image 172
Pascal Thivent Avatar answered Nov 12 '22 12:11

Pascal Thivent


Irrespective of methodology, there are some basic metrics that can and should be used.
According to S. Kahn, the most important are the following three:

  • size of product
  • number of defects found in final phase of testing
  • and number of defects found in the field.

If those are all you track, there's at least five ways they can be used:

  • calculate product defect rate (A)
  • calculate test defect rate (B)
  • determine a desirable goal for A and monitor the performance
  • determine a desirable goal for B and monitor the performance
  • assess correlation between A and B
  • if correlation is found, form metric of test effectiveness (B/A * 100%)

Although not necessarily fun to read, Metrics and Models of Software Quality Engineering provides an excellent in-depth software engineering and metrics overview.

like image 2
JRL Avatar answered Nov 12 '22 12:11

JRL