在微软与同行的竞争过程中,产品的完整性是微软不计代价而追求的一个策略。所谓完整性,就是为不同硬件环境、不同操作系统设计相同的软件,为不同的语言设计相同的界面,向不同的市场同时发布相同的产品。这曾被微软的内部人员称为一举出击的拳头。
对于微软的竞争性策略来说,还有一点也是非常重要的,即不仅对世界上不同的市场,也对不同的硬件平台同时准备好每种产品的不同版本。项目在资源分配上权衡,以期最大化不同产品版本之间用来进行调试、最终发送、服务于不同的硬件和操作系统平台以及服务于不同的最终用户语言的可共享的代码的数量。这种共享使得不同项目可以同时开发和测试所有这些版本。例如Excel组构造了Excel 4.0的30个不同版本,以适应5个不同的语言区——英语、德语、法语、西班牙语和远东语区(日语、汉语以及韩浯),适应“视窗”和Macintosh操作平台,并且同时有产出(或出品)版本和“调试”版本(它包括了测试和发现错误的额外代码)服务于每一个语言/平台组合。
Excel为项目怎样准备好推出这些不同的版本提供了很好的范例。在一个项目中,开发员把产品的语言专用部分(如错误信息的内容以及对话部分)分离成一个单独的文件。这种分离使得他们可以通过仅仅翻译一个单独文件的内容,就把这些部分译成外语了;微软把这种翻译过程称为“本地化”。于是开发员们可以集中注意力于代码中与语言无关的、在所有语言版本中都可以共享的部分。马克·奥尔森对这种独立于语言的代码与产品中依赖于语言的部分的分离评论道:“英语版本是我们花时间最多的版本。我们产品中的所有语言专用的部分,就像所有被本地化或者被翻译的用户界面一样,被组成了一个独立的DLL(动态链接库文件),我们称之为‘语言DLL’。所以我们只需构造一个Excel.exe,然后为每种语言配一个DLL。法语版本的代码与英语版本是一样的,不同的用户界面的特色被归入DLL了。”
对依赖于语言的本地化文件的翻译,在开发进程相当靠后的阶段进行,这时用户界面已经稳定了。项目希望特性首先要稳定,这样在特性改变时,他们无需翻译用户界面的内容。对本地化文件的真正的翻译,其实是在项目马上要发布英语版本之前或刚刚发布完之后进行的。依赖于语言的本地化文件与独立于语言的代码的分离,使得测试员可以通过主要集中测试一种国际产品的本地化部分而更为有效地利用他们的时间。
同时构造一种产品的多个版本的真正好处,在于微软可以在很短的时间内向不同的平台和市场推出各自的产品版本。公司的目的是对每一种主要产品在每一个主要的平台上和在每一种语言的市场上都拥有同时的出品;这意味着在大约30天内发布完各种版本。在很短的时间间隔内发布不同的版本对于成功营销产品而言是至关重要的。当国外顾客听说在美国已有一种新版本上市时,他们就会停止购买产品的旧版本。
在同时推出多版本的同一软件的问题上,微软给予了足够的重视,这一点使莲花公司的产品无法竞争。这样做的好处还体现在使用户有了一个感觉,那就是微软的产品是无处不在的,掌握了微软的产品,就会有许多使用它的机会。相比而论,UNIX系统的软件的使用者就没有这样的感觉。
然而,做到这一点不仅仅需要对这个问题的认识,还需要足够的人力和资金。微软能取得今天的成就,就是它不仅仅认识到一个问题的重要性,而且愿意对这种重要性投资,愿意为此付出人力的代价,愿意承担风险。
许多软件公司其实并不差,也并非就不是微软的对手,但最终的结局在很大程度上取决于他们的具体做法。敢做就有可能会成功,微软就是这样。