Can't Buy Me SOA - Herbjorn Wilhelmsen at Oredev 2009
While some 'SOA vendors' are disappointed with the manifesto, others should be able to see through this and agree that you can't sell SOA as a product, said Wilhelmsen. Granted, at some point you will need to implement your SOA, at which point you will need a product; however, the definition of SOA needs to be driven by practitioners - the people that use it and apply. It cannot come from anywhere else, he said.
"The definition of SOA is very skewed and there is far too much diversity in explaining and talking about SOA," he said. If vendors can leverage some of these principles, and agree upon the core values of SOA, it might help us navigate through some of the SOA marketing mist that has been created over the years, according to Wilhelmsen.
Agile and SOA = Agile SOA?
There is nothing contradictory between the principles that underly the Agile Manifesto and those that underly the SOA Manifesto -- they are complementary, according to Wilhelmsen.
One of the primary values of SOA, according to the Manifesto, should be to deliver sustainable business value when requirements change. Agile proponents here at the conference emphasized a similar idea, that all product features and activities should be driven by 'what the customer is willing to pay for.' Nothing more and nothing less. It would seem intuitive that business and customer needs should drive technical strategy, but this isn't always the case in many organizations, according to Wilhelmsen.
"In any architectural syle you adopt, you need to think about the first value statement of manifesto. It says that business value should precede technical strategy. This allows you to be flexible in what you want to achieve in your business," said Wilhelmsen.
"In the agile world, we talk about changing requirements on a project level but SOA is all about managing changing requirements at the business level," said Wilhelmsen. "If you want to better control or steer your development projects agile development methods are a perfect match -- if you want your business strategy and overall architecture to be agile, SOA is a good match," he said.
Flexibility Over Optimization
Referencing a quote from Bill Harland, Herbjorn suggested that its easier to optimize correct code versus correcting optimized code.
This is also one of the tenets of the Manifesto.
"You don’t want to optimize things for their own sake. Don’t write overly optimized code. Subsequent changes in architectural and business requirements will make it harder for you to change your implementation later on," he said. "Put off your architectural decisions to the last responsible moment."
The same should go for SOA product decisions. You don't want to make these too early on in your project lifecycle. The planning phase is too soon to be talking about SOA products. This is the stage at which you need to think about people, processes, and governance, according to Wilhelmsen.
Wilhelmsen also referenced some of the interesting dialogue that's been happening throughout the community around the current and future state of SOA -- there is still a lot of skepticism.
To some, the SOA Manifesto might seem like a frivolous play on words and perhaps something best left for wordsmiths at Webster's Dictionary. Nevertheless, the Manifesto provides a valuable distillation and elucidation of a term that has perhaps become too jaded and even hijacked to some extent.
"If SOA is in fact dead, it is dead for people that want to sell SOA as a product," said Wilhelmsen. The Manifesto defines SOA as an architectural approach and service-orientation as the paradigm that should frame what you do.
Definitions and first principles are a good thing, especially when three letter acronyms lose their meaning.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)