Thursday, March 25, 2010

SOA and other Gobbledygook

I was at an IT conference at BMICH (in Colombo) last year, which was Keynoted by Narayan Murthy, the founder of Infosys in India. He spent some time talking about entrepreneurship and one of the things he said that really struck me as interesting, was that "a business idea will fail if you cannot describe it in one sentence". At first,I thought that he may have been a little over the top with that comment, but on reflection, it really did make sense. How many times have you tried to read about a new idea or concept, but quickly moved onto something else,  if you didn't get the gist of it after reading the first paragraph? I have done it many a time.
I think the same can be said about proposed new software paradigms or ideas. SOA has been talked about for years now, but I have had a really difficult time having our company explore it because no one can really explain to me clearly what it really is all about from its vision to its benefits. Take a look at a website dedicated to explaining it. OK so do you understand it now? Not me. The author actually uses up the first three or four paragraphs informing us that SOA has not been successfully defined by others. He doesn't do much to demystify it either, well at least not before I lost interest and gave up reading. I love this article by Redhat on Redhat's SOA vision. Are they for real? That first paragraph says nothing. It is just a bunch of words strung together to take up space.
I just can't help but feel that they want to confuse us because in fact they are trying to convince us to to move to an architecture for solutions that we have already been implementing for years, but by just using different techniques, names and acronyms.
SOA reminds me of CORBA back in the 80s and 90s. Where is CORBA today? Actually for that matter, where was it then?
Now on the other hand, have a look at a basic web definition of MVC architecture . There you go, just one sentence and it is clear as day. That to me is the simplest reason why MVC is so widely adopted by so many companies. A similar argument could be used to explain the reason for the success of Client Server Architecture which granted, is considered legacy today, but one that became very popular and quickly adopted in the 90s. Here is a definition of client-server. Well it really is easy for any CTO to grasp the concepts and it advantages with one quick read.
Some people say SOA is dead. see Ann Thomas Manes article on why she thinks SOA is dead. To me her reasons for why it will fail make some sense and she actually, while explaining why it will fail, has given me the best explanation yet on what SOA is all about and its benefits.
An all or nothing re-engineering project to move to true SOA is a big ask, particularly if the end user experience is not going to necessarily change (I will talk about this more in another blog article). Why? we already use or can use SOAP, MOM and HL7 (for healthcare) right within our current J2EE framework. Thus incorporating web services into an existing architecture makes a lot more sense and as she says it will become a necessity as we migrate to cloud computing, particularity if there are integration points between "on premise" and "off premise" apps for example.
However, I think the biggest reason for why it may fail is because nobody can define it like the simple and elegant one sentence mission statement for MVC architecture.
"The main aim of the MVC architecture is to separate the business logic and application data from the presentation data to the user."
So to the SOA pundits out there, I say go back to the basics and define your vision in just one short sentence, which should get the regular "Jo" CTO like me on board, if the benefits result in pragmatic consequences. Otherwise someone else will come along very quickly with something else and may render your stuff irrelevant.