Ray Madachy USC Center for Systems and Software Engineering

advertisement
Submission for 22nd International Forum on COCOMO and Systems/Software Cost Modeling
Business Valuation with Software Cost Modeling – A Case Study
Ray Madachy
USC Center for Systems and Software Engineering
madachy@usc.edu
Abstract
A business valuation was undertaken to quantify the intellectual property value of a software product for
an investment analysis. A parametric cost modeling approach was used to answer the question “how
much would it cost to reproduce the software”. Multiple independent sizing and estimation models were
used. We also performed an organization productivity analysis to support the evaluation and provide
more background for potential investors.
There were a number of uncertainties identified in the valuation process, and accordingly conservative
assumptions were made throughout. The ranges of uncertainties decreased through analysis iterations.
The valuation provided by cost modeling is only part of the overall valuation, which must include other
infrastructure and start-up costs for an assumed competitor.
Introduction and Background
In the COCOMO II book [1] there are eight major software decision situations identified for COCOMO.
However, cost models can also be used to support business decisions that don’t involve software
development or process improvement per se. We used COCOMO in conjunction with other models to
perform a software product value assessment for a company investment analysis. There was no pending
decision to “make or buy” a specific type of software product, but whether to invest in a company that
had intrinsic intellectual value in theirs.
Reifer discusses approaches to value intellectual property in [2]. A standard of value needs to be
defined (in this case an acquisition value), as well as a valuation approach. We chose a cost approach to
predict how much an investor would pay to replace or reproduce the software asset.
The software under consideration is an application that supports banks in auditing specialized accounts.
The client’s staff uses their internal software to perform this service for banks. The software value is
thus derived from the services provided with the software, and in the future when the software is leased
to external customers.
This value estimate was derived by distilling the essential, invariant product characteristics and
abstracting out factors unique to the client. The method below addresses the software business value
concept, measurements and indicators, derives an initial ROM estimate range, and lists issues to be
resolved to reduce uncertainties.
Method
The best approach to software cost estimation is using a combination of methods. Estimates using
different techniques are compared and iterated, and their differences reconciled. Frequently the
iterations help identify differing assumptions in the approaches, and the estimates usually become more
aligned leading to higher confidence in the results. By using several independent techniques and sources
we were able to derive a range of numbers with higher confidence than a single method would have
provided.
1
Submission for 22nd International Forum on COCOMO and Systems/Software Cost Modeling
COCOMO was used to derive product estimates and organizational comparisons using multiple sizing
techniques. The effort multiplier term in the COCOMO effort formula allows analysis of the effort
variance due to single cost factors or groups of factors. This is useful to separate out the intrinsic
product reproduction costs (product attributes) vs. the cost factors that specifically describe the client
environment (personnel, organization, platform and other factors).
We identified two groups of cost factors of significance. Factors in each of these were either:
1) A core attribute of product functional product. E.g. What would someone have to develop to
compete against this product?
2) An organizational differentiator of the client for comparison analysis. E.g. What are the
environmental cost factors that indicate unique productivity advantages/disadvantages, quality or
risk profiles?
In this study the product attributes of Required Software Reliability, Data Base Size, and Product
Complexity were regarded as immutable to characterize the product system if another wanted to replicate
its functionality. Together with size they are used to characterize the base estimate of product
functionality.
The data collected consisted of size, cost driver ratings, and effort. The product program software
consists of ASP and HTML code, and approaches were used to quantify size in both source lines of code
(SLOC) and function points. Source statements were broken out in the following categories: ASP script,
HTML code, dimension statements, comments and blank lines. The total logical source statements
consisting of ASP, HTML and dimension statements were used in the cost model.
An alternative size measure is function points, where individual inputs, outputs, queries, internal logical
files (e.g. data tables) and external interface files are counted and weighted for complexity. These were
also counted and used for two purposes: 1) backfiring to lines of code and 2) independent estimates
based on function point sizing alone.
A function point gearing factor was computed to relate the lines of code to function points, which had to
be weighted by the relative portions of ASP and HTML. The gearing factor predicted considerably
more than the measured logical lines of code. The public function point tables in [3] provide large
ranges, neither the sample size nor project contexts are known, and the actual conversion to lines of code
may be far different at a local site. This was a major source of uncertainty in the analysis.
The product of the COCOMO factor product effort multipliers was 1.47, which implies the product
takes 147% effort compared to a nominal software product. This multiplier was used to estimate the
product effort range using different sizing approaches in COCOMO II (direct SLOC and SLOC
backfired from function points). The backfiring tables in [3] were used for this.
The actual product software development effort was used to validate our estimates and indicate whether
a local model calibration is needed. The 5% uncalibrated effort difference represented extremely good
model performance, and with one data point there is no overriding need to re-calibrate the model. The
model prediction error is a very small component of the overall uncertainty. Since the uncertainty is due
primarily to size considerations and secondarily to the cost drivers, the issue of model calibration of
negligible priority in deriving a sound and narrower range of estimates.
2
Submission for 22nd International Forum on COCOMO and Systems/Software Cost Modeling
The initial estimates were done with COCOMO. The International Software Benchmarking Standards
Group (ISBSG) proprietary database of projects was used for additional independent estimates. It
consists of function point sizing and effort by business area type. The predictions from it are based on
simple regression of effort against size in function points, with no size conversion to SLOC. The native
size is function points, and the data is segregated by application type.
The comparative estimates from ISBSG were derived by querying their database and reporting with their
default ranges where the optimistic estimate represents the 25% percentile of data points, the likely is
the mean and the conservative estimate uses the 75% percentile. With this technique there is a direct
regression of hours against project sizes without an intervening effort model. The “model” in this
approach is the function point sizing technique. The numbers of project data samples in the proprietary
ISBSG database are Accounting (7), Banking (34) and Financial (9).
Figure 1 shows the relative ranges of the estimates using COCOMO and the ISBSG metrics database
(the absolute numbers are proprietary). The last datapoint uses the synthetic backfiring approach from
SLOC to function points with data medians. Based on the inherent uncertainties of this approach and
other reasons per the analysis, we suggested throwing it out (particularly when aligned with the other
four alternative methods). Placing little weight on the method also lends credibility to the
conservativeness of our final estimate range. The final range is fairly insensitive to the choice of
weighting strategy among the others.
400
Estimates with Ranges
350
300
Effort
(Person-Months) 250
200
150
100
50
0
0
COCOMO
II
1
with SLOC
ISBSG
2
Accounting
ISBSG
3
Banking
ISBSG
4
Financial
COCOMO
II
5
backfired
Method
Figure 1: Estimates with Ranges
The product valuation then converted software effort to labor costs. Not included were the costs of the
organizational overhead such as management, administration, facilities, etc. Also absent were the costs
to develop the user requirements for the product features which describe a new market need.
Establishing the additional value for this portion of the business can be approached from a financial
analysis based upon the added profitability of being first-to-market with a new product or service.
The effort ranges were transformed to dollar costs by applying rates for two labor grades: senior and
programmer rate. The competitive rates used were for the application domain. Based on all the
uncertainties and outlined financial assumptions, we suggested a conservative dollar estimate range to
reproduce the product system. But we strongly recommended more scrutiny on the assumptions.
3
Submission for 22nd International Forum on COCOMO and Systems/Software Cost Modeling
Conclusions
The range of different estimates is typical and came from alternative, crosschecking estimation methods
with different sources of uncertainty. The major sources of uncertainties were due to sizing and the
backfiring method, the applicability of domain-specific function point data, and assumed compensation
rates. These and more issues were identified for further analysis. With an iterative approach however,
we found that the cost modeling approach was able to narrow down the range of estimates and provide a
good enough estimate to proceed with.
A more comprehensive valuation would consider infrastructure and possible start-up costs depending on
the corporate perspective. These are not considered at all this analysis, and therefore the actual “cost to
reproduce” when considering more aspects would be higher. We strongly recommended further analysis
to refine the data and assumptions, and to undertake a more comprehensive business valuation including
an income-based approach considering revenues derived from the software.
1.
References
[1] B. Boehm, C. Abts, W. Brown, S. Chulani, B. Clark, E. Horowitz, R. Madachy, D. Reifer, B. Steece,
Software Cost Estimation with COCOMO II, Prentice-Hall, 2000
[2] Biffl S, Aurum A, Boehm B, Erdogmus H, Grünbacher P (eds.), Value-Based Software Engineering,
Springer, 2005
[3] QSM, Function Point Programming Languages Table, http://www.qsm.com/FPGearing.html, 2007
4
Download