Post date: Mar 28, 2012 8:20:49 PM
There is so much information available about SOA that it becomes almost impossible for some one to decide what is the life cycle of an SOA. SOA is a style not technology, SOA can also not be a project but SOA can be enabled in an enterprise through several projects. So what are the steps to enable SOA?
Lot is written at many places from different view points and that is why it creates confusion. Here I am not reinventing the wheel to tell some thing new again to add to the confusion but I will try to simplify it by organizing what is already told about SOA life cycle or activities involved in SOA mission (not project).
SOA is not a time bound project with fixed boundaries
My first point is that don't consider SOA a project. Enabling SOA in an organization can be a mission, vision through several projects in the organization over the period of time. Starting from SOA maturity level 0 through 5, 6 or 7 whatever you believe is SOA maturity model highest level (or in fact continuously to higher levels of maturity not limited to level 5, 6 or 7).
Now if SOA is not a project then don't try to consider typical project life cycle as "SOA enabling exercise". Don't even try to map typical project life-cycle to SOA engagement.
Note that I am using SOA mission, SOA enabling exercise, SOA engagement for same thing.
To enable SOA for any organization some suggest following activities:-
Education - Getting understanding of SOA principles, best practices etc
Assessment - Knowing readiness of the organization & Gap analysis. Readiness may be considered from people perspective, technology perspective, business perspective. Realignment will happen and above mentioned areas should be ready to get aligned. It is also about maturity. Whether organization has reached to a level of maturity to adopt SOA environment from people point of view, technology point of view etc. Gap analysis will identify processes required for running the business of the organization and existing processes in the organization. Organization may not have all the processes in place so there will be a gap. Even if organization will have many processes in place, there will be some processes which will not have perfection or accuracy to be considered as autonomous service which can be reused. So this inefficiency or non sufficiency is a gap which needs to be identified and road map should be drawn to fill the gap.
Planning - Phased SOA migration plan according to Road-map considering risk, their mitigation, business value at the end of every phase. SOA can not be enabled in a big bang. It should be iterative. Whether several projects to enable SOA will be executed in agile mode or any other is a different topic that I will cover later. But one thing is sure (in my opinion) and that is:- enabling SOA can not be a big-bang exercise. It should be iterative. Another aspect is whether to take top down approach or bottom-up approach. I will also cover this aspect later.
Execution - Executing several projects to enable SOA in phased manner. Here I am avoiding calling them SOA project to avoid misunderstanding that SOA enabling exercise is a project which is time bound and is a typical software development project. Few things are strongly recommended here- governance mechanism which will work for entire life of SOA should be setup even before any project starts to migrate existing assets of the organization to SOA enabled world. Governance will span across multiple projects.
Some people try to map SOA Governace and ITIL. Don't get confused with SOA Governace Life Cycle with something else. SOA governance is part of SOA enabling exercise but Governance is not equal to SOA. Some folks also present service life cycle within the discussion of SOA and people get confused with it by considering service life cycle as SOA enablement life-cycle. Don't get confused with BPM life-cycle as SOA enablement life cycle (which often vendors try to do).
Problem with SOA is that, what so ever a vendor has, he tries to sell that as SOA.
Following are some activities related to SOA mentioned at various places as SOA life-cycle
(most confusing are activities mentioned as life-cycle on wiki's):-
Platform, Service, and Integration Production Support
Promotion and Marketing
Reporting and Analytic
This is not SOA life-cycle. These are not activities performed in this sequential order to enable SOA.
Some people present design time and run time phases of a service. They present following activities of service life cycle:-
Identification of Business Process
Build & compose
Integrate & Deploy
Above mentioned is also not SOA life cycle. I accept they are not vague statements. They are not incorrect but they are not SOA life cycle.
So what can be considered as SOA life cycle?
In my opinion SOA life cycle can be seen as continuous improvement of organizations assests to become standard and reusable through following steps
Assessment & Planning - Assessment of readiness for SOA. Assessment of existing IT infrastructure of the organization. Identification of desired business processes as well as identification of existing business processes. Gap analysis to identify missing business processes or processes which require improvement. Identification of business services to complete these business processes ( this exercise may be at high level which can be refined to a detailed level during execution of individual projects for SOA enablement where there is a phase to model business processes and services). Impact analysis. Reuse, buy, build analysis. SOA road-map and plan. Planning for governance are activities for assessment & planning phase.
Execution- of SOA plan and road-map through various projects to enable SOA in the organization.
Monitor & Manage - How well the business or IT systems are performing. Feedback into the overall business process improvement. Manage (through governace) to ensure compliance with business policies.
Control- Continuous governance which should be in place from start and spans throughout life.
Here Execution and Governance require some detail (which is out of scope of this discussion but I will put some brief information and my thoughts here).
Execution - Execution of various projects to enable SOA in the organization using existing assets (infrastructure, systems like ERP, CRM etc) and creating business services which are self contained. Here I fully agree with service life-cycle suggested by IBM for project which are part of SOA for any organization. Following are the steps IBM suggests:-
Model - Gather requirements. Model desired business processes and services required for them. Identify contracts which services should adhere to or implement.
Assemble- Assemble services for business processes using existing services, assets and infrastructure or create new one if they don't already exist or can not be reused. These assembled services should adhere to contracts . Test services against contracts.
Deploy - Deploy the services.
Manage - applications and services are managed to ensure compliance with business policies, monitor and maintain services.
Control through governance (Continuous throughout life of the project as well as throughout life of organization SOA)
Governance - It spans throughout SOA lifecycle . Its goals are process control & business and IT alignment through an iterative cycle which have following steps or phases:
I will discuss my thoughts on governance in more details in coming posts.