Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Reuse is software development’s unattainable panacea. The ability to compose systems from reusable elements has long been our Achilles’ heel. We want reuse so badly, yet our failures are spectacular. Almost all major technology trends of the past 20 years, and probably before, tout reuse as the saving grace. Vendors have sold billions of dollars in software through the broken promise of increased reusability.
What happened? Reuse was supposed to save software development. In the early 1990s, object orientation promised to save it. It hasn’t. In the late 1990s, component-based development promised to save software development. It didn’t either, and the movement died. In the early 2000s, service-oriented architecture (SOA) promised to save it. SOA didn’t, although development teams are still trying. Why is reuse so difficult?