Making Software Quality Metrics Actually Work

There is no way to control things which are not being measured properly.
Being able to measure quality of software and having understanding what contributes to it, it’s possible to improve the quality and eliminate (or minimize) negative factors.
But, it seems, just measuring the quality is not enough. Even to have right methodology is not enough. Even good tools may not help. Why?

I would like to list 7 things, which can address question “why”, help to adopt, increase efficiency and accuracy of software quality measurement process.

1. Measuring quality is always a tough task because of employees perception.

People tend to take personally any indicators which potentially could harm them. Hence, developers or testers will do everything to make them look better in terms of quality metrics. Managers too.

2. It should be very clear stated that quality metrics will not be used to punish people or affect them negatively.

If people are afraid to be punished, they will do all kind of tricks: window-dressing, opposition to software quality adoption, complaining about accuracy of metrics data, challenging methodology, even sabotaging. Rewards are also not always work.
One company came up with “great idea”, they offered some amount of money to testers for each bug found and to developers for each bug fixed. After a few weeks they terminated this incentive because of number of found (and fixed) bugs skyrocketed. Turned out, testers and developers made a deal to raise easy money.

3. Quality Metrics should help regular employees.

When you ask a developer to do something extra on daily basis (fill extra form, or track some data, for example) it always should be a good reason for that. Things like “it helps company to track X amount of additional metrics” don’t work. These metrics should help development process overall and this developer in particular. What would work is: “having clear picture our software quality will help to streamline the process and YOU will be having more organized environment and less overtimes and around-the-clock red-eye nights”. It should not be just words. If there is no way to improve employee’s life via new metrics, try to collect them without extra efforts.

4. Interpretation of metrics data can be improved if it includes the following questions.

“What this data tells me?”, “Based on the data, can we tell if we are improving or going worse?”, “What is the question this metric is trying to answer?”, “Can it tell me what are the positive / negative contributors to the metric?”, “Does this metric stimulate people to do right things?”, “What kind of goal could we achieve, if we use this metrics as a primary one?”.

5. No one quality metric can provide an accurate and complete picture.

Software development process is not one-dimensional thing. Sometimes increase of incoming defects means positive things. Sometimes absence of defects is a bad indicator. Sometimes new release has much more defects and it’s OK. Depending on the context, one metric can be interpreted differently, that’s why metrics should be used as a package.

6. Too much metrics can create a mess.

Optimal number of measurements should be not more than 10-12 and not less than 4-6. Too much metrics will confuse people too less – provide incomplete picture.

7. Software quality metrics should follow the development process.

There is no “silver bullet” and universal metrics set for everybody and everything. Metrics should measure existent process and follow it, not otherwise. Breaking the process for the sake of “innovative metrics methodology” could cost more than the adoption could potentially save.

8 comments ↓

#1 Mark on 10.05.06 at 9:49 pm

Thanks for this ingsightful overview. I never really though about this like the way you mentioned :)

#2 The Disco Blog » Making metrics work on 10.06.06 at 9:30 am

[...] Over on ontoinfo.com, an interesting article was published entitled “Making Software Quality Metrics Actually Work” in which the author states that “No one quality metric can provide [an] accurate and complete picture.” Bingo! They hit the nail on the head with that one, man. [...]

#3 Pavel Senko on 10.06.06 at 5:41 pm

Mark, you are welcome!

#4 Manuel on 11.01.06 at 5:11 am

There’s a fine metric at http://www.xprogramming.com/xpmag/jatRtsMetric.htm proposed by Ron Jeffries: simply measure the tested and integrated features :-)

#5 Jason Barile - Microsoft in Raleigh, NC : Learning about product and team metrics on 03.28.07 at 7:10 pm

[...] Learning about product and team metrics Metrics are a double-edged sword.  On one hand, you can’t improve what you don’t measure.  On the other hand, if your metrics program is implemented poorly, you can end up with all sorts of problems ranging from fooling yourself into thinking everything’s ok to demotivating your team to information overload.  In any product development environment, you really need to pay attention to two classes of metrics:  product metrics - tell you about the quality of your product team metrics - tell you about the productivity and effectiveness of your testing team If you’re putting together a metrics program for your product, here’s a short list of some articles I found useful while working on ours: OntoInfo.com presented some great thoughts last Fall on software metrics and how to make them actually work for your team - boiled down to 7 simple points. “Measurement Issues and Software Testing”, by Cem Kaner And if you’re designing a metrics program to help increase the productivity of your team, I recommend: “Measuring the Effectiveness of Software Testers”, by Cem Kaner “The Seven Habits of Highly Effective Testing Organizations”, by Lee Copeland Of course, these are just a start, but they sum up the key points quite nicely and can help you avoid common pitfalls. Published Wednesday, March 28, 2007 9:08 PM by JasonBa Filed under: Software Testing, metrics [...]

#6 Stephan on 04.19.07 at 6:27 am

This article does not say anything at all.
The points offered are not only trivial and obvious, they are stated by anyone talking about metrics.
[Yawn]

#7 Remi on 05.25.07 at 12:09 am

I loved this article.
dont be so rude Stephen

#8 Tien on 04.18.08 at 4:33 pm

great article. I appreciate the insights. I need more details to help my team successful with our software quality metrics.

Thanks and keep up the good work!

You must log in to post a comment.