首页 > 代码库 > 步子大了,容易扯淡

步子大了,容易扯淡

  最近在看李开复的《世界因你不同》。书中提到了他在微软时开发windows vista的事情。以下是原文:

微软公司的视窗产品确实是改变人类历史的一项伟大产品。尤其是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(时间表)。慢慢的,整个公司都弥漫着一片“皇帝的新衣”的气氛,士气非常低落

  如果成功了,那vista绝对是操作系统历史上一个划时代的作品,一个伟大的里程碑。可惜后来全都推翻重写,所有计划中的功能仅仅完成了1/10。最后在厂商,用户的眼中沦落成一个“过度产品”。这算是一个【大力的悲剧】。vista之前的设计太超前了,超过了这个时代的技术所能承受的范围。它不是一点一点的进行突破,进行革新。它太超前了,步子迈的太大,最后毁了自己。

  这就让我想到,我们设计产品,设计软件的时候,一定要考量自己的能力,考量团队的能力。不要一下子就想做出超出团队能力太多的产品。我觉得google的做法就值得推崇,先有一个简易的版本,在后续的升级中不断的改进,提升,加入新功能。循序渐进,逐步提升,不是一上来就朝着最完美的地方前进。不要急功近利。

  同样的悲剧,我还想到【铱星计划】:

铱星如今被认为是个人卫星通信的里程碑之作,相比于传统运行在35768千米的GEO上的地球同步通信卫星来说,铱星运行的780千米LEO轨道要低很多,这是铱星的一个创新之处。
铱星的另一个创新之处在于通过星群和星座之间的协作处理,不需要单独的地面站,每个地面终端都可以与卫星直接联络,因而有良好的抗灾抗天候特性,并且由于其卫星数量较多,系统的容量也相对于之前的系统更大。
但铱星投入运营之际遇上了GSM,由于GSM系统的覆盖率逐步提高,国际漫游业务的逐渐普遍,GSM在地面上的吸引力更大。再加上铱星本身昂贵的资费和庞大且不便利的终端也让使用者感到非常不方便,导致铱星在商业上是很失败的,只有少部分人有这样的需求,也拖垮了摩托罗拉。

所以说「一流企业卖大楼,二流企业做标准,三流企业造卫星」,但不可否认的是,铱星作为卫星通信中重要的里程碑,其中很多的技术和想法对于乃至今日的通信依然是利远大于弊的,譬如星上处理、星间链路、并且解决了卫星网与地面蜂窝网以及PSTN的协议交换问题。

铱星是世界上第一个满足5W的系统,因而将其称之为辉煌的失败似乎并不过分。

  铱星计划即使放到现在来说,也是一个很伟大的工程。它太超前了,超过了这个时代所能承受的范围。

  道哥黑板报前两天的一篇文章《先有鸡还是先有蛋?》提出了一个问题:先有结果,再设定目标?还是因为有了目标,所以得出了结果?

  我认为我们需要仔细的校准我们的目标,如果一味的制定高目标,完成不了的目标,是不是又会出现【大跃进】的可能?

步子大了,容易扯淡