A Real Options Perspective of Software Reuse Hakan Erdogmus Software Engineering Group National Research Council Canada Montreal Road, Building M-50 Ottawa, Ontario K1A 0R6 Canada 1+(613)991-1018
[email protected] Position paper submitted to: International Workshop on Reuse Economics, April 16, 2002, Austin, Texas
according to how the underlying uncertainties get resolved over time. These include growth opportunities, abandonment or exit options, delay strategies , and learning investments. Natural resources, pharmaceutical, and aerospace were among the first sectors to take advantage of this perspective in evaluating large capital investments.
ABSTRACT 1 INTRODUCTION Economics-Driven Software Engineering Research (EDSER) seeks to develop technical theories, guidelines, and practices of software development based on sound, established, and new models of value-creation, adapted to the domain of software development as necessary [1, 2]. Most advances in software engineering have not been based upon generally accepted ways of thinking about economic and financial value in any significant way. The EDSER community is addressing this gap by adopting and tailoring work from other disciplines, such as economics, finance, decision theory, and game theory, to software engineering problems. Applications range from improving technical and design decisions to the evaluation of best practices and process choices, from project and risk management to the treatment of contract and industry structures.
The perspective has also significant implications in software engineering where technical and business uncertainty are inherently high, and consequently, flexibility plays a central role in many product, process, and management choices. Several recent software engineering paradigms, such as evolutionary design, software product lines, rapid application development, software development based on commercial-off-the-shelf products, and agile software development methodologies, cope with or leverage on uncertainty through the implementation of flexible solutions, and take advantage of the insight provided by real options analysis. Examples can be found in [7-13]. Real options analysis provides a framework to support or refute the economic viability of these solutions in specific contexts based on latest financial theory, thus allowing the potential user to make better informed decisions.
Real options analysis is one such tool that is well suited to address many software engineering problems from a valueoriented perspective. These problems are often strategic in nature and involve a variety technical, managerial and process decisions. Strategic software reuse falls under this category, and thus can also benefit from the insight that real options analysis provide.
3 OPTIONS IN REUSE INVESTMENTS Value of Reuse Infrastructure Investments Large-scale, infrasructure-related reuse investments, such as development of an application framework, component repository, or product line, can be seen as growth options [7, Erdogmus, 2000 #279, Schmid, 2002 #303]. The key idea is that a large reuse investment pays off only if the intended reuse materializes in the future. The reuse activity itself constitutes a growth opportunity that is contingent on the infrastructure being in place.
2 REAL OPTIONS ANALYIS Real options analysis [3-5] is an emerging approach that emphasizes the value-generating power of flexibility under uncertainty. It is both a quantitative valuation technique and a general reasoning tool for risk management, with foundations in both option pricing theory and decision tree analysis [6]. In traditional financial applications, real options analysis recognizes that the value of a new capital investment lies not only in the amount of direct revenues that it is expected to generate, but also in the future opportunities that it creates. Thus many investment scenarios can be formulated as a sequence of options, or discretionary investment decisions that are managed
As example, consider the investment decision illustrated in [10] faced by a fictitious company. JSystems, a Java startup, is considering developing a new software platform—dubbed Enterprise JFrames (EJF)—for a future product line of e-business applications. EJF will consist of
1
development, flexibility is also often an implicit driver. The processes, technologies, and skills required for these paradigms differ from those of traditional development in many aspects. Carney and others discuss these differences for software development based on COTS components [14-16]. Thus careful analysis is required to assess whether these paradigms are economically viable in specific contexts. Traditional tools do not always reveal their real power or hidden drawbacks. By considering how flexibility factors into the economic equation, real options analysis offers a fresh insight. These factors are expounded in more detail elsewhere [17].
an application framework and a component repository to complement the framework. The framework will provide the general architecture for the product line and the repository will provide the common software elements needed to put together an e-buisness application. Once developed, EJF will enable JSystems to efficiently produce new, customized e-business applications for future customers. JSystems is taking a risk by investing in a still evolving, unstable technology such as Java. The return on investment from the project depends on the market for Java-based ebusiness applications. The future of the e-business market currently looks promising, but whether Java will be a dominating techonology in this market is unknown. JSystems should structure its investment with these considerations in mind.
Option to replace components Component-based development offers the ability to take advantage of future third-party innovations and improvements at a fraction of the cost. Part of the economic benefit attributed to component-based approaches, including COTS, is related to the potential to leverage on new technological developments through voluntary replacement of components, and doing so at a fraction of the cost of implementing those technological developments in-house. In a competitive market, the flexibility to replace components also allows falling prices of COTS products and components to generate future opportunities for reducing direct product costs [18].
Jsystems’ strategy is to first develop the application framework and a core component repository at a cost of $0.5M. This first-stage development will take one year. At the end of the first year, JSystems will make a decision depending on the outlook of the e-business market and the success of Java in that market. If the market in Java-based e-business applications is unfavorable, it will abandon the project, and its first-stage cost will be sunk. If the market is favorable, it will follow up with a more substantial secondstage investment of $5M. The second-stage investment will involve extending the component repository and developing the initial product line. The launch of the initial product line will take place at the end of year two.
The flexibility to replace a components is again akin to a call option, or the right, without the obligation, to acquire an asset at a given price at some future date. The underlying risky real asset here is the incremental benefit of replacement in terms of additional expected cash inflows or cost savings, and the price to pay is the expected cost of replacement.
Is the initial investment worthwhile? Whereas traditional valuation techniques such as Net Present Value are present difficulties tackling this question, real options analysis help provide an answer by viewing the second-stage investment an option on an uncertain asset. The complete project consists of the fully developed platform, EJF, and the initial product line. Its value is thus the post-development value of the second-stage investment. Note that this value is created only if the second-stage investment is fully undertaken and also is inherently uncertain.
Option to skip or delay upgrades Upgrade, or refresh, refers to the activity of replacing one or more components by their more recent releases. Upgrade is a periodic activity and incurs a relatively smaller cost compared to component replacement. Maintenance in a COTS-centric system focuses on upgrades. A major problem with upgrades is cost uncertainty [18, 19]: upgrade costs may vary significantly from one release to another.
Therefore, this strategy resembles a call option on the value of the complete project. The option can be exercised at the end of the first year, upon completion of the first-stage. The strike price of this option is the cost of the second-stage investment, or $5M. The exercise of the option is dependent on the year-one value of the initial product line exceeding the second-stage cost. This value is uncertain because the success of the base technology, Java, of the final product in the e-business sector is uncertain.
While upgrade uncertainty increases the total risk, paradoxically, it may also increase the value of a project if it is managed properly. The reason, again, is inherent flexibility. Although upgrades are driven by product vendors, the developer still has some control over the maintenance schedule. Since maintenance does not revolve around critical bug fixes and essential functional improvements, the developer may always choose to delay or skip an upgrade cycle if the associated cost is likely to be higher than the benefit. Of course, this decision must have a penalty, expressed in terms of a temporary or permanent drop in the remaining benefit.
Options created by component and COTS-based architectures Although the most often cited drivers for component-based development and development based on Commercial-OffThe-Shelf, or COTS, products are cost savings and rapid
The flexibility to skip an upgrade (or delay it by one 2
period) at a given time is akin to a put option, or the right, without the obligation, to sell an asset at a fixed price at some future date. Using this analogy, an upgrade scenario can be formulated and valued as a series of put options. The exercise of an early option in the series may kill a later option since delaying upgrades indefinitely cannot be permitted due to increasing product obsolescence.
4 CONCLUSIONS Real options analysis is an emerging reasoning tool for evaluating investment decisions under uncertainty. It can contribute new insight into reuse-related initiatives by viewing the flexibility inherent in such initiatives as strategic options that can be managed to maximize their benefits. Such insight is helpful in assessing the economic viability of reuse-driven development scenarios. When used in conjunction with other tools, it can reveal both additional benefits and hidden drawbacks that are not ordinarily apparent.
Temporary reuse: option to migrate COTS-centric systems make it difficult to control the functionality and quality of the end product. The extra cost of adding missing functionality and removing unwanted functionality of a COTS component may be highly prohibitive. Additionally, the reliability, performance, and usability of the end system may not be satisfactory if the COTS components do not interface well with each other or fail to meet the requirements. Consequently, product acceptance may suffer significantly, ultimately reducing the benefits to unacceptable levels.
REFERENCES [1] H. Erdogmus, B. Boehm, W. Harriosn, D. J. Reifer, and K. J. Sullivan, "Software Engineering Economics: Background, Current Practices, and Future Directions," presented at Proceeding of ICSE '2002, International Conference on Software Engineering, Orlando, FL, 2002.
An alternative is to use a COTS-centric system initially as a prototype, both to acquire more information about the system’s feasibility and requirements and to achieve early market presence through rapid development. This scenario resembles a learning option, making real options analysis applicable. Sullivan et al. suggest this analogy [20] for software prototyping projects. The resulting system can then be slowly migrated into a custom system by gradually replacing the unsatisfactory COTS components by their proprietary counterparts. The component-based organization of such a system would allow the migration to take place in multiple phases. This strategy constitutes a learning opportunity. It permits reclaiming the functionality and quality disadvantage of the COTS components while attaining the time-to-market goal or achieving a timely market presence. In addition, highly unpredictable upgrade costs can be gradually replaced by more predictable traditional maintenance costs. The migration strategy need not be a time-zero decision. Migration proceeds only as long as the market remains receptive to the product, revenues are likely to increase by using further proprietary components, and the cost of migration (development of the proprietary components) remains inferior to its expected benefit. The decision to execute, delay, or forego the next migration phase is taken one step at a time. Thus executing a migration phase creates a further opportunity to execute a subsequent phase. This scenario can be treated as a series of call options, where each call is similar to a replacement option discussed previously. The value of phased migration option can be substantial, since it promises to combine the most advantageous aspect of COTS-centric development, early market entry, with the future opportunity to eliminate its disadvantages.
3
[2]
W. Harrison, H. Erdogmus, and R. Kazman, "Fourth Workshop on Economics-Driven Software Engineering Research," presented at Proceedings of ICSE '2002, International Conference on Software Engineering,, May 19-25, 2002, 2002.
[3]
M. Amram and N. Kulatilaka, Real options: managing strategic investment in an uncertain world: Harvard Business School Press, 1999.
[4]
L. Trigeorgis, Real options: managerial flexibility and strategy in resource allocation: MIT Press, 1994.
[5]
T. A. Luehrman, "Investment opportunities as a portfolio of real options," Harvard Business Review, 1998.
[6]
J. E. Smith and R. F. Nau, "Valuing risky projects: option pricing theory and decision analysis," Management Science, 1995.
[7]
J. M. Favaro and K. R. Favaro, "Strategic Analysis of Application Framework Investments," in Building Application Frameworks: Object Oriented Foundations of Framework Design, M. Fayad and R. Johnson, Eds.: John Wiley and Sons, 1999.
[8]
J. M. Favaro, K. R. Favaro, and P. F. Favaro, "Value based software reuse investment," Annals of Software Engineering, vol. 5, pp. 5-52, 1998.
[9]
A. Taudes, "Software growth options," Journal of Management Information Systems, 1998.
[10]
H. Erdogmus, "Value of Commercial Software Development under Technology Risk," The Financier, vol. 7, 2000.
[11]
K. J. Sullivan, "Software design: the options approach," presented at SIGSOFT Software Architectures Workshop, San Francisco, California, 1996.
[12]
K. J. Sullivan, W. G. Griswold, Y. Cai, and B. Hallen, "The Structure and Value of Modularity in Software Design," presented at ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), Vienna, 2001.
[13]
H. Erodgmus and J. Favaro, "Keep Your Options Open: Extreme Programming and the Economcs of Flexibility," in Extreme Programming Perspectives, L. Williams, D. Wells, M. Marchesi, and G. Succi, Eds., 2002.
[14]
D. Carney, "Assembling large-scale systems from COTS components: opportunities, cautions, and complexities," Software Engineering Institute, Pittsburgh, Pennsylvania, SEI Monogram on Use of Commercial Software in Government Systems June 1997 1997.
[15]
D. Carney and P. Oberndorf, "Commendments of COTS: still in search of the promised land," Software Engineering Institute, Pittsburgh, Pennsylvania, Technical Report 1998 1998.
[16]
J. C. Dean and M. R. Vigder, "System implementation using COTS software," presented at 1997 Software Technology Conference, Salt Lake City, Utah, 1997.
[17]
H. Erdogmus and J. Vandergraaf, "Quantitative approaches for assessing the value of COTScentric development," presented at Sixth International Software Metrics Symposium, Boca Raton, Florida, 1999.
[18]
P. Clements, "From subroutines to subsystems: component-based system development," in The American Programmer, 1995.
[19]
M. R. Vigder and J. C. Dean, "Building maintainable COTS-based systems," presented at International Conference on Software Maintenance, Washington, DC, 1998.
[20] K. J. Sullivan, P. Chalasani, S. Jha, and V. Sazawal, "Software design as an investment activity: a real options perspective," in Real Options and Business Strategy: Applications to Decision Making, L. Trigeorgis, Ed.: Risk Books, 1999.
4