Incentives at the Software Engineer Level

Extrinsic Incentives

A number of companies, including Motorola [#!Joo92!#], and Hartford Insurance Group [#!Joy88!#], 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.