Customer ControlThe Driving Force

The motivations for integration and extension are similar: In complex systems, both provide the ability to create a superior product. In some circumstances, integration and extension shift work from you to your customer. Paradoxically, this can increase customer satisfaction, much like our satisfaction with an ATM machine even though we're assuming responsibilities formerly taken by tellers. Part of the reason is that we're in control, which most of us like even when it means more work.

Motivations for Integration/Extension

Some of the strongest motivations for creating systems that can be integrated and/or extended with other systems including the ones discussed in the following sections.

You Can't Predict, But You Can Plan

In today's complex environment it is impossible to predict precisely how your customer will want your system to behave in every context. By providing customers with one or more ways to integrate or extend the system, you won't have predicted the future but you will have planned for it. Plug-in architectures, such as those in Adobe Photoshop or Web browsers, allow components to be added in well-defined ways. They are an excellent example of adding functionality that enhances an existing system.

Customers Hate To Hear, "We Can't Do That"

When you can't extend a system, you can't respond to customer needs. Ultimately, this means you'll have to eventually say no to a customer request, which, not surprisingly, customers hate to hear. A good strategy for integrating and/or extending your system will help you convert "No" to "Yes, we can do that. It might take a bit of work, but here's what we propose."

The Larger Solution Comprises Multiple Smaller Solutions

Many enterprise-class business systems are not designed to work in isolation. Instead, they work with a supply chain to solve a larger problem. One example is a Web storefront or online ordering system, which cannot work without integration. In such implementations several systems must be integrated to produce the expected product, including a catalog system, a storefront engine, a content engine, a payment processing engine, and backend order tracking and accounting systems. If you've participated in the creation any of these systems you already know that an easily integrated architecture is essential to success.

You Want Information Not In Your Own System

There are times when the only way to produce an interesting report or analysis is to integrate the data contained in one system with the data contained in another. A common example of this is when you integrate clickstream data from Web servers with customer purchase transactions.

You Want To Increase Switching Costs

Switching costs refer to what your customer will pay should they stop using your system and start using another. These costs include a number of things, such as re-integrating your solution into a competitor's. Extension and integration options don't increase switching costs until they are used by your customer. At that point switching costs dramatically increase because your customer not only has to replace your system but also has to replace all of the integrations and extensions they created on top of it. The more proprietary the extension and integration options, the greater the cost to switch.

You Want to Create A Product Ecosystem

Regardless of your company's success in creating, marketing, and selling your product, you can often achieve greater benefits by sharing your success with other companies. I think of this as creating a product ecosystem, in which various entities interoperate to achieve one or more mutually beneficial goals. A classic example of an ecosystem is the set of companies that create plug-ins for Adobe Photoshop. These plug-ins extend the product in well-defined ways, usually providing specific functions required by niche markets. Key participants in this ecosystem benefit, including Adobe, the company creating the plug-in, and, most important, the customer.

Some Assembly Required

The Aladdin Privilege Software Commerce Platform (PSCP) includes a storefront engine that software publishers use to sell their goods directly to customers via a Web site or indirectly through a multitier distribution channel that consists of distributors and resellers . Integration with other systems is required in either approach.

In the direct approach, the storefront engine must be integrated with credit-card payment and other transaction-processing systems, catalog systems (product descriptions and price quotes), fraud detection systems, and so forth. In the indirect approach, the storefront engine must be integrated into a network of servers linked together to support transactions. In both cases, the system must be integrated with other systems in order to function properly.

It's Common Sense

A good tarchitect will just about always add some form of API to his system to make it easier to test via a solid automated regression test framework. A good marketect will seek to leverage this technical investmentafter all, who knows what the future may bring, and all that may be needed to add this feature to the product is some documentation.

Regardless of your motivation, it is essential that the development effort embrace the notion of an API as a commitment to your customer. A customer, partner, or other entity, such as a system integrator or value added reseller (VAR) that chooses your APIs is tightly bound to your product and your company. This commitment is for the long haul.

Beyond Software Architecture[c] Creating and Sustaining Winning Solutions
Beyond Software Architecture[c] Creating and Sustaining Winning Solutions
ISBN: 201775948
Year: 2005
Pages: 202 © 2008-2017.
If you may any questions please contact us: