Neal Ford has been publishing a series of reality checks on the current state of service oriented architecture.
In the latest installment, he makes the following statements:
- Implementing SOA for the first time is the triumph of imagination over intelligence.
- Implementing SOA for the second time is the triumph of hope over experience.
The takeaway, of course, is that SOA is a very complicated undertaking, something which Neal refers to as "tarpits" — especially the way it's being sold by vendors. Many people go into SOA not realizing what they're getting into, he says. "Once you've lived through one of these projects... you understand the first quote [SOA is a triumph of imagination over intelligence] at a deep level. That you would try it again truly is the triumph of hope over reason."
Whether you agree with Neal or not, his series makes for an interesting read, and provide some good critical thinking about SOA and enterprise architecture.
In Tactics vs. Strategy, Neal points out that that the business may think and act strategically, but IT is always inherently tactical. "No matter how much effort you put into a comprehensive, beautiful, well-designed enterprise architecture, it'll be blown out of the water the first time the business makes a decision unlike the ones that came before. The myth of SOA sold by the big vendors is that you can create this massively strategic cathedral of enterprise architecture, but it always falls down in the real world because the COO (and CEO) can override the CIO (and his sidekick, the CTO)."
In Standards-Based vs. Standardized, he refers to enterprise service buses as "Rube Goldberg machines."
In Tools & Anti-Behavior, Neal says the development managers too easily get suckered into buying and installing the latest "hairball generators" from vendors.
In Rubick's Cubicle, he observes how developers have a yearning for the challenges of complex undertakings. Often, however, they will pass over the simple fix as too boring.
So how many of Neal's statements have a ring of truth to them? What can SOA proponents do to overcome these issues?