# Design

- [Wrap Legacy APIs](/art-of-software-reuse/design/working-with-legacy-assets.md)
- [Think Products, Not Applications](/art-of-software-reuse/design/think-products-not-applications.md)
- [Identify Common Needs](/art-of-software-reuse/design/planning.md)
- [Create Common Connectivity Components](/art-of-software-reuse/design/create-common-connectivity-components.md)
- [Consistent APIs](/art-of-software-reuse/design/consistent-apis.md)
- [Manage Domain Variations](/art-of-software-reuse/design/manage-domain-variations.md)
- [Evolve Functionality Iteratively](/art-of-software-reuse/design/evolve-functionality-iteratively.md)
- [Offer Reusable Assets with Multiple Interfaces](/art-of-software-reuse/design/provide-multiple-interfaces.md)
- [Leverage Services Across Functional Flows](/art-of-software-reuse/design/leverage-services-across-functional-flows.md)
- [Mediate Service Requests & Responses](/art-of-software-reuse/design/mediate-service-requests-and-responses.md)
- [Refactoring](/art-of-software-reuse/design/refactor-services.md)
- [Abstract Utility Functions](/art-of-software-reuse/design/abstract-utility-functions.md)
- [Reduce Technical Debt](/art-of-software-reuse/design/reduce-technical-debt.md)
- [Facilitate Extensibility](/art-of-software-reuse/design/facilitate-extensibility.md)
- [Encapsulate Variations Using Patterns](/art-of-software-reuse/design/encapsulate-variations.md)
- [Understand Adoption Barriers](/art-of-software-reuse/design/understand-api-adoption-barriers.md)
- [Ease Testability](/art-of-software-reuse/design/ease-testability.md)
- [Supportability](/art-of-software-reuse/design/operability.md)
