Thursday, August 07, 2008

Why do most SOA projects fail?

This post at ZDNet blogs states 1 out of 5 SOA projects fail. Here are my notes on why I feel this happens:

Lack of an Enterprise Integration Office – Without a string EI office through which all development efforts are approved maintaining an organization compliant with an SOA strategy becomes virtually impossible. Developers often circumvent the SOA layer by creating database level integration shortcuts under time constraints or lack of knowledge that a SOA solution exists to solve the same problem.

SOA Layer Silos and Duplication – Typically an application development team creates a SOA layer to serve the needs of the same application and a few other closely related applications. Other development teams do not use this SOA layer and it remains limited to the original application cluster that it was used for. A related problem is duplication of the same business logic in separate SOA efforts by separate development teams. These problems stem from the lack of a widely published and promoted UDDI so developers across the organization are aware of the SOA services available.

Inadequate Tool Support – If creating SOA compliant code or creating the SOA layer itself is difficult or cumbersome developers frequently will circumvent the SOA effort. Proper tool support is vital in making the job of writing SOA complaint code easier.

SOA for SOA’a Sake – SOA is not a silver bullet for all application development efforts. Unless the business logic for which a SOA layer is being created does not have an enterprise wide need , the additional work of creating the SOA layer should be avoided. Developers frequently gravitate towards using SOA and other “cool” technologies tending to over-engineer applications. Strong architectural oversight needs to be provided to prevent this issue.

Big Bang Approach – Implementing SOA across an entire organization needs time and should be done in phases rather than in one big bang development effort. The best place to start is to integrate new and strategically important applications into the SOA layer. Over a period of time as the benefits of SOA become widely recognized backward integration into existing apps should be attempted.

No comments: