Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Darwin and Service Reuse: Competition is Good

Darwin and Service Reuse: Competition is Good

Back in its hey day, one of the benefits of object-orientation was supposed to be the ability to reuse objects between developers, projects, even companies. To a degree that did happen, but never to the level that proponents originally hoped. Within SOA, service reuse is once again something that is pushed as a benefit to developers but has it also failed to materialize? Obviously it is probably still too early in the SOA adoption path to be certain. However, as this recent report points out, there are many pitfalls and roadblocks to achieving a good return on your investment from service reuse. One of the greatest is the a close cousin of the Not Invented Here Syndrome:
... the human tendency to want to have something of our own as opposed to sharing someone else's. After all, we all learned to share in kindergarten, but we didn't like it then, and we don't like it now! If your own team builds a Service, it's bound to do just what you want, while if you share one from elsewhere in the enterprise, then all bets are off.
As the authors point out, one important way to address this problem is through effective governance and establishing reuse policies. However, unless these policies are strictly enforced (which has its own set of associated problems), making service reuse a reality within an organization can still be difficult. Persuading people that someone else really did do a better job can often be a challenge. That's why the the authors describe their idea of introducing a competitive environment for services, which may also lead to improved implementation quality. Think of it like Darwinian evolution for software components: only the fittest will survive.
Encourage different provider teams within the enterprise to create competitive Service implementations, and then allow the users who wish to consume those Services to shop for and choose the implementations that best meet their needs. Furthermore, provide for a bona fide payment for the provider teams' troubles, either in the form of chargebacks to the teams' departments, or even better, bonuses to the team members themselves.
Obviously such a radical shift isn't without its problems. Can an organization really afford to have internal competition between co-operative groups? How many organizations can afford to implement the same service multiple times, only to have one or more of those implementations eventually die off? However, the authors do point out that this isn't a general solution and should probably only be used in environments where overlapping efforts are already the normal practice. But then what is the optimal number of teams to have in order for this to work?
Too many would clearly not be cost effective, but only one or even two such teams will be more likely to produce Services that are lower in quality overall than if there are at least three competing efforts. The ROI question then becomes how to measure the value of the better quality Services, not just taken individually, but also in terms of the impact competition will have on Service quality over time.
Obviously another problem is discovering these competing services. Hopefully registry/repository solutions will be able to play an important role here. Unfortunately there is no standard way in which to compare services. How can a developer or application determine that two services are identical or sufficiently so that one can be used instead of the other? Furthermore, competition works well (both for the supplier and the users) when there's feedback, so the report authors suggest that perhaps some form of rating system would be useful. However, once again there are no easy solutions for complex problems and it remains to be seen as to whether service reuse will be the success it should be, or if it will be consigned to software evolution history as yet another Dodo.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Markets are pretty complex mechanisms

    by Cristian Herling,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    This approach is not without problems: imagine that one system wins over the others in this market not because of technological merit, but rather because it has a smooth "sales-team". I think that this market-based approach would probably generate some unwanted and unforeseen side-effects, too bad that the article limited itself to technical discussions and didn't elaborate on what this market would be like, how it would be regulated, what relationships should be enabled in it, etc...
    BTW, I am wondering if discussions about markets, even "system" markets, concern the developers at all, AFAIK they are best handled by economists.

  • Re: Markets are pretty complex mechanisms

    by Mark Little,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Yes, good point: there are several well documented cases where the best technology didn't win. For example, Betamax versus VHS.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p