Offer reusable assets with multiple interfaces

In order to maximize the reuse potential of your assets offer multiple interfaces to the same functionality aimed at targeted audiences. For example, may be you need to expose a service that finds products based on some input criteria. Typically, you might create a findProduct capability that will be generic and reusable and this capability might take input parameters such as product name, identifier,  and product family etc. In addition to this basic capability expose additional interface based on line of business  – findProduct (name, line of business), findAllProducts (name, line of business) or one based on the relevance criteria – findProduct (name, full-text-match or starts-with-match or fuzzy match) or a combination of these.

This doesn’t mean you run out and build interfaces! More interfaces mean more maintenance so there is a careful balance between flexibility and the number variations that you can effectively manage. On the flip side, if there are multiple interfaces offered your consumers will find it easier to integrate and invoke your reusable assets. To realize this idea, map the variations into a standard set of parameters and the rest of your processing can proceed oblivious of the consumer input. Defaults and standard values can be provided for missing inputs when doing this.

multiple_interfaces

how do you identify these additional interfaces? As with everything else, these interfaces need to be identified based on demand and priority. If your business sponsor needs to offer a capability for a particular geographical region (e.g. offer for the Americas first, followed by Europe, and Asia-Pacific) or for a particular product family then that is what you should consider for development.

Like this post? Subscribe to RSS feed or get blog updates via email.

add to del.icio.us: Digg it : post to facebook: Stumble It! : :

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: