I’ve talked about different metrics that are used to measure quality and the metrics that developers would use in practice. But what about the tools themselves? How are you measuring the value you are getting out of these tools?
In terms of static analysis, one obvious measurement is simply the bug fixes you have made. Most organizations have a number they use to define the cost savings for each bug. Using some research data from IBM puts the cost of fixing a bug before a release at 40-50 times cheaper. Fixing a bug after release is the extreme and hopefully you’re finding these issues earlier and that’s where static analysis comes in.
I would think any static analysis tool offering would give you that simple graph. Below is a couple of examples where you can track the fixes per component or per owner.
One other thing that I think is very important is where you’re saving money. When you run static analysis for example you have a couple of choices where you can find defects. After the integration build or right at the developers desktop before they check-in their code. Obviously if the developers are finding and fixing their issues while they code and before they even get checked in then it is saving even more money for the company. Good static analysis tools will help you see the value of using it at the desktop. A simple counter is all you need to see how many bugs were fixed in the code prior to check-in. Immediate ROI from using static analysis.