Saturday, July 12, 2008

It's Not All About

Following my posts criticizing simplistic accounts of what SOA is “all about” (Ambiguity, Zapthink Bashing Microsoft), Burton Group blogger Chris Haddad kindly added a comment pointing to a couple of posts by his colleague Anne Thomas Manes, which trace back via Nick Gall to Andrew McAfee.
If I keep looking, I can probably find almost as many people saying what SOA (and related stuff) isn't all about as people saying what it is all about.

(if you find any more good ones, please add them to the comments)

There is a “negative” tradition within theology saying that God can never be described or defined, so the best we can do is make statements about what God isn’t. I don’t think SOA is quite as deep and mystical as God (although you could easily get the wrong impression from some of the more inflated commentators).

Meanwhile, many people (especially in IT) believe that a class or category must have hard boundaries – there is some specific feature or feature-set that everything in the class possesses and everything outside the class lacks. Anthropologists call this monothetic classification.

But as Wittgenstein pointed out, there are many familiar concepts and classes that don’t have such hard-and-fast boundaries. Wittgenstein’s best-known example was the concept of “game”. There are various features that characterize games: all games have some of these features, but hardly any games have all of these features. Defining a class in terms of characteristic features is known as polythetic classification.

(I talk about this in my information modelling workshops, and it is included in my 1992 book on Information Modelling).

So instead of finding the single feature whose presence or absence defines SOA, I think it makes more sense to look for the characteristic features of SOA and not-SOA. Which leads us to another debate between Dave Linthicum and Joe McKendrick on how to tell it’s not SOA, based loosely on James Governor's post about cloud computing. I also found a post by Robert McIlree suggesting ten ways to tell it's not architecture.

Tell-tale clues include the following words or phases: “agility”, “application”, “consultant” “enterprise architecture”, “paradigm” and “vendor”. Each of those is worth a separate post ...


doober said...

Try this post, I think he does a good job of explaining SOA.

"Recently the IT industry has used the term Architecture more and more frequently to describe how building blocks of hardware, software and interface protocols can be put together to create systems...

...When it comes to Service Oriented Architecture (SOA), the term means designing a system where each system component provides access to its computational or business resources as a service to other components."

Richard Veryard said...

I just wish he'd said "designing systems" rather than "designing a system". An important shift happens when you start to look at systems of systems rather than each system in isolation.