"So. ... So you think you can tell / Heaven from hell / Blue skies from pain" starts Pink Floyd's "Wish You Were Here". That certainly should be the prerogative of today's CTO when faced with a flood of vendor products or outsourced services.
To be honest, I don't think I can even tell the difference these days -- unless I dig hard and deep for the truth. Today, analysts and vendors love to say that the Internet has matured and then bask in that good feeling. I say, "Think again!" A mature environment should have powerful, reliable, and well-priced products. As I'm sure you've noticed, we don't have much of that yet.
When it comes to pricing, let me remind you of a certain database vendor's per-MHz rate card. Consider also the dozen or so startups with pre-alpha products of dubious value that stick to their half-million dollar implementation prices. Does the price set the value? Only in immature environments, in which value is clouded in mystery.
As for reliability, too often I walk out of a conference room and consider applying for a position at some remote monastery in Nepal. I've had salespeople from the top technology brands say to me, "There's a memory leak? Just reboot the hardware." Or how about, "A pair of servers isn't enough -- it runs great on a farm of 20, though." For around-the-clock mission-critical applications, that's scary. And scary for your job, too.
Finally, let's talk about power. Powerful software has functionality that is nontrivial. It does things that make you say, "Wow, that's impressive," and hopefully, useful. But that "wow" factor is sadly lacking in the products I see today, especially when combined with ridiculously high prices.
Two months ago, one of my engineers was in my office making the case -- begging, actually -- for us to buy a certain OLAP (online analytical processing) engine. I asked him, "What if I told you it costs $450,000?" His answer, minus expletives: "What? We'll build it ourselves."
So once again, we CTOs find ourselves faced with the old "build vs buy" dilemma. Luckily, this particular OLAP vendor had the brains to cut the price by more than 50 per cent, but the core issue remains. Pricing, reliability, and functionality are out of balance in products that cater to the Internet environment.
As a result, I urge CTOs to be extremely careful when outsourcing. You will overpay, get less functionality than you wished for, or threaten the reliability of your whole Internet infrastructure because of massive module interdependencies between internal and outsourced systems.
These dependencies are critical to proper outsourcing and can only be analysed correctly if you are intimately familiar with the operations of your company. Can the interface to your internal systems be made simple and reliable? If not, outsourcing is too risky to try.
The more you need to look at details, the deeper you must go into the day-to-day operations and walk the floor of the company. Therefore the idea of a CTO's core role as being purely strategic is in my opinion the largest misconception in our field. I have seen too many CTOs outsource too much to remain in their strategic role, which has ultimately done a lot of harm to their companies.
Today cash is king, and you must retain the ability to quickly modify your technology following major changes in your company's strategy. As such, a CTO had better have a stronger reason to outsource than not wanting to roll up his or her sleeves. When the products we buy are immature, we as CTOs must stay in the trenches, one hand holding the rifle and the other updating the strategic battle plan.
Only then will we be able to tell heaven from hell.