1. A Cost Model for Software Reuse
Ralph M. DeFrangesco
rdefrangesco@advancedconsultinggroup.biz
Abstract This paper applies basic business concepts such
With rising costs, delivery dates shrinking and
as Return on Investment (ROI) and Payback
resources becoming scarce, a reuse strategy is
along with reuse specific concepts such as Cost
perhaps one of the most important strategies a
of Reuse and Cost of Writing a Reusable Asset
company could have.
and presents them in an easy to use format with
The value, payback and return on investment
examples.
that reuse can bring is often difficult to
calculate. This paper applies basic business
1.1 What is reuse?
formulas to cost modeling for software reuse.
Reuse is a process, an applied concept and a
This paper is not intended to be a comprehensive
paradigm shift for most people.
guide to reuse.
There are many definitions for reuse. In plain
and simple words, reuse is, “The process of
Keywords creating new software systems from existing
Reuse, Software Reuse, Software Cost
software assets rather then building new ones”.
Estimation, Reuse Cost
1 Introduction 1.2 What kinds of things get reused?
The concept of reuse is not a new one. It is
When we think of reuse, we tend to think of
however relatively new to the software
software specific assets. Many artifacts can be
profession. Every Engineering discipline from
reused including; code, documentation,
Mechanical, Industrial, Hydraulic, Electrical, etc,
standards, test cases, objects, components and
understands the concept of reuse. However,
design models.
Software Engineers often feel the need to be
creative and like to design “one time use”
According to a leading reuse vendor, these
components. They relegate in the fact they come
specific items get reused the most: Security
up with unique solutions.
Components, Error checking/handling,
Frameworks/Web based commerce, Data access
Senior technology managers often have a hard
objects (middleware), Process templates for
time convincing their business partners that the
SDLC (RUP), Open Source.
thousands of dollars they spent on reuse
technology reaps any benefit.
2. 2 Reuse Benefits 4 How to develop a reuse strategy
Few organizations argue the benefits of reuse. Reuse can occur at any level and at any time,
These benefits certainly will vary organization to planned or not. The most successful programs
organization and to a degree in economic start at a department level and expand from
rational. Reuse could provide improved there. Eventually, for a reuse program to be
profitability, higher productivity and quality, effective, it must be considered an enterprise
reduced project costs, quicker time to market and program. As we can see in figure 1, artifacts can
a better use of resources. The challenge is to flow into and out of the reuse repository from a
quantify these benefits. number of different sources. This is important to
note because from an economic perspective, the
more organizations, internally or externally, that
2.1 Industries that reuse the most reuse the artifacts, the more return on
Financial (Insurance, Banking, Consumer investment.
Lending) and Medical-Pharmaceutical all tend to
embrace reuse. The reason, processes tend to be
similar in nature in these industries. An example C
En terp rise
would be the residential loan process is similar in Reu se
Pr og ram
Comp onent
Developm ent
behavior to the commercial loan process. This
U U
makes it a good asset to reuse.
Project Application
T eam s Deve lopm ent
Reuse
Team
M
3 Barriers to reuse
If we explore the barriers of reuse, we will see C C
Artifact Service
that there are quite a few of them. None of which Develo pmen t Deve lopm ent
Corporation
are insurmountable, but any one could impede
U
reuse. M = Me asu re
C = Creator
U = User
1.) Not being able to show quantifiable results
Figure 1
2.) Reorganization
3.) Money
According to a recent survey by the Software
4.) Not invented here attitude
Engineering Institute (Nada and Rine), less than
5.) Complexity/lack of process
twenty percent of projects collect and measure
6.) Not having the in-house expertise
reuse metrics.
7.) Mediocre tools
Also, according to the SEI, of those that did have
a reuse program, fifty-seven percent of the
projects realized high commonality within the
3. requirements analysis phase of the Systems Life decisions about whether to; reuse or build a one
Cycle (SLC). time asset, Return on Reuse Investment, and
payback period. Reuse economics are generally
Reuse does not just happen. It needs to be designed to answer the question: What will be
planned, executed, measured, monitored and the financial consequences if we choose X or do
optimized as shown in figure 2. Y? A good reuse business case shows expected
ROI consequences of a decision over time and it
includes the rationale for quantifying benefits
and costs.
Plan Execute Measure Monitor Optimize
Reuse percentage
According to Poulin (1996), reuse percentage is
the most important statistic to measure first. It
Figure 2
can be calculated by dividing the amount of
software reused by the total software.
An iterative approach should be taken because
Let’s assume we have an application that’s 7000
reuse should be part of a continual process
lines of code (LOC) and we decide that we can
improvement initiative like CMMI.
reuse 3000 LOC in another application we are
building. We can calculate our reuse percentage
Critical success factors:
with the following:
1.) Develop for reuse before developing
Reuse percentage = Reused software / Total
with reuse as a goal
software * 100%
2.) Develop an ontological approach to
reuse (Falbo, Guizzardi, Duarte, 2002)
3000 (LOC) / 70000 (LOC) * 100 = 42.8%
3.) Site taxonomy (searchable)
4.) Incentive plan for developing reusable
So from our example, our reuse percentage is
artifacts
43% (rounded-up). The higher the reuse
5.) Must have managements buy-in
percentage the better the reuse rate.
(funding)
6.) Be consistent in what you measure and
Return On Reuse Investment
report
Most companies don’t have a good base line to
7.) Determine a “cost” for reuse of artifacts
even begin calculating Return on Investment
(ROI). Since we are calculating Reuse, we will
change our formula to more accurately reflect its
5 Reuse economics
use – Return on Reuse Investment or RORI.
Reuse economics are financial tools that support
planning and decision making–including
4. RORI will give management an idea as to how reusable asset is $50000 and the cost of
well we are using their investment dollars. developing an asset for single use is $22000. We
Our formula for RORI is taken from Weston, can calculate the cost, or ratio, of writing for
Besley and Brigham (1997): reusability by the following:
RORI = Gains – Costs (investment) Cost of developing the reusable asset
Costs (investment) Cost of developing an asset for single use
RORI = 50000 - 10000 Cost = 50000 / 22000
10000 Cost = 2.27
This number should be as close to 1.00 as
RORI = 4 possible. From the above example we can
determine that it costs 2.27 times as much to
* Gains are calculated by charging a fee every time the asset develop the reusable asset.
is reused.
Cost of reuse
Gains, what we expect to get back on our
The cost to reuse is the ratio of the cost of
investment, are $50000. The initial investment,
developing an asset from scratch to the cost of
people and technology cost, is $10000.
reusing one. Let’s assume our cost to reuse an
This tells us that for ever dollar invested, three
asset is $10000 and the cost of developing one
will be returned plus the initial investment. The
from scratch is $22000. We can calculate the
higher the RORI the better the investment is
cost to reuse with the following formula:
being used.
According to Garrison and Noreen (1997), ROI
Cost to reuse
or RORI, tends to favor short run performance in
Cost to develop from scratch
lieu of longterm profitability. To overcome this,
companies use multiple criteria in evaluating
Cost = 10000 / 22000
performance such as; Increase in productivity,
Cost = .45
growth in market share, production innovation
and the ability to expand into new and profitable
We want this ratio to be under 1.00 as much as
areas.
possible. The cost to reuse variable should be
dropping each time an asset is reused.
Cost of writing a reusable asset
Payback
The cost of writing a reusable asset is the ratio of
Payback is the length of time required to recover
the cost of developing a single use asset, to the
the cost of an investment. Let’s look at a
cost of developing a reusable asset. As an
scenario where a company invests $150000 in
example, let’s assume the cost of developing a
5. developing a reusable asset. The payback for the 5.1 Interpreting the results
investment can be calculated with the following So far we managed to get data from some
formula taken from Weston, Besley and Brigham formulas. But what does it all mean? What if we
(1997): get a good result from one formula and a poor
result from another? It is possible to get what
Payback Period = A + ( B / C ) where:
appears to be conflicting results when analyzing
A = Years before final payback year financial data. For instance a RORI could be
high, say 5, and the payback longer then what’s
B = Total to be paid back - Total Paid back at
start of final payback year generally accepted by an organization. In order
to make a good financial investment decision,
C = Total Paid back at the end of final payback you need to know what factors the financial
year - Total Paid back at the start of the final
payback year. people use in making these decisions. What is
your companies preferred payback period? What
percent is a company expecting for their return
Paid Tot paid on investment? Once we have this information,
Year Paid out back back it’s easy to determine if it makes sense to invest
1 150k 60k 60k
2 60k 120k in a project.
3 60k 180k
5.2 Calculating reuse economics and
A=2
web services
B = 150 – 120
It’s much easier to calculate reuse economics
C = 180 – 120 using components, documents and test plans then
with services. A web service is inherently
Payback = 2 + (150-120) / (180-120)
reusable, but how do we measure and quantify
Payback = 2 + 30/60 its use?
Services that are to be reused should be loosely
Payback = 2.5 years
coupled, large grained business processes.
From our example, we can see that it takes 2.5 Because of this, the code probably will not be
years to payback the initial investment. Is this a reused that much, however the service may.
good investment? If a company’s payback
requirement is for three years or less, then yes Reuse economics can be used however, we need
this would be a good investment. Keep in mind to calculate them in a different manor. We could
that payback does not consider the time value of substitute number of times a service is called in
money – what the investment could be making place of lines of code. We could also look at the
now. number of transactions through the service or
chargeback as a utility, a flat rate plus utilization.
6. Whatever method you use to calculate reuse Acknowledgements
economics, it should be consistent across all your I would like to thank Sharon Fay from Flashline
services. Inc. and Thomas Murphy from MetaGroup for
their insightful input into this paper.
Conclusions References
From the paper we can conclude that a cost
Falbo.R., Guizzardi.G., Duarte.K., “An
estimation model is needed in conjunction with Ontological Approach to Domain Engineering”,
any reuse program. Reuse programs require an SEKE, July, 2002, ACM 1-58113-556-4/02/0700
investment in people, process and technology.
To ask for such an investment without showing Nada. N., Rine. D., “A validated software reuse
reference model supporting component-based
its economic value, is naïve. Financial management”, SEI, 2004
professionals expect Information Technologist to
apply financial rational when asking for Poulin. J., “Software Reuse Mectrics, Reusibility
investment dollars. Several basic financial Metrics and Economic Models: A Tutorial”,
Loral Federal Systems, 1996
models with examples have been presented and
can easily be adapted to real world problems.
Weston, J., Besley, S., Brigham, E., “Essentials
Web services, which are reusable by design and of Managerial Finance”, The Dryden Press, 1997
tend to require a large investment, can be folded
into our economic model thereby showing Garrison, R., Noreen, E., “Managerial
benefit and economic investment rational. Accounting”, Irwin, 1997
Future Work
As we have seen, calculating the quantitative
benefits of reuse is straightforward. This paper
did not touch on the qualitative benefits. We
make subjective statements such as, quality will
improve, or employee satisfaction will meliorate,
but cannot substantiate them. This is important
because we can economically rationalize results,
but does it mean they will mesh with qualitative
estimates? It would be beneficial to integrate a
quantitative and a hermeneutics framework to
legitimize a reuse program that provides a
holistic point of view.