What should have been the biggest tech story of yesterday - that a Chinese research team has “broken” the SHA-1 encryption scheme repeatedly and in far fewer attempts than brute force would require - was overshadowed by an announcement of another kind: that Microsoft will release Internet Explorer 7 for WinXP before the next version of Windows ships.
The IE7 announcement link above leads to the official Internet Explorer weblog, on which comments are enabled. As you might expect, the comments for the IE7 announcement are both numerous and, in most cases, inane.
Since no new specific features/capabilities have been announced other than a desire to make web browsing more secure, you’ll find the comment thread littered with begging, pleading, and cajoling to get IE to finally support the things that all other browsers support - the full CSS standard. Alpha PNG support. Support for the application/xhtml+xml MIME type. You know, the usual suspects.
There’s also a great deal of Firefox/Apache/Apple/Open Source vs. Microsoft bickering. There’s plenty of stupidity on both sides of the fence and I’ve been around the block enough to know not to get sucked in by trolls. However, one argument is made by the pro-MS camp with such sincerity that I believe it to be the genuine thinking of Redmond’s loyalists. Unfortunately, it’s so utterly backward, it’s motivated me to write this inordinately long post.
The thinking, to the best of my understanding, goes like this - “standards are for the weak - Microsoft is out front innovating and pioneering the web experience with IE and .Net and if a few standards get mangled or ignored along the way, so be it. I’d rather see ‘gee whiz’ technology coming from MS than every standard from slow, irrelevant standards bodies catered to.”
The problem with this line of thinking (other than the fact that anyone who thinks .Net is a compelling technology compared to Java is mentally ill) is that it has to be motivated by a very, very narrow worldview - I’m thinking the “technology experts” who hold these beliefs do not have any practical experience with large companies and the way that global commerce takes place on a meaningful level. In a small-to-medium sized company, you’re more than likely focused on doing your thing and doing it well - trying to establish yourself as a player. You’ve got to be very focused, because if you don’t develop your differentiators then you can’t get your foot in the door, and if you don’t build relationships based on high-quality interactions with customers and partners, you can’t stay there. In this mode, buying in to low-cost, proprietary software that can be supported by an abundant, cheap labor supply could not only work, it might even make sense - temporarily.
Once you’re in the game, though, there’s only two ways to increase profits - by growing revenue and by decreasing cost. Growing revenue can mean diversifying your product/service line and selling to your existing customer base, doing more of what you’re already doing, getting more customers, or some combination. Revenue growth isn’t easy, but reducing cost can be even harder - it requires innovation. It means finding ways to do the same thing faster and cheaper while maintaining a level of quality that doesn’t sink your relationships. This could be anything from automating tasks with technology to finding more efficient ways to interact with the people you buy from and sell to.
When you’re using technology to reduce cost and implement newer, better, faster business processes, you don’t want one hand tied behind your back. Maybe there’s an open-source piece of software that would be perfect for a new process you want to implement, or there’s a great piece of communications software that’s only available on a commercial Unix. Gosh, it’d be great if you could use the best tool for the job on a process-by-process basis and have all of those tools interoperate. If you’re using standards-based software, then you could… but no, you locked in to a proprietary system way back when - and now you either have to engineer your business processes around your software’s capability (the tail wagging the dog, to be sure, but you’d be stunned to learn how much time/money Microsoft spends on trying to convince companies to do just this), spend a lot of money creating custom interfaces between your tools, or re-engineer everything to phase out your proprietary systems and bring in open standards. None of those options sound particularly nice when the whole point was to think of newer, less expensive ways to do business.
Standards allow business leaders to use the best, most cost-effective tools available to support their business processes while minimizing the cost of integration. Standards are therefore essential within an enterprise for maximum cost efficiency.
Now let’s go one step further. Let’s say that there’s a very large company who wants to become your new biggest customer, and would like you to log in to their supplier extranet that’s powered by an xhtml+xml application. Oh wait, you’re using IE… never mind. Let me re-iterate: Buyers. Sellers. Relationships. There’s a whole commerce ecosystem out there, and the realities of 21st century business require you to acknowledge it. If you run your business in a vacuum, then it will begin to take on vacuum-like qualities - specifically, it will suck.
There are a whole web of partnerships and complex business arrangements among companies today, even more subtle than the Japanese keiretsu (think of it as a corporate street gang - imagine if General Electric, General Motors, IBM, Disney, and Coca-Cola got together and agreed not to compete with each other, cut each other sweetheart deals, and actively undermine each other’s competition - and you’ll get the idea). As loathe as I am to use stupid buzzwords, today’s climate is more like “co-opetition”, where two companies may be close partners (or have a supplier/client relationship) in some areas yet be fierce competitors in others. These seemingly non-sensical relationships are all a part of the constant refinement which fuels global economic growth - the never-ending quest for lower cost and higher benefit. With all of these companies going through the IT and business process optimization mentioned above, global business is itself a system of heterogeneous systems that need to communicate with each other. Throw in governments (which outside the US are increasingly distrustful of proprietary systems) and industries like retail where direct customer interactions are important too, and you have a mind boggling set of different technologies all trying to talk to each other, and the number of technologies that could benefit from interoperability is growing exponentially.
As a result, standards are the only sustainable way to facilitate the most cost-effective technology interactions between the greatest number of enterprises/individuals.
So to all you posters on the IE blog saying, “Just make neat stuff! Screw standards!”, be careful what you wish for. The further Microsoft arrogantly pursues a one-size-fits-all “lock-in” strategy (which not only denies the current or future possibility of business processes that aren’t well-supported by MS software but also turns a blind eye to potential business partners/customers that don’t use MS products), the more their customers will find themselves locked out… and then what would your MCSE be good for?