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
- 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