Motivating Software Reuse

Ruth A. Malan

Hewlett-Packard Laboratories 1501 Page Mill Road, Palo Alto, CA 94306 Tel: (415) 857-7909 Email: malan@hplabs.hp.com Fax: (415) 857-8526

Abstract

In order to achieve levels of reuse that support attainment of the organization’s objectives, a comprehensive approach to motivating reuse among all relevant players in the organization needs to be developed. This position paper explores some of the issues that arise in motivating reuse at different levels in the organization. It posits that an integrated solution that relies on organizational self-knowledge to align reuse incentives with reuse goals and the organization’s objectives will be more effective than isolated attempts to eliminate the symptoms of reuse inhibitors.

Keywords: reuse, incentives, economics, funding models, performance measures, organizations, management.

Workshop Goals: exchange perspectives on organizational and management aspects of systematizing software reuse; networking.

Working Groups: reuse incentives, management, organization and economics; reuse process models; and reuse maturity models.

1 Background

Under the visionary leadership of Martin Griss, HP Laboratories’ Software Reuse Department (SRD) has put together a multi-disciplinary team to investigate the business, organizational, cultural and technical aspects of creating effective, reuse-based Flexible Software Factories (FSF’s). During a Summer internship with SRD in 1992, the author participated in this research program, focusing on business issues. Continuing this work with the SRD-FSF team, the author is currently developing an integrated framework for providing reuse incentives at various levels, incorporating organizational considerations, funding mechanisms, and project and personal performance evaluations that are consistent with reuse goals.

2 Position

Reuse programs that fail to “get off the ground” frequently share the problem that the incentives to produce and utilize reusable components are lacking or subverted. For example, when project managers are held accountable for increased costs and project delays, they tend to avoid reuse investments. In such an environment, an edict to produce reusable components is not likely to be very effective since it conflicts with project’s cost/schedule performance. Other “knee-jerk” responses to the symptoms of reuse inhibitors may be misaligned with reuse goals. For instance, cash bonuses for component deposition may give rise to a large but worthless library. This is not to say that cash bonuses are necessarily bad, but that unless the overall picture is considered, the attempted “solution” may have undesirable consequences.

It is generally recognized that attempting to eliminate a symptom rarely solves the root problem, yet this is precisely what we often observe in the case of reuse. To be fair, high pressure, tight development cycles make it hard to distinguish problems from symptoms. It is, therefore, important to invest in up-front analysis to develop a systemic understanding of the software development organization, it’s goals, processes, people, opportunities and challenges. Armed with this self-knowledge, the organization is better able to create an integrated solution to the problem of achieving levels of reuse that are aligned with it’s overall objectives.

2.1 Getting Everyone “On Board”

2.1.1 Incentives at the Software Engineer Level

Extrinsic Incentives A number of companies, including Motorola [1], and Hartford Insurance Group [2], have installed a reward system to counter low deposition and reuse rates of library components. An organization considering use of rewards should assess how the reward system interacts with intrinsic motivators such as personal objectives and performance measures. For instance, reuse bonuses may conflict with the disincentive created by evaluations based solely on lines of new code developed. Furthermore, any proposed reward system should be analyzed to establish whether it does indeed foster behavior that is consistent with reuse goals. For instance, while flat rate cash bonuses make the incentive program relatively easy to administer, they do not tie the bonus to the value of the component (though a bonus per use at least rewards creation of useful components). A bonus based on consumer savings is more likely to stimulate production of valuable components.

Intrinsic Incentives Different engineers take pride and pleasure in different aspects of reuse-related work. Some software engineers are motivated by the desire to produce more permanent software assets that bear their stamp of creation through generations of products. Others are more happy to focus on the unique aspects of customer solutions. Taking into account individual preferences as well as talents when filling reuse roles will help to align intrinsic motivators with reuse goals.

The argument that there is an inherent motivation to reuse available components whenever doing so will save effort and time may seem persuasive, particularly when the pressure of tight development schedules is considered. However, the height of this pressure comes fairly late in the development cycle, after many of the design and implementation decisions have already been made, so that the number of code components that will slot into the project at that point is likely to be severely limited. Therefore, incentives to reuse earlier phase work products need to be considered. Evaluating the exploitation of reusable work products during inspections at each phase has proved to be an effective practice in a number of HP’s pilot reuse projects. Thus, reuse is fostered by incorporating reuse levels in project and individual performance evaluations. Performance evaluations are powerful motivators and traditional performance measures cannot be left intact when reuse programs are initiated. New measures must be designed to take the reuse goals into account. Of course, the organization is in the business of making products, and reuse is only a means to that end. Therefore, care should be taken to ensure that the incentive system is designed to motivate reusable component production and utilization where it effectively supports the organization’s broader objectives.

