Are you ready to answer this challenge... can you prove that your Service Oriented Architecture (SOA) is NOT JABOWS?
I'm not asking from the standpoint of technology (are services secure, available, composable, etc) but rather from the business. In other words, if the business wants to achieve flexibility through the SOA, do the available services represent the correct interaction end points to accomplish that goal?
SOA saves money in some environments (especially ours), but it’s greatest value happens when the business can add a capability to meet a competitive opportunity quickly and inexpensively. Speed is important. Cost is important. A Good SOA is structured to deliver on that promise. In my opinion: Evaluating “how good” a SOA is means modeling out the competitive opportunities that are actually in the corporate strategy and seeing if the SOA can react to both expected and potential competitive moves.
If you look at the ‘universe’ of business processes, you get a spectrum from “changes rarely” to “changes frequently”. If you place that on one axis and on another, you place the spectrum of “happens occasionally” to “happens frequently”, you get a grid like the one below.
IT projects provide tools for business processes. They automate parts of a business process or collect information or reduce errors. The point is… which processes? In the past, traditional IT only succeeded with the processes that changed rarely. Therefore, the greatest successes were in the upper left, with a lot of projects happening in the lower left (a pragmatic, “pick your battles” approach… solve what you can successfully solve). The problem is that there is a long list of business processes that occur frequently but that are more difficult to automate because they change frequently. (the upper right).
That is the SOA sweet spot. To annotate the prior diagram…
So, if you want to know what a GOOD SOA is, look to see if the services cluster around the data elements and detailed activities needed to automate frequently changing business processes. Certainly, an organization can START from their position of strength on the upper left, but if they never move to the upper right, then the business flexibility that is needed, and which SOA can address, will never be achieved.
So, to evaluate how good a SOA is, you need to ask:
A. What business processes occur frequently and change relatively frequently?
B. Of those processes, which are the most critical opportunities for automated tools to provide value?
C. Of those opportunities, which are aligned to corporate strategy? (feedback loop to executives here… opportunities missed)
D. Of those aligned to strategy, what data elements and activities are needed to compose them in a flexible manner?
E. Of those atomic elements, and required infrastructure components, how many exist in the enterprise SOA?
Step E produces a number. The closer that number gets to 100%, the better the SOA is.