The SOA Pilot is a crucial part of the journey to SOA.
The result of an unsuccessful pilot could be the end of the SOA initiative.
Therefore you have to plan for successful pilot in order to transform the enterprise to SOA based enterprise.
However, the analysis of a SOA Pilot is not as simple as described above.
For instance, a well known SOA expert, Ronald Schmelzer, Zapthink's co-founder wrote a Zapflash titled: The Best SOA Pilots Don't Get the Services Right.
Ronald Schmelzer's thesis is that it is not important to get things right from the beginning because this kind of attempt will surely fail: neither the Business people nor the IT experts knowledge of the specific enterprise Business and IT context is perfect. In addition, the enterprise business requirements are very dynamic, so the probability of significant changes during Architecture planning, Services analysis, design and build is high. Therefore he argues that Agility is the most important goal of the SOA pilot because it will minimize the penalty for changes.
In my opinion minimizing the penalty for changes is very important, but not getting things right in the first steps could be very risky.
SOA is multi layered and complex therefore it is important to get right some aspects from the beginning, while the tolerance level for wrong things in other aspects on the first steps is higher.
In one layer SOA pilot is a specific project addressing well defined project goals similarly to other non-SOA pilot projects.
In a more abstract layer the SOA pilot is a first partial iteration of the SOA architecture, which may require refactoring i.e. its components and their relationships may be "wrong" and changed in the next iterations.
Things to make right from the beginning
- Choosing the right pilot project
In this respect SOA pilots are similar to other projects pilots. Evaluate possible pilots using criteria such as Visibility, project team, Service Reuse potential in other systems etc..
A successful pilot with very low Visibility could be the last stop in the journey to SOA.
For my consulting assignments I am using a checklist based on my experience. Together with the enterprise's business and IT experts I map and rate potential pilot projects and choose the highest ranked pilot project.
- Defining "right" measurable criteria for evaluating the pilot
- Evaluating the pilot according to those predefined measurable criteria
- Addressing real pain points which SOA is capable for addressing in relatively short time
- Adequate organizational maturity level
Evaluate the organizational maturity level and if it is too low postpone the pilot and make
the necessary preparatory steps.
- Metadata model
Things with higher tolerance level for wrong decisions in the beginning
- Service functionality
- Service Interface
- Service Contract
- Process steps
- Service implementation
Notice that higher tolerance is not a recommendation for unplanned or intentionally wrong architecture. It is a recommendation for balancing SOA planning efforts with expected future benefits and current limitations.
On one hand do not assume that you would be able to define a perfect, on the other hand a wrong SOA Pilot could be the end of the SOA initiative, because it could be the end of Business management sponsorship of SOA. Balancing is the key. You should allocate a reasonable amount of resources for good enough SOA Pilot. Distinguish between those elements which should be done correctly in the first time and those which could be corrected in the next iterations.