2.1.2 Incentives at the Project Level

Divisions, R&D groups, and even project groups are typically responsibility centers and financial measures are used to evaluate their performance and allocate rewards and corporate resources. Where reuse crosses responsibility center boundaries, the costs of reuse reflect badly on the producer responsibility center if there is no mechanism to reallocate some of the consumer’s benefit to the producer. In such cases, even if reuse is mandated by upper management and allowances are made to support production of reusable components, reuse goals tend to be subverted. Because production of reusable work products does not directly contribute to current product development, it is hard for project managers to resist raiding reuse producer resources under their control whenever product development projects come under pressure. While the cost of lost opportunities for the overall organization may far exceed any lost opportunity cost to the subgroup housing the production for reuse, it is the latter cost that is both most apparent to product managers and the basis for their evaluation. Some possible resolutions to this incentive problem are outlined below.

Producer Group as a Separate Cost Center One way to circumvent the need to redistribute reuse benefits, is to separate component producers and support personnel from project teams, and make the producer and support groups cost centers. This approach may still encounter problems if the producer cost center is housed in a divisional profit center when reuse of the components crosses divisional boundaries. This is because the division that incurs all of the reuse investment does not receive all of the benefit. If this is the case, the cost center should be placed at a higher level in the organization.

Barter One approach to evening out the reuse investment burden is to allocate the development of components to members of a “consortium” of development projects. This barter system has some appeal because the exchange obviates the need to establish prices or to restructure the organization. However, as the pressure to get products out rises, engineers tend to get shifted from reuse production/support activities to more directly product-oriented activities.

Transfer Prices Transfer pricing is one of the most frequently used mechanisms for providing supplying responsibility centers with market-like efficiency incentives. Where there is an external market price, that is the most efficient transfer price to use. In the context of domain-specific reuse, however, it is likely that in many cases components will be regarded as proprietary and essential to the organization’s competitive advantage, so that no external market will exist. There are a number of other possible approaches to setting the transfer price. One alternative is to set the total transfer price equal to the producer’s cost, and to charge consumers some portion thereof. Even this approach is not straightforward in the reuse context, since future reuse instances are uncertain. Bollinger and Pfleeger [3] identify a number of possibilities for amortizing the producer cost, including flat rate amortization, biased flat rate amortization, and accelerated amortization. Another alternative is to allow the managers involved to bargain over the components to be delivered, and the transfer price to be paid for them.

Incentive to Utilize Reuse Components Product teams are responsible for the development of products best suited to their target market segment, and high levels of reuse are generally attained only at the expense of some degree of compromise on individual optimization of features and performance. The functionality that is considered common to a group of products is frequently a decision variable that is subject to tradeoffs between better suiting individual customer segments, and extending the commonality and consequent economies of scope in development and maintenance. As a result of the tension between individual product optimization and product family benefit from reuse, the estimated reuse benefits and the progress toward attaining the expected benefits should be shared with the product teams so that they can make informed tradeoff decisions. Fortunately, however, this tension is somewhat ameliorated in many markets where customers are coming to value greater consistency in product lines because this allows them to share their investment in training, documentation, peripherals and the like among related products. This enhances the software development organization’s opportunity to broaden the scope of common functionality and retain the loyalty of customers to boot.

2.1.3 Incentives at the Upper Management Level

Upper management support is vital to the success of the program, not only because the investment in reuse may be high enough to require their authorization, but because reuse entails significant change in the way project-organizations operate. Organizational change typically meets resistance, and high level leadership plays an important role in instilling a vision that inspires and motivates those affected by the change. In order to actually achieve the tantalizing rewards from reuse, projects can no longer be viewed as independent entities that can be managed without attention to a wider network of projects that extends not just across organizational subunits but into the future as well. Champions of reuse who have the power to influence all of the affected entities in the producer-consumer network are needed to encourage commitment to the program.

Upper levels of management are more likely to have a strategic, long term view than lower levels of management who generally have a more focused, tactical orientation. Long term commitment to the process is particularly important, because consideration of reuse in the short term may reveal reuse to be a drain on scarce resources that could prompt management to regard the investments as sunk costs and bail out of the program, while a longer term view could have shown the expected rewards to be high.

