Jeffrey S. Poulin
IBM Reuse Technology Support Center
Poughkeepsie, NY 12602
A lot of groups report high levels of reuse on projects
but rarely do they give detailed information on how they arrived
at those values nor do they quantify the value of the reuse to
their organization. Many groups feel pressure to demonstrate
that they have active reuse programs but, despite the supposed
savings, cannot verify the benefits. Reuse metrics have a unique
role because, unlike productivity metrics, reuse metrics reflect
on what a programmer does not do. Organizations normally reward
those who deliver the most function, thereby encouraging developers
to write code. However, in reuse we want to recognize developers
for NOT writing code.
Ultimately, an organization defines what to measure
and report as reuse in accord with its goals. Because IBM uses
the metrics in a Return on Investment (ROI) model, we carefully
define what to include in our reuse counts so we can reasonably
quantify the level of reuse and its value to an organization.
Specifically, we have the following goals:
We also must have easy data to collect, normalize,
and report. We calculate the IBM reuse metrics from common data
elements using three equations we developed from those elements.
The first metric, Reuse Percent, indicates the level of reuse
activity in an organization as a percentage of effort. Although
a simple percent equation, we feel it provides a good estimate
of overall reuse activity because we carefully define what we
count as reuse.
The second metric, Reuse Cost Avoided, estimates financial benefit. The Reuse Cost Avoided combines the level of reuse on a project with historical information on development and service costs to tell us the
value of reuse to our organization. RCA equals the
sum of avoided costs during the development and service phases
of a project:
The third metric, Reuse Value Added, includes recognition not only for reusing software but also for writing reusable code. We present the Reuse Value Added as a ratio or productivity index; a value of 1
indicates no participation in reuse. A value of
1.5 indicates an organization increases its effectiveness by 50%
as a result of its participation in the reuse program. The increased
effectiveness results not only from reduced development costs
but also from maintaining software that others use and from using
software which others maintain for you.