In her post in Elemental Links, Does your SOA lack social skills?, Brenda Michelson recently shared a useful conversation with Hub Vandervoort, CTO of Progress Software. She wrote that, “Hub is talking to organizations about their awareness and ability to form and retain relationships for the betterment of all parties. Why? Because at the core of SOA is federation. And federation requires cooperation.” We could not agree more. In her report on their conversation she covered five core areas: contracts, governance, trust & commitment, and empowerment.
In summary, SOA operates best is best if no single party controls the flow of work and information but everyone is clearly aware of their responsibilities. SOA is about partnerships, not hierarchy. When you move from hierarchy to federation, then governance is based on trust and commitment. Transparency supports trust. This leads to the last of the success factors, empowerment. I like the quote form Hub that Brenda offers:
“The real shift [for IT] is not to do what you’ve been doing in the past faster, but shift from being delivery mechanism to empowerment mechanism -- truly democratized computing in a Web 2.0 sense. The end-user is always going to operate on the path of least resistance. Find tools that enable him to create his own solution… mashable desktops, data access through services…”
Brenda closes with a useful set of questions to ask ourselves as we implement SOA based on these factors. I have just given the head lines, you should go to her post for the details.
We recently posted on some of these concerns in Hair of the SOA Dog that Bit You. Because of the mix of services in SOA there is the need for more cooperation. Therefore, when you “get more teams to start consuming the service for different business processes, and bringing more interdependent services into the fold. It doesn't take long for some real problems to arise.” Hub’s guidelines for the people side of SOA are useful here.
Technology can help also. In SOA inevitably teams run into the barrier of dependency on services that are either not yet created, or aren't available (such as constrained live mainframes and services that aren't yet created). Then, no matter how good the governance is, the people part can get stalled. Virtualization of these unavailable services will allow the people part to move forward again.

Comments