The goal of software engineering is to achieve many features with little effort and few defects.
Software reuse is believed to play an important role in achieving this goal by encapsulating effort in units of source code, which can be reused in other projects.
However, the effort needed to make something reusable may not be worth it, if it is only
reused few times, or needs extensive adaptation for each reuse.
- Charles Krueger. SoftwareReuse in ACM Computing Surveys, June 1992, pages 131-183.