Importance of a SOA Maturity Model

I talked a little about the Maturity Model concept in my blog entry about Simplifying Build Management – Build Once, Deploy Anywhere. One of the more well know Maturity Models is called CMMI (Capability Maturity Model Integration). In the presentation Capability Maturity Model Integration (CMMI) Version 1.2 Overview, there are descriptions of a “Process Model” that helps lay the foundation of the benefits of a Maturity Model.

A process model is a structured collection of practices that describe the characteristics of effective processes.
A process model is used

  • to help set process improvement objectives and priorities
  • to help ensure stable, capable, and mature processes
  • as a guide for improvement of project and organizational processes
  • with an appraisal method to diagnose the state of an organization’s current practices

The Maturity Model helps to define an architectural framework, what different levels of implementation can be achieved with the framework, ability to measure improvement of its usage, and the ability to assess the state of that architectural framework. The Maturity Model puts a subject like SOA into a framework and creates multiple maturity levels that define initial stages, all the way to advanced stages of the SOA process. This tutorial site provides a clear definition around what a maturity level is:

A maturity level is a well-defined evolutionary plateau toward achieving a mature software process. Each maturity level provides a layer in the foundation for continuous process improvement.

So we essentially have two maturity models that we are leaning on with regards to the standup of our SOA initiative. The initial example is from a document written in 2005 by Sonic Software Corporation (A NEW SERVICE-ORIENTED ARCHITECTURE (SOA) MATURITY MODEL). This provides an excellent example view into the different layers of a SOA Maturity Model and then finer grained discussions around each level. The following is the example Service-Oriented Maturity Model from this document:

soamm

We can see from this model that we have 5 essential levels for achieving SOA. The 5 maturity levels defined here are Initial Services, Architected Services, Business/Collaborative Services, Measured Business Services, and Optimized Business Services. These different maturity levels allow us to evolve our SOA initiative over time and validate that we are correctly progressing through those levels. For instance, one of the recommended steps for implementing an SOA is to utilize a Enterprise Service Bus to stand up some initial services (in order to create a starting point). It’s easy to determine the success of the overall SOA initiative based on this initial phase, which might give a view that the SOA initiative is not successful. This might be because the right types of services are not being exposed, or composite services aren’t being created, advanced standards aren’t developed, and so forth. But in the context of a Maturity Model, it allows us to evaluate our current SOA initiative against the different levels and determine that we have successfully achieved Level 1, lining up what is necessary for us to move towards Level 2 of the Maturity Model.

primobolan depot

Another Maturity Model for SOA is provided at Griffiths Waite – the Oracle SOA company. This is defined more clearly in the resource document SOA Maturity Model – Quick Reference Guide.

SOA-maturity-model-large

This Maturity Model also provides 5 phases called Opportunistic, Systematic, Enterprise, Measured, and Industrialised. This documents the evolution of SOA from initial services, to the development of standards, to utilizing BPEL for integration of multiple services, then utilizing BAM to monitor and measure services, to the ability to be completely agile via the previously successfully implemented 4 phases.

The following article provides a landing page for quite a few different SOA Maturity Models.

The fact is that starting a SOA initiative is a massive undertaking with many moving pieces and steps. It is easy to become overwhelmed as to the correct processes and architecture necessary to achieve the SOA end state. The benefit of aligning these initiatives with a SOA Maturity Model is that we are able to partition our SOA intiative into individual levels/stages so that we can achieve SOA in more manageable chunks. At the end of each phase of our SOA, we can determine whether or not we have evolved to the next phase of the SOA Maturity Model and what is left to accomplish our current level.

Share and Enjoy