Why do so many SOA adopters moan about low reuse levels?
I was reading a recent post from Joe McKendrick the other day on measuring SOA success…
…and it reminded me of a related issue – that of measuring services reuse. SOA adopters often moan to me that despite having implemented SOA and deployed many services, reuse rates are down at the 1-1.2 level – in other words, virtually no reuse. They seem to want to pick a fight with me because as an advocate of SOA I have often pointed to reuse as one of the more measurable benefits. After all, achieving a high level of reuse is a clear indicator to business executives that efficiency is increasing, since the implication is less development is required to do new things.
I am starting to get pretty short now inthese conversations. I wish, wish, wish that people would heed my previous advice - don’t think of SOA delivering reusable services, think of it as a great tool for SHARED services. Obviously reuse will come through services being shared - so what point am I trying to make? The problem is people are choosing to build ‘reusable services’ with SOA and assuming that others will start reusing them. It is the old ‘Build and they will come’ philosophy. This rarely works – it is worse than a scatter-gun approach. If users instead think about what services would be good candidates for being shared first, and then develop these as SOA services, reuse levels will definitely improve.
So, when getting started with SOA, don’t encourage everyone to start building code into services and hope that reuse will come as if by magic. Start off by deciding on the logical services to build that will be shared – things like get customer history, or create new customer. Then go ahead and build these shared services candidates, and see reuse levels climb….hopefully making it easier to justify your SOA investments to the business.
Steve
Steve
Great points. I completely agree that the build-it they will come approach will not fetch high levels of reuse. I also would like to point out that reuse doesn’t magically happen with SOA – there are key design attributes to make services reusable or “sharable”.
Steve,
While I agree with almost all of what you have said here, I believe SOA without using standards to implement the services is equivalent to what many organizations have been doing for many years. They build services which are reused in the environment where they are available (e.g. within CICS), however, the problem is reuse outside of these environments. From my perspective, it is only poissible to get this reuse by making these services available using SOAP or REST. To my mind, SOAP is better due to the ability to ‘catalog’ what services are available in a UDDI repository and thus people can discover _and_ use the esources for themselves without having to review a design doc that is more than likely out of date. Many times services are not reused as people don’t want to make an effort to work out how to call them. Delivering services using a WSDL means there is no effort to work out how to use the interface which will encourage further reuse. Some further thoughts on this based on a paper your organization wrote at the following location http://soagateway.blogspot.com/2009/05/best-of-breed-mainframe-integration-and.html. More thoughts on standards here http://soagateway.blogspot.com/2009/04/standards-based-soa.html if you’re interested.
Best regards,
John