微软公司的视窗产品确实是改变人类历史的一项伟大产品。尤其是1995年8月24日,Windows95的发布轰动了整个世界。Windows95的出现带给使用者一个完整的图形化操作与使用概念,使人在电脑前的工作过程不那么枯燥乏味,使用电脑的经历也开始变得有趣。它的出现被认为是人类科技史上具有里程碑意义的事件。随后,微软在视窗的研发投入上力度越来越大。到后来又研发出Windows98、Windows2000、WindowsXP,以及后来的Windows vista。
我有幸参与了微软Windows Vista的研发工作。在这个过程中深深地感受到了,我们现在已经使用的微软产品方便、快捷而又智能,但是在科技研发过程中却充满了曲折和困难。尤其是微软的Windows Vista系统,从开始酝酿到最后的发布,用了整整5年的时间,其间甚至经历过一次完全的推翻重写,这个过程,让微软视窗团队的每一个工程师都曾经充满沮丧和煎熬。也许,无论是历史还是科技,这种曲折都是前进的一个组成部分。
2002年初,我加入了Windows Vista的团队,组建了一个新部门,叫做自然互动服务部。盖茨总是对语音、语言、智能型助手式用户界面情有独钟,于是,他要求全公司在这方面的团队都加入我的队伍。
这些团队结合起来后,我们针对盖茨的Windows Vista目标,作了详细的策划。盖茨定位的Windows Vista的三大目标是:(1)支持新语言C#,所有操作系统软件都改用C#来写。因为C#语言的运行较慢,但是开发速度很快,这样微软不会落后于多人参与的开源Linux操作系统的发展。(2)开发WinFS (Windows File System),它是新一代档案系统,可以将每一个文件存成数据库。如果WinFS能够成功,慢慢的,全世界的数据就都存到微软的数据库,不但可以击败Oracle、IBM的数据库,也可以防止别的网络公司(例如Google)掌控这些数据。(3)开发 Avalon——新一代显示系统,让用户在浏览器里看到的网站或服务和传统的应用软件感觉一样。如果某网站的服务和用户端软件看起来一样,用户也更难理解网站服务的优点在什么地方。
这三大目标从战略上来说都非常高明,如果实现了,微软就可以用最强大的武器Windows来攻击Linux、IBM、Oracl、Google,甚至所有的网站。
但是,这三大目标都是前所未有的技术,从来没有大规模得到商业认证,更没有在这么重要的产品中成为关键。不过最严重的是:这三大目标都是极难的技术问题,很可能多几倍的时间也做不出来。因为技术的瓶颈已经到了极限,很多总监看到这个设想就倒吸了几口凉气:“技术难度太高了!C#这么慢,怎么能做操作系统啊?数据库不够快啊?怎么可能当做档案系统?”还有些研究芯片的专家常常看着Intel的芯片计划就开始担忧:“一定是微软习惯Intel芯片加速的速度,才这么乐观。但是每18个月芯片速度就快上一倍的日子已经过去了,别说2004年推出了的这些芯片,照这样,2007年Intel的芯片都不够快啊。”他们没想到的是,Windows Vista真的迟了几乎三年,直到2007年才推出。
这三个团队发愁的时候,几乎所有其他的团队都开始挑战极限!大部分的团队,就像我的团队一样,说服自己做了leap of faith (信仰的飞跃),相信在盖茨的督促之下,这三大目标都可以完成。我们开始用尚未建好的基础着手搭建我们的产品。虽然可以预想到会有重重的困难,但是谁知道伟大的产品是不是就产生在不断挑战极限当中呢?
我和我的团队定了自己的目标:我们要在盖茨规划的基础上,做用户需要的功能。这样我们既能够帮助公司达到战略目标,又可以帮助我们的CEO满足用户第一的价值观,还能帮助公司做出又炫又有用的产品,而且真的能够解决用户问题。我们当时拟定了几个Windows Vista的新功能。
“视窗智能助手”:它在你随时需要帮助的时候,一点就出来,甚至会聪明地自己出来。它会根据别的用户碰到的问题和犯的错误来推测你可能碰到的问题和犯的错误,然后它会一步步地帮你解决问题。
“执行助理”:事先编译好的各种指令,只要用户要求就可以执行。例如:“在离我最近的打印机上打印”,“转发给北京分公司的员工”。
“机器学习”:有些新的指令或工作没有被人工录入,我们增加了机器的学习功能,能够学到这些新的词汇、描述等,让我们的机器助手拥有可以自我学习、补充知识的功能。
“新档案处理”(就是打开任何文件夹看到的):除了现在静态的档案排序外,我们的软件可以聪明地找到任何你的档案,即根据每个文件的数据库内容,聪明地搜索。例如:“王力宏2000年以后所有的MP3音乐”,“老板今年寄给我的邮件”。这些指令发出之后都会被转换成为WinFS的数据库指令,而形成真正的智能数据库。
这些工作都还是非常振奋人心的,我的团队从2001年年中到2004年年底,都非常努力地工作。作为Windows Vista开发过程的亲历者,我体验了其中的无比艰辛。大到一点点成果的突破,小到一个团队的组成建立。
经过了三年的奋力拼搏,微软视窗团队的工程师们都已经疲惫不堪。但是,Windows Vista的成功却似乎遥遥无期。其实灾难早就在酝酿,因为大家在一开始就知道,这个伟大的计划实现起来,其执行难度实在是太大了!
WinFS团队虽然承诺了盖茨提出的三大目标,但是在实际的工作中感到了迷茫。WinFS团队认为他们的任务是“不可能的任务”,但是也不敢告诉盖茨。任何一个接触过Vista团队的人都知道,每次把测试版的Vista搭建出来以后,都发现庞大的系统根本无法运行。
作为一个亲历者,我只能诚实地回忆,当核心团队看到任务无法完成时,他们不再努力工作,只想着如何推卸责任。当时,几乎每一个团队都沉浸在这样的氛围里。Windows95与WindowsXP全球震撼登场的场景似乎已经飘然而去,而成功的渴望已经变成了对失败的恐惧和对项目的怀疑。我的团队也多次怀疑Vista 能否照预期的时间表推出,另外,还有种种我们团队的工作需要依靠别人的项目的实现才能完成(这称做dependency)。这个时候,团队里的懈怠氛围就更加浓重了。这个时候,我总是告诉团队专注自己的工作,不要去乱猜别人的schedule(时间表)。慢慢的,整个公司都弥漫着一片“皇帝的新衣”的气氛,士气非常低落。