...her bastard child.
I was once relaxing with some friends and was asked, "what's the one thing you do better than anyone else?" I thought for a minute, and answered "I'm stupid. Too stupid to give up. Long after normal people give up, I just can't let things go."
Last night, after two scratched and beat up DVD's refused to play in a new DVD player, I hooked my laptop up to my TV and played an on-demand movie from Netflix. It was pretty cool and I never would have done it had I not had the "misfortune" of getting two bum DVD's at the same time. (To give Netflix credit, it's the first, and second, time I ever had trouble in a couple of years of service.)
Six and a half hours after starting, I had successfully watched a 100 minute movie. I probably should have read a book.
SOA What? In reflecting on last evening... I realize that I could compare the evening's activities to an enterprise integration project. And, using the lessons learned perhaps make integration-life a bit easier in the future.
Reacting to a market situation (failed DVDs), I needed to rapidly implement a "business solution" - connect my laptop to my TV and watch a streaming movie.
Remarkably, reading ANY vendor material made this look easy. I was dealing with standards (1080p, S-video, DVI, HDMI, HTTP, WIFI, Browser) that were supported by all my products.
I was under the gun... spending my whole evening setting it up defeated the purpose. I wanted to watch a movie (and ironically, relax), not just muck with components. And, I have to admit, one of the voices in my head wanted me to test the new DVD player. After all, what's the likelihood of getting two bum DVDs at the same time when I've never even gotten one before - coincidental to installing a new player?
So, my project plan looked something like:
- Test existing solution to evaluate if I can meet the business objective using the existing infrastructure. (Is it really broken?)
- Research business terms for the new solution. (Would I have to pay extra to watch on demand with my current Netflix subscription?)
- Research infrastructure requirements. (Basically, I pulled out a flashlight and crawled around to see what connectors were on which equipment and then dug around in a closet to see what cables I had.)
- Come up with a plan of action simultaneous with acting.
Well, I hacked something together. In the end, it worked - quite well, actually. But... I was missing a neat feature of my existing setup that optimized sound for dialogue. Every time there was a loud action scene, I jumped out off the couch (and out of my skin) to turn the volume down so I wouldn't bother the neighbors. Oh, and my wireless mouse left quite a bit to be desired as a remote control.
What's my point?
The vendor literature said "connect laptop to TV via standard DVI or S-Video cables."
Well, the integration challenges we face are pretty normal across the board. Even with well defined standards, the real killer is the complexity and the fact that the standards really operate in a vacuum relative to that complexity.
Standards solve problems with interoperability NOT integration.
Integration is about inserting new/changed functionality into a complex system of moving parts. Complexity is layered into our solutions, and increases over time. When things change, we're not sure what we'll break, only that we will break something. In my case, it was a benign volume control issue (though, my neighbors might disagree with how benign it was). It's important to understand where the complexity is... it's often not where you think. Andrew McAfee at HBS wrote a good article on the complexity of IT. (By the way, his blog is one of my favorites.) He says, and I agree, the complexity (that concerns us) is not in the systems themselves, it's in the relationships between systems.
Sure, if I had planned for this, I could have done it better. But, market dynamics often dictate otherwise. We can't anticipate everything. We can only plan for being surprised and refuse to give up no matter how much it hurts.