David Chappell


Get the Feed! Subscribe

Opinari #16 Posted: SOA and the Reality of Reuse  
# Wednesday, August 30, 2006
Will software reuse really be much easier with SOA? I'd like to believe the answer is yes, but my experience so far suggests otherwise. The latest issue of my Opinari newsletter, available here, explains why.

I'd like nothing more than to be wrong about this. After all, it's still relatively early days for SOA, and some organizations have seen successful service-based reuse. Still, the overall picture so far isn't especially encouraging. The inevitable move to services brings plenty of benefits, but I'm becoming doubtful that widespread reuse of business logic will be among them.

5 comments :: Post a Comment



From what I've seen, data services appear to be the most reusable. If an organization can provide a common way to access shared data, then rigorously enforce this common access (which is the hard part), it can reduce the need for redundant databases that must be synchronized.

Granularity also appears to matter. For decision services, it would seem easier to do reuse at a coarse level--should we offer this loan or underwrite this insurance applicant--than at the more fine-grained level of specific rules. You know far more about this I do, however; what's your view?

I have had the same experiences as a consultant on several SOA based projects (some very large).
Here is a short paper à wrote on that topic:

PS : Even if data services are easier to reuse, agreeing on the behaviour of the data is not easy.

This is a very interesting paper--thanks. I especially like your cube model. Overall, do you think the Copernic SOA project you describe in that paper was a success? And did the organization see extensive reuse of business services?

Copernic is a gradual refactoring of the full fiscal IT system in France (not a big bang approach).
One of the first outcome of Copernic is the tax declaration over internet which was used this year by more than 10% of the taxpayers and worked very well.

Reuse is starting to kick in, especially reuse of data services : the target architecture is centered around central repositories used by all the applications.
This may seem a trivial architecture but moving from silos-based to such an architecture proved to be a paradigm shift more difficult than expected – especially for business and functional experts. I wrote a paper on that, but currently in French – I may translate it in the next weeks.
There is a central team of functional and application architects who define and maintain the blueprint. In addition, there are more than 15 evangelists identified in the programme to promote these architectures and to help the projects with the new paradigm. This is a high price to pay but it was considered mandatory and the business benefits are big enough to pay for that (in this special case the ROI has been calculated and is good).

Reuse of fragments of business processes is considered too difficult currently, not in term of technology but in term of business people maturity – it may be considered later….

News flash: Business asset reuse has nothing to do with technology, film at 11...

Personally, I think SOA is less about reuse and more about *use*, and while your article is broadly correct, there is major one point I disagree with -- that business agility has something to do with "reuse".

The classic benefits of reuse programs are based on labour savings. If I build X now, I save Y labour in the future, accruing the benefits. The challenge is everything you claims in your article, and this approach is not likely to work in a a business IT environment. It likely works with an ISV's product lines or a language's standard libraries.

The other benefits of reuse are consolidation & consistency. Instead of 3 ways to do something, I have 1, and I save the operational costs of doing so. Here is where I think there is confusion between SOA and reuse.

SOA, in itself, has nothing to do with consolidating or eliminating the operational or maintenance costs of software. It can complement such a program, but doesn't actually do the job. Classic reuse is about cost savings from increasing #'s of consumers, or controlling operating & maintenance costs through centralization of *implementation*.

SOA, I believe, is about drastically reducing the marginal costs of integration through consistent / uniform *contracts*.

Thus in an SOA, I may have a consistent service contract to maintain "customer data", but it may have 3 inconsistent and synchronized databases underneath that contract. New consumers are insulated by the contract when I decommission one of those 3 databases.

The first challenge continues to be the need to standardize data defnitions and semantics, at least in pockets, and have predictable ways to mediate among disagreements. The data warehousing community tackled this challenge in the 1990's and has had some success (though there were many failures). The SOA world likely will be no different. It's a painful political process, but it can, and has been done, just more often in the decision-support / BI world and less often in the online / transactional world.

The other challenge is that CIOs have no reliable way to correlate SOA initiatives to "business agility", whose performance indicators are typically under the care of the business unit. So it's going to be a hard to provide a quantitative case unless there is a very good business/IT relationship.

Post a Comment

<< Home