Reuse is a long-term strategy in which a company builds a library of frequently used components, allowing new programs to be assembled quickly from existing components.

When backed by long-term management commitment, Reuse can produce greater schedule and effort savings than any other rapid-development practice. What’s more, it can be used in virtually any kind of company for any kind of software and/or project(s).

Reuse can also be implemented opportunistically, as a short-term practice, by salvaging code for a new program from existing programs. The short-term approach can also produce schedule and effort savings, but the savings potential is far less dramatic than with Planned Reuse.


  • Potential reduction from nominal schedule: Excellent
  • Improvement in progress visibility:  None
  • Effect on schedule risk:  Decreased Risk
  • Chance of first-time success:  Poor
  • Chance of long-term success:  Very Good

Major Risks

  • Wasted effort if the components that are prepared for Reuse are not selected carefully

Major Interaction and Trade-Offs

  • Reuse needs to be coordinated with productivity-tool use
  • Planned Reuse must be build on a foundation of software-development fundamentals