win vista 还能用吗,Windows2000还能用吗( 二 )


我的职责范围从Windows的安全技术到杀毒产品,再到安全营销的附加解决方案,以及安全补丁等紧急响应 。病毒和蠕虫给Windows带来了巨大的打击,让微软在市场上建立的安全软件的声誉毁于一旦 。在Vista发布之后,以及Windows 7开发之前的这段时间里,我管理着Windows的所有核心开发事务 。这意味着所有技术开发全都在后台运行,客户端和服务器团队都可以使用 。
在Vista发布后,Windows各级团队由开发、测试和项目管理三方负责组织,所以我最后跟两人一起负责,我管理开发团队,他们分别管理测试和项目管理团队 。Windows团队曾经尝试过许多大规模和有野心的项目,不过这些项目在几年后往往被放弃或重新规划 。更早的例子是雄心勃勃的Cairo项目,它最终失败了,最后有些残存的理念传承至Windows 2000中 。
问题1:更新迭代的时长过久在我看来,Windows最大的问题在于每个版本的时长 。平均而言,一个版本从开始到完成大约需要3年时间,但“新”代码的开发时间只有大约6到9个月 。其余时间都用于集成、测试之类的——每个阶段持续几个月 。一些项目的核心开发时间要超过6个月,所以它们就齐头并进,最后在准备就绪时与主代码库合并 。
这意味着主干几乎总是支离破碎的,因为大量的功能被集成或替换掉了 。在Windows 7发布期间,为了确保有一个持续健康和功能正常的代码库,我们对其进行了更严格的控制,但之前发布的版本都有好几个月的不稳定期 。开发过程总体来说还是比较混乱的,开发人员会说服自己和他人他们的代码优于别的项目,他们最后能及时优化仅剩的一些小部分,这样一来即使是半成品,这也是一个可以发布的版本 。
3年的发布周期意味着我们很少知道当我们发布新版本时,外部的竞争环境会是什么样子的 。错过一场发布意味着项目取消,但一个团队或高管就是不能让自己放弃 。我个人也负责过一些这样的项目 。问题2:团队庞大,进度不一致且最终测试难考虑到每个团队都想把自己的东西夹在新版本中,所以他们通常会在与其他组件的集成、用户界面、端间测试以及升级等繁琐而乏味的问题上浪费时间,却忽略了棘手的问题 。
反过来,这意味着一些团队很快变成了别人的瓶颈,因为每个人都在为最后一刻完成用户界面设计或升级测试而努力 。在任何给定的时间点,都有多个主要的版本处于开发状态 。随着时间的推移,不同的团队负责不同情况下的代码库开发导致了马太效应——由于某种原因落后的团队往往会更落后 。当一个项目接近完成时,项目经理将开始关注下一个版本的需求,而“健康”(富有)团队的开发人员将开始执行新的代码,但是组织的大部分(穷人)仍然要应用当前版本 。
特别是测试团队很少从旧版本中解放出来,直到它发布,所以新代码在项目开始时并没有经过彻底的测试,因为“不健康”的团队总是落后,对当前版本进行最后的修改,然后进一步落后 。这些团队通常是士气最低、耗时最高的团队,这意味着工程师们接手的是他们没有编写过、因而也不理解的代码 。问题3:与软件供应商关于安全问题的矛盾在Vista/Longhorn项目的大部分时间里,我负责的板块是存储和文件系统技术,也就是说我参与了WinFS的工作,尽管它主要是由SQL数据库团队(Windows团队的一个姐妹组织)发起的 。
比尔·盖茨甚至亲自参与,甚至被戏称为“WinFS”项目经理 。不过事后看来,显然谷歌轻松地解决了为非结构化数据提供无缝且快速搜索的问题 。不过他们这样做是为了整个互联网,而不仅仅是为了你的磁盘容量 。当Longhorn项目被取消,Vista残存的一鳞半爪匆匆组装在一起时,WinFS项目就已经被否决了 。SQL团队将它作为一个独立的项目进行了几年 。

推荐阅读