Dec 17, 2008

I Don't Want To Do SOA!

I spent years in a huge Fortune 50 IT division creating an integration competency center, trying to convince project managers and IT middle management to use SOA. Or rather, to expose services offering their key application functionality.

These managers often came to me requesting access to services or for us to build services allowing them access to the systems, transactions or data they needed. But when I came to them to expose their systems, transactions or data, or even more to build a service model into new application features and extensions they were working on, they almost uniformly said no. When I arrived with a request for a specific transaction with funding in hand, they would do the minimum required by the requesting system and no more.

I struggled with this for years. I created presentations educating on the SOA model, showing benefits and ROI. I educated architects and senior programmers on the advantages. I spoke with systems analysts about new SOA design patterns. When we had significant success, with projects that used to take 6 weeks to integrate taking 1 week, I touted them far and wide.

And it didn't make any difference. The management resistance didn't change.

Rational Software (now part of IBM) is the primary company in the marketplace that takes computer engineering and turns it into practical development and management tools. Besides tools, they publish many software process guides. One is The Six Principles of System Development.

Rational Principles of System Development - Rule #6

Development Organization should Reflect Product Architecture. “Technology dictates a change in architecture, and organizations that do not adapt experience a loss of productivity and effectiveness…”

Like changes of procedural programming to object oriented, moves from central computing to client/server, and changes to web based applications, SOA oriented development is a paradigm shift. Organizational structures and motivational factors must be adjusted to reflect the new architecture.

The IT managers in my Fortune 50 organization were ignoring me because project managers are incented – their success – is defined as delivering their project on time and on budget. Building Services works AGAINST that goal, widening services even more so. Using Services works FOR their goal.

So they were happy to come and use existing services or use the SOA tools (ESB) improved integration capabilities, but would not risk the 1 extra day it might take to widen a service or build a more service oriented system as there was no reward in it - for them. While the IT organization as a whole would gain by speedier future development and improved flexibility, THEY would be penalized for a delayed project!

Until some portion of their success was adjusted from "project on time and on budget", "software meets business requirements", and "operates stabily and handles reasonable capacity growth" to include "architected for ease of future integration" and "minimizes need for future service changes", it was simply in their best interest to avoid SOA as much as possible.


SOAMASTER223 said...

Take a look Managed Methods JaxView for a cost effective SOA runtime governance solution.

Keith said...

You have my sympathies... from what you say, this appears to be an issue of corporate culture. Regardless of how good or effective a new technology is, in general people will not adopt it unless their management is driving them in some way. Can't get SOA adopted in your company? How about just the basics: I bent the ear of my ex-boss (the CIO of a major company) for about two years until I gave up, advocating for basic standard processes (such as defining requirements or having design reviews) while he literally poured tens of millions of dollars down the drain on a program of technology refresh projects (.NET) that eventually dragged on for years.

Why was I not successful, even though I had been the only director to deliver a major project on time, with a new group that I built by hand (and who had mostly never worked with .NET)? Because the corporate culture was neither a technocracy nor a meritocracy, but a political beaurocracy: the senior leadership of the company never demanded results or called him on the carpet about the major project failures. The company was profitable enough, apparently, and when everybody's making money, who needs a solution?

In the end, don't we as technologists have the responsibility of winning the support of major corporate players and stakeholders for our enterprise solutions? If we can't do this -- or they just don't want the solution -- then shouldn't we stop trying to drag that horse to the cool refreshing water?