Because management support is so central to the success of the reuse program [4], it is vital that they support reuse when the opportunity cost of not employing systematic reuse is high. Frequently, managers prefer to err on the side of conservatism when the costs, benefits, payback and risks are unclear. Therefore, the opportunity cost has to be assessed, and this analysis should encompass a multi-project, long term view that identifies the reuse costs and benefits, and estimates those that can be quantified with enough confidence to remain credible. The revenue-side benefits of reuse (including the impact of earlier time to market, higher quality, and opportunities to attack niche markets with customized products [5]) should not be ignored. Indeed, the strategic benefits of reuse, such as reduced time to market or enhanced consistency in the product line, have generally been more powerful rallying points for top HP managers than reduced costs [6].

2.2 Integration and Alignment

All members of the organization need to be aware of, and motivated to achieve, the elusive combination of enhanced quality, shorter development cycles and reduced costs that reuse makes possible. Development projects can no longer be independently optimized. Also, it is not good enough for upper management to issue reuse mandates without getting the other players on board through changes in organization, performance and incentive systems. Numerous decisions made at the engineering level affect whether or not systematic reuse will be achieved, and it is vital that they believe that in the long-run everyone gains from the reuse program, and are committed to it. Alternatively, a “grass roots” effort that does not have management support will not achieve its full potential for it will not have the upfront investment or go-ahead for organizational change to enable full exploitation of multi-project, long-term reuse opportunities. The incentive problem at each level should not be approached in isolation, but rather a system solution should be designed to align reuse goals with organizational objectives and ensure that they are achieved.

3 Comparison

Some of the specific issues addressed in the above discussion have been surfaced in previous work. For example, Bollinger and Pfleeger’s [7] Cost-Sharing Domain Banks, and Wolff’s [8] royalties are intended to address the problem of providing an incentive to produce for reuse through, in effect, transfer prices. However, transfer pricing is just one alternative in a range of options for addressing one dimension of the reuse incentive problem. Also, most economics of reuse models (e.g. [9, 10, 11]) do not consider the strategic, or revenue-side, benefits of reuse. As Wentzel [6] points out, the various levels of management have different perspectives, and consideration of strategic benefits may be less important in gaining the support of managers with cost center responsibility, but vital to achieving strong backing by higher level management. The organization and it’s objectives need to be understood, and a comprehensive approach to motivating reuse among all relevant players in the organization needs to be developed.

References

[1] R. Joos, “So much for motherhood, apple pie and reuse,” in Proceedings of the 5th Annual

Workshop on Software Reuse, Computer Science Department, University of Maine, 1992.

[2] E. J. Joyce, “Reusable software: Passage to productivity?,” Datamation, September 1988.

[3] T. B. Bollinger and S. L. Pfleeger, “The economics of software reuse,” Tech. Rep. CTC-TR-89-014, Contel Technology Center, 1989.

[4] M. Griss, “Software reuse: From library to factory,” IBM Systems Journal, to be published, 1993.

[5] R. A. Malan and K. Wentzel, “Economics of software reuse revisited,” in Proceedings of ISS’93, UC Irvine, 1993.

[6] K. Wentzel, “Software reuse - it’s a business,” in Proceedings of the 5th Annual Workshop on Software Reuse, Computer Science Department, University of Maine, 1992.

[7] T. B. Bollinger and S. L. Pfleeger, “Economics of software reuse: Issues and alternatives,” Information and Software Technology, vol. 32, pp. 643–652, December 1990.

[8] F. Wolff, “Long-term controlling of software reuse,” Information and Software Technology, vol. 34, pp. 178–188, March 1992.

[9] B. H. Barnes and T. B. Bollinger, “Making reuse cost-effective,” IEEE Software, vol. 8, pp. 13– 24, January 1991.

[10] J. E. G. Jr. and R. D. Cruickshank, “A general economics model of software reuse,” in Proceedings of the 14th International Conference on Software Engineering, pp. 327–337, May 1992.

[11] J. S. Poulin and J. M. Caruso, “A reuse metrics and return on investment model,” in Proceedings of the Second International Workshop of Software Reusability (IWSR-2), 1993.

4 Biography

Ruth Malan is participating in Hewlett-Packard’s research internship program, working in the Software Reuse Department at Hewlett-Packard Laboratories for the Summer. Her interests span the business aspects of software reuse, including business opportunity assessment, reuse cost - benefit analysis and business metrics; reuse incentives, funding models and performance measures; and reuse asset management and portfolio planning. She received an MBA from Virginia Tech in 1990, and an M.S. in Operations Research from Stanford University in June, 1993.