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 are the building blocks of automating business processes – 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 entity services – should be properly encapsulated, abstracted, and hosted in a scalable environment to facilitate reuse across multiple business processes.