Art of Software Reuse
  • About
  • Introduction
  • Why Do Reuse Efforts Fail?
    • Common Pitfalls
    • Conway's Law
    • Care About Risks
    • Pursuing Perfection
    • Lack of Domain Focus
    • Entropy
  • Tenets
  • Success Factors
    • Revisit Assumptions
    • Communicate, Constantly
    • Collaborate
    • Review Code
    • Be Domain Driven
    • Target Quick Wins
    • Reduce Friction
    • Document
    • Build for Immediate Use
    • Address Support Needs
    • Managing Complexity
  • Practices
    • Minimise Jargon
    • Leverage Interception Points
    • Delay Commitment
    • Never Waste A Production Incident
    • Be Disciplined
    • Be Demand Driven
    • Continuous Alignment
    • Iterate, Iterate, Iterate
    • Build a Product Line
    • Understand Lack of Reuse
  • Design
    • Wrap Legacy APIs
    • Think Products, Not Applications
    • Identify Common Needs
    • Create Common Connectivity Components
    • Consistent APIs
    • Manage Domain Variations
    • Evolve Functionality Iteratively
    • Offer Reusable Assets with Multiple Interfaces
    • Leverage Services Across Functional Flows
    • Mediate Service Requests & Responses
    • Refactoring
    • Abstract Utility Functions
    • Reduce Technical Debt
    • Facilitate Extensibility
    • Encapsulate Variations Using Patterns
    • Understand Adoption Barriers
    • Ease Testability
    • Supportability
  • Tips
  • Resources
Powered by GitBook
On this page

Was this helpful?

  1. Design

Leverage Services Across Functional Flows

PreviousOffer Reusable Assets with Multiple InterfacesNextMediate Service Requests & Responses

Last updated 5 years ago

Was this helpful?

When you build services always do so with the intent of integrating them with more than one business process. Why is this important? Several reasons:

  • Services and other reusable assets the building blocks of automating – if the services aren’t reusable they cannot be used across processes

  • Services need to provide abstraction to complex technical structures/implementations. You don’t want to solve the same abstraction twice across business processes.

  • Helps you build new business process automation solutions faster. If the service is devoid of process-specific couplings it can be used in multiple projects. Here are some examples of process-specific couplings: designing a service to work with a particular user population, placing workflow/routing logic within a data service, placing complex business rules within service logic, assuming a service will only get accessed via a particular sales channel etc.

  • Enterprise data services – also known as – should be properly encapsulated, abstracted, and hosted in a scalable environment to facilitate reuse across multiple business processes.

business processes
entity services
svc_across_biz_processes