Functional Reuse and SOA
Service-Oriented Architecture (SOA) provides a foundation to achieve software reuse. A key part of the SOA value proposition is the benefits realised from software reuse.
Key Findings

  • Re-invention is a major cost to businesses
    Many organisations continue to buy or re-create similar, if not identical, functionality across different applications.  The management of such separated function can result in sub-optimal business process support, and additional costs to the organisation.
  • The drive for rationalisation means that similar functions must be combined
    As organisations strive for infrastructure rationalisation, functional rationalisation should be a large part of this.  The "culling" of similar functionality across multiple applications cuts down on overall complexity and provides greater business flexibility.
  • Discrete functional components create greater flexibility
    By providing a service infrastructure, functionality can be provided as discrete components, callable by those processes requiring such function. 
  • Discrete functional components are more scalable and resilient
    Through the provision of discrete functional components via an SOA, scalability can be provided through simple utility-style provisioning, and resilience can be managed through the use of stateless services.
  • Software re-use speeds up response to market threats
    The capacity to make use of discrete functions that have already been proven, and are simple to include within new composite applications means that solutions are faster to create, and organisations can be more flexible in how they create strategies to meet market dynamics.
  • Granularity of function is the main issue that has to be addressed
    When looking at functional components, a suitable level of granularity must be maintained.  Major software vendors are attempting to position their offerings as being SOA-compliant, but the levels of granularity means that this argument is often a moot point.  For true software re-usability, the level of function must be optimised to serve as many different processes as possible.
  • Regression testing can be optimised through software re-use
    A carefully optimised SOA environment will ensure that an upgrade to any specific function will automatically provide that optimised functionality to all processes calling it, catering to all dependencies

Conclusion
SOA is a driving force for future functional use within organisations.  However, these functions must be viewed as being shared services for all processes.  Functional re-use will be the main means of ensuring that organisations can respond rapidly and effectively to market dynamics, and that improvements to specific functions will have the optimum impact across the whole organisation.