SOA: Snowball Oriented Architecture
I don't consider myself a cartoon freak, but I have always had a warm place in my heart for them. I was practically raised on Loony Tunes and today I can't get enough of a disturbingly addictive little show called Happy Tree Friends. In one recent podcast episode, From Hero to Eternity, was a scene where a cute little chipmunk, disoriented after almost being blown up by a flying squirrel, stumbled off the edge of a cliff. She landed on a steep, snow-covered hill and tumbled down it, gathering snow as she went. Faster and faster she spun until she was encased in a snowball. The snowball soon became gigantic, sucking every living creature in its path into its swelling core, and threatened to pummel a small, hapless village full of cutesy mountain animals. I'm no buzzkill so I'll stop there with the details.
Now, I've seen this "snowball barreling down a hill" bit a hundred times in cartoons. (Who hasn't?) But I grew up in Colorado, so I know a thing or two about snowball physics, and it just doesn't work this way in real life. Anyone who has tried this knows that if you push a little snowball down a hill it does not speed down a straight path and become a perfectly spherical, gigantic version of itself. What really happens is that the little snowball gathers snow in odd places as it's rolled, quickly becomes lopsided and pulls in one direction. When it picks up enough mass to roll on its own, it looks more like a lumpy log than a smooth snowball. At this point, gravity and inertia take over and it's anyone's guess where the thing will ultimately end up and what it will look like when it gets there. So all those cartoons ignore the subtle, cumulative effects that various environmental conditions have on the outcome of the event - things like the stickiness of the snow; the steepness and shape of the slope; the shape, weight, and speed of the snowball; friction, wind, and even the outside temperature. In the cartoon world things are simple and predictable. In the real word they are very complex, even for things as seemingly simple as a snowball rolling down a hill.
I believe many people involved in Service Oriented Architecture are doing the equivalent of pushing a cartoon snowball down a frictionless slope, trusting that if they form a small initiative and give it a nudge in the right direction it will blossom into large-scale success under its own momentum and meet business objectives dead-on at the end of the journey. However, in reality, all change initiatives, SOA in particular, are subject to the constant effects of "corporate physics" - politics, culture, skill sets, methodologies, technology, sponsorship, governance, communication, vendor relationships, budgets, strategy, and so on - just as real snowballs fall under the constant influence of physical laws of gravity, motion, friction, and chemistry. Additionally, unexpected subtleties of any of these effects can lead to dramatic shifts in direction. For instance, a rock buried beneath the snow can throw a rolling snowball wildly off course. Likewise, an unexpected budget cut, missed deadline, or overlooked requirement can trigger a chain of events that can jeopardize an SOA program. The only way to ensure a rolling snowball stays its course is to follow it down, nudging it back on track and reshaping it when it begins to stray. Similarly, the only way to ensure SOA stays its course is to follow it every step of the way, be tuned in to the laws of corporate physics, and reshape the initiative as chaotic events begin to derail it.
SOA holds a lot of promise for companies striving to build agility; it is designed to harness chaos and use that energy to fuel innovation and rapid change. However, before the promise can become a reality companies must build suitable, change-ready SOA infrastructures, which takes patience and careful planning. The keys to successful SOA implementation will be thorough understanding of its fundamental principles, attention to how it influences, and is influenced by, corporate physics at each stage of its evolution, and a deep commitment to following through. Otherwise, the SOA program runs the risk of getting stuck or, worse, barreling out of control through the organization causing mass hysteria and flattening innocent co-workers.