As we start planning our Service-Oriented Architectures, we are faced with a host of decisions such as: Where to start? How should the architecture be built? What gaps exist within the current architecture and which technologies should be used to complete these gaps? Who should be involved and what training should they undergo to be prepared? These are some of the questions that one may ask at the outset.
Organizations are all inundated with information about SOA and the steps required to create, design and implement their SOA. For example, useful information and models are being produced by various organizations such as the OASIS SOA Reference Model Technical Committee, whom recently made available for public comment a draft version of a reference model for SOA. Additionally many industry analysts and vendors provide useful information and guidance on specific aspects that form part of a Service-Oriented Architecture.
With the availability of vast amounts of information at hand on how to create your SOA and with copious amounts of advice from software vendors and consultants, it should be easy to create your first successful implementation. This is however, it not always the case and reality seems to introduce a different twist into our carefully laid out plans.
I deal with many organizations from various industries, which are faced with a very steep learning curve during their first SOA implementations. These organizations have found that not all things work as well as expected or in same cases their expectations have been exceeded. The difficult task that these organizations are faced with is how to learn from their experience and improve their subsequent phases of their SOA implementation. This is where an SOA Maturity Model can be extremely helpful in guiding an organization to higher levels of success, stability, discipline and improved processes.
SOA Maturity Model Definition
An SOA Maturity Model is a set of criteria, parameters and factors that can be used to measure and describe an effective SOA implementation.
The role of an SOA Maturity Model is twofold: 1) it can be used to gain insight into various dimensions of you SOA implementation and serves as a barometer of the relative maturity within these different areas, 2) it can serve as a guide on how to improve the overall SOA implementation by focusing on key areas and disciplines.
Many take the traditional view of the SOA Maturity Model (some of which are based on the CMMI Maturity Model), which in essence classify your implementation into 5 different levels of maturity.
SOA Maturity Levels CMMI Maturity Levels
Level 1 – Initial Services -> Initial
Level 2 – Architected Services -> Managed
Level 3 – Business & Collaborative Services -> Defined
Level 4 – Measured Business Services -> Quantitatively Managed
Level 5 – Optimized Business Services -> Optimizing
Although the above mentioned SOA Maturity Model contains a valid perspective, I think it is limited in scope, since its focus is on services, business processes and infrastructure. The CMMI model in my opinion provides a more balanced view, with a focus on process improvement.
I propose a different perspective, in which emphasis is also placed on the organizational aspects, life cycle and governance. Rather than viewing this model in a linear fashion as in the case of some of the other maturity models, it should be viewed as a multi-dimensional model in which the various dimensions are considered from the earliest phases. I would include into the following dimensions into the SOA Maturity Model:
- Organizational Maturity
- Technology Maturity
- Architectural Maturity
- Life Cycle Maturity
- Governance Maturity
Impact of SOA Maturity Model
By looking at these different dimensions of SOA one can get a better view of the technical as well as non-technical aspects. We have learned SOA is much
more than just about technology. SOA is about solving business problems and finding new ways to improve efficiencies within our business processes, with the end result that we are creating a new generation of highly complex and powerful solutions.
- Provides a point of reference
- Create a common vision & understanding
- Identify Gaps
- Prioritize & Measure impact of SOA
- Prioritize & Plan actions for improvement
With that in mind it is important to realize that in order for SOA to be successful you need proper organizational support. It is imperative that both business and IT management support the initiative and that appropriate funding has been allocated to the SOA initiative. Additionally you have to have the proper organizational structures in place, in the form of a competency center, to support the technical staff as they plan, design and implement the various SOA projects. Process discipline should be included into the model which covers the services life cycle, implementation methodology & process and lastly governance.
Conclusion
SOA Maturity Model Dimensions
- Organizational Maturity
- Technology Maturity
- Architectural Maturity
- Life Cycle Maturity
- Governance Maturity
Various organizations have created maturity models and provide consulting services related to these maturity models. Since no industry standard SOA Maturity Model yet exists, it might be a worthwhile exercise to make use of these consulting services or as an alternative you use these maturity models as way to get an objective perspective of your SOA implementation. By starting from an outsider’s point of view, you gain the advantage of obtaining a “political neutral” (or objective) opinion. By this I mean that people internal to the organization may be reluctant to adopt new approaches as they might have a vested interest in the existing SOA implementation.
The SOA Maturity Model should not be used to find fault with SOA implementation, but rather to measure the level of success and to identify those aspects that worked well and what didn’t. Most organizations are only in the early stages of adopting SOA and the maturity model can help in gaining an understanding of the true impact of SOA on the organization.