Your SlideShare is downloading. ×
A Cost Model for Software Reuse

                                      Ralph M. DeFrangesco
                            rd...
2 Reuse Benefits                                      4 How to develop a reuse strategy
Few organizations argue the benefi...
requirements analysis phase of the Systems Life           decisions about whether to; reuse or build a one
       Cycle (S...
RORI will give management an idea as to how                     reusable asset is $50000 and the cost of
well we are using...
developing a reusable asset. The payback for the     5.1 Interpreting the results
investment can be calculated with the fo...
Whatever method you use to calculate reuse               Acknowledgements
economics, it should be consistent across all yo...
Upcoming SlideShare
Loading in...5
×

A cost model for software reuse

1,673

Published on

This document discusses software reuse.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,673
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
66
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "A cost model for software reuse"

  1. 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. 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. 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. 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. 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. 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.

×