SOA Readyness

I'm wondering if my company is ready for SOA. Right now the various business units in the company support many pieces of custom built technology which provide essentially the same functionality. Consolidating this functionality into a common, shared set of services is what SOA is all about right? Not only will the footprint of what we need to support be smaller, but we'll be able to meet future business needs faster (getting a jump start by reusing these prebuilt, prepackaged, pretested functionality). Isn't SOA a no brainer in this instance? I'm not so sure.

Building successful SOA components (even ones designed for internal use) need a product development approach. Code before SOA is essentially "set it and forget it". Failures in a particular component have a relatively small impact. In a SOA solution, things like scalability, stability, support, and release management are much more important. The significance of these traits increase proportionately with the number of clients to a particular component. All of a sudden you go from a situation where a software bug might affect a single business unit, to the point where the same bug could affect the entire enterprise.

I've already discussed the company's poor release management procedure. Its system is not conducive to concurrent development. This is needed to support released SOA components while the next version is in development. Strike one.

Currently, there are no test suites or sets of regression tests for this company's systems. Sadly, there is little desire to build any. Regression testing is important because as we enhance the services, we need to ensure we're not breaking any existing functionality. Creating a custom set of tests for each change to a service wastes time and is itself error prone. Without a good set of tests, the stability and support-ability of the service is in serious question. Strike two.

Scalability is always a concern, but since this code will now be responsible for handling more transactions (since it likely supports more than 1 client) any problems with scale will appear sooner and affect more business units. Strikes one and two affect our ability to effectively address these performance problems. Strike three.

It seems like SOA in this environment is a disaster waiting to happen. Until the release and testing issues are addressed, I do not see how it can succeed.

Comments

Popular posts from this blog

I Believe...

FRail :include

Performance Tuning JCAPS - Part 2