Miko Matsumura had a thoughtful reply to my last post on whether SOA governance can make you less agile. He's absolutely right that it depends on how you use governance. So, I think it's worth clarifying then, the pitfalls of using it right and wrong.
First, as Miko pointed out, agility and efficiency are very different. I think of it in the following way:
So, let's get to what this means with a real-world example relevant to SOA implementations...
Let's say your organization standardizes on SOAP 1.1 - every service must be built using SOAP 1.1. No doubt about it, you will definitely be able to gain efficiency with this decision.
But, the real question is, how does this impact your agility?
To see, let's look at a (not totally unlikely) unknown: What version of SOAP will the industry standardize on? Let's say, in three years, the industry standardizes on SOAP 1.2, not SOAP 1.1 (the current front runner). This means that every packaged application, tool, and platform will support SOAP 1.2 (and a subset support SOAP 1.1 just for backwards compatibility).
You will assume that every one of your applications will be able to talk to each other because they share a common standard, but the truth is that no one supports your "common standard." Are you more agile? Definitely not - the unexpected change of standard will dramatically impact your future efficiency.
On the other hand, if you standardize on SOAP 1.1 now, but decouple your service interactions by having them flow through a SOAP intermediary that supports multiple standards (and is hot-pluggable to support future ones), you will be seamlessly able to migrate your current standard to SOAP 1.2 at a later date, with little or no impact to your IT environment.
So, by combining these approaches (common standards and decoupling), you get both efficiency and agility. Now we're talking.
View all posts from dan foody on the Progress blog. Connect with us about all things application development and deployment, data integration and digital business.
Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.