Geeks With Blogs
Chris Falter .NET Design and Best Practices

Thomas Erl insists in his magnum opus, SOA Principles of Service Design, that you do not need to goldplate a service's capabilities, or consult with Madame Zelda and her crystal ball, to make the service reusable for future consumers and compositions.  Certain types of software that we have been using for decades--operating systems, business productivity software, almost anything an ISV produces--have benefited from a lot of up-front analysis of reusable capabilities.  If your software is being used by millions or even mere dozens of organizations, by definition it must possess capabilities that are used in a variety of contexts.  In other words, its functionality is being reused.  Therefore, if you're modeling the services in your inventory, you just have to adopt the reuse analysis practices that commercial software vendors have been using these past decades.

Of course, to a business that is only familiar with developing siloed applications for internal use, these are unfamiliar practices.  The practice you're used to is this: you just look at the immediate requirements, build your application to meet those, deploy, and try to rake in some short-term ROI.  For anything bigger than a Mom-n-Pop store, though, this can lead to an uncoordinated mess of overlapping, inconsistent, and uncooperative systems (and business processes).  And that's why everyone has been paying attention to SOA recently.

So you've got to learn from the Microsofts and Oracles of the world, unless you happen to work for an ISV already.  I've been consulting with ISVs and working at them for most of the past decade, so I'm familiar with the struggles that pertain to making functionality reusable.  I'll post more on that shortly....

Posted on Saturday, September 11, 2010 11:35 PM SOA | Back to top

Comments on this post: Commercial Product Design and Reusability in SOA: Part 1

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Chris Falter | Powered by: