Recently there seem to be more mutterings about how "SOA is dead" or "SOA is failing". From my perspective, I think that the rationale behind SOA is sound, as are the design principles (implementation independent loosely coupled services, reuse, etc) but adoption is way harder than anybody anticipated. Here are my key reasons.
- Focus on technology: many project teams went through a phase where they'd buy in an Enterprise Service Bus or another Enterprise Application Integration technology and focus their minds on making everything talk in web services. We all know that SOA isn't inherently about web services, but if it wasn't XML it wasn't going to work. Crucially, SOA is about the business and this is the point that many people neglect. One of the first things to do with SOA is to step back from the technology and look at the overall business processes. Then, once you understand this, you can start to review the processes, improve them and decompose them into meaningful steps. Then you can start mapping that onto the technology. With SOA, if you don't focus on the business, you miss out on the reuse opportunities.
- Politics: I've seen a lot of large organisations strive to centralise core parts of their business (e.g. reference data) but it never works. Politics always gets in the way, primarily because people don't like giving up control and disparate groups within an organisation rarely agree on anything. I once did some work for a large investment bank and they a fantastic opportunity to build a truly leading edge client-side dealing platform across FX, equities, fixed income, etc. Technically it was very feasible but the massive egos and politics got in the way. Even if an organisation did manage to centralise some of their key business services, there's still the need to appropriately advertise and version them using something like a service catalog.
I regularly use the same approaches from SOA in "non-SOA" projects and find they are a very good way to come up with a well organised service-centric architecture that is easy to build, deploy and test. At the end of the day, everything seems to be one giant cycle. SOA may be going out of fashion now while everybody talks about cloud computing, but its principles will live on and I'm sure it'll be back in another guise before we know it.
About the author
Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.
You can find Simon on Twitter at @simonbrown ... see simonbrown.je for information about his speaking schedule, videos from past conferences and software architecture training.