In the last post, we talked about the first two business implications of SOA. The first is the rapidly evolving market ecosystem for “services in the cloud” and the increasing availability of plug-‘n’-play “widgets” all made possible by the underlying standards and methods of SAO. This innovation is equivalent to that brought about by the early gun makers with the introduction of interchangeable parts into early gunmaking in the late 1800’s. The second business implication is the fact that business competitive advantage lies in things that truly differentiate a product or service in the customer’s mind, so it behooves IT organizations to direct their energy and resources at these differentiators and take advantage of the services ecosystem for all else.
Today, I want to tackle business implication 3. in the figure above – Outside-in Thinking is Essential – a point that comes directly out of implications 1. and 2.
The design of business services with SOA initially costs more than conventional applications. Purposeful design typically takes longer than simply jumping in to coding. (I’m reminded of the early cartoon showing a room full of programmers, with the project leader leaving the room, looking back over his shoulder and saying, “I’ll go up and find out what the user wants, the rest of you, start coding!”)
In order to get the best return on the up-front design overhead, services must be designed for future reuse and future value. The future ambiguity that well-designed services resolve up front provides long-term value while incurring short-term cost. The trick of designing services for future reuse requires functional stability (i.e., reducing or eliminating the need to make modifications to existing functionality to accommodate changes). Functional stability in turn requires a full market awareness of what your customers may want in the future. Customers do not buy your products and services because they want your products and services – they want the capabilities and outcomes your products and services provide in order to solve a particular job, or fulfil a particular need. If they can get those capabilities or outcomes in a new or better way, they will.
The key design elements for reuse include:
Fit – allowing variations of services based upon differentiated service quality, readily customized based upon the customer’s profile.
Continuity – recognizing that the customer’s overall experience is often the linkage of multiple events, rather than just a single event.
1-Stop – recognizing that the customers interaction with us should not be confined by what they buy and how they transact with us today. Again, given the earlier point about customers wanting to get specific jobs done, rather than simply wanting our product or service, if your current offering is not ideally getting that job done, you may be able to refine your product or service into something that is better at meeting that need. Or, if the job they need done changes, you may be able to refine your product to meet the new need. The loosely-coupled nature of SOA allows for partners to connect and help companies provide a more complete fulfillment of the customer’s entire range of needs. 1-Stop design can build customer loyalty as well as stave off competition.
We will pick up on these SOA design elements in the next post.