Top down or Bottom-up SOA
Having seen both the SOA approaches top down and as well as bottom-up, this question still bewilders me if there is any right option out of these two? There is no easy answer. Or I would like to believe it depends...
Top down approach requires a lot of strategy formulation, a strong commitment from management, CIO, all LOB heads to come together to define candidates for services and requirements for these services. It’s typically a long road map between 2 years to 3 years with significant budgets pre-approved. The pitfall is the speed at which IT can work, otherwise it will never be achieved due to usual operational distractions; frequent changes in the business requirements; disagreement between stakeholders and soon you will hit a roadblock.
Bottom-up on the other hand, starts with building a service layer quickly without having any dependency on business. Business does not drive it, IT drives it. A service layer is built around stable systems like legacy and this approach is further extended gradually to all systems. Each project is independently approved. This can work effectively. However, in a larger setup with multiple LOBs bottom-up method ends up as a fiasco as semantic differences are so huge that the services which were built in incremental projects prove hardly reusable. If each LOB starts working bottom-up, the enterprise will end up as fragmented SOA instead of integrated.
I have seen a lot of blogs recommending a mix of both these approaches, but wouldn’t it be even more difficult to achieve? I believe if the size of your organization is small, the bottom-up approach can work well. But for a medium to large size enterprise, top down will be almost unavoidable. A well defined governance model will be another force to go in for the top down approach.
I would love to hear from you if you have experience in top down or bottom-up SOA.


