Reuse makes particular assumptions about the nature of software work. In addition, research results and reports of practical experience offer numerous insights into reuse. The following points are particularly relevant to this project:
Researchers have reported encouraging results for formal reuse systems in a few production environments. However, some of the most encouraging results are based on judgement not measurement [Lane 84], and some reports offering measurements do not clearly define the measures [Lenz 87]. In addition, there are indications that several of the production environments studied may have unusual characteristics [Mats 90]. These factors make it difficult to evaluate the results.
Adopting a formal reuse strategy has major financial and organizational implications. The financial issues include:
If sharing components is not a realistic alternative, perhaps reuse is a viable strategy for only the small number of organizations that have very, very large software portfolios or very high recurrence of software needs.
There are also organizational issues:
Reuse requires substantial management and financial commitment [Bigg 89]. Any organization considering a formal reuse approach must weigh this commitment against potential benefits that are not clear overall and harder still to predict within the context of a single organization.
The potential value of reuse depends on the amount of recurrent need. If a high percent of all software work is repeated, the potential value of reuse is higher. If the percent is low, the potential is lower too.
The potential value of reuse also depends on the exact nature of similarity and difference each time a ``similar'' need recurs. Differences require adjusting the existing artifact for the new need. This adjustment lowers the value of reuse.
Predicting recurrent need for software requires that we know what software will be requested in the future. While we do not know the future, we do know what needs were met in the past. We can use our knowledge of the past to suggest the nature of future needs.
This study uses software portfolios as a representation of past software needs. Analysis of the portfolio should provide indication of both the level of recurrence and the nature of differences.