谢谢所有给我们发送的反馈的人们。这些反馈中的很大一部分都是积极正面的,对此我们表示感谢。我正在尽我所能的回复这些邮件、和团队里的成员进行讨论。大家都在畅所欲言地分享各具体方面上的看法、愿望和请求。我喜欢收到这些邮件,也很喜欢阅读大家的评论。这真是棒极了。我只是想让大家知道我并不可能回复每一封来信。我们将从建议我们该添加什么样文章的角度来看这些邮件和评论——我们知道将来我们会有大量的讨论,我们也非常高兴能够开始了。

在这篇帖子里,我希望继续“Win7团队”那篇文章所开启的话题——这里我们将有关团队的内容扩展一下,给大家带来更多有关我们对发布版本计划的讨论。这个有关主(major)或者次(minor)发布版本的对话,与我们开始计划时我和我的老板之间的对话非常相像:-)

当我们开始计划这个发布版本的时候,有些人可能会想我们所要决定的第一件事情就是Windows 7(client)是否要成为一个“主发布版本”。我将它双引号引起来是因为,这其实不是一件由你所决定的事情,它也不是一个具有简单答案的事情。发布版本的规模和功能特性本身以及你如何看待这些功能特性都有关。有人甚至会问,被称作为一个主发布版本是否是一种褒扬。当工程师开始计划一个产品时,我们将决定我们的开发队伍会有多少比例的人将为这个发布版本工作以及整个的日程计划——用户们将产品拿在手上后他们每个人自己将决定这个版本是否是“主发布版本”,当然我们自己也会有一个自己的看法。在服务器博客(server blog)里,我们讨论了我们日程表,我们也分享了对于Windows 7客户端和服务器发布版本规模的看法。

我们的目标是打造一个优异的Windows 7发布版本。

对于所有的客户来说,他们总有一种看法,认为一个主发布版本就是真正拥有为准备的功能特性的版本。而一个次发布版本就是一个对来说没有任何新东西的版本。如果这样,在计划一个主发布版本的时候就会非常简单——只要确保这个版本包含了适合所有人的功能特性(并且为了保证性能,它不能包含任何额外的功能,即使其他人想要这些功能)!作为工程师,我们都知道这样的设计过程实际是不可能的,特别是时常我们会发现两个客户要求功能特性完全相反。实际上,当我写这篇帖子的时候,我连收到两份邮件,其中的一份说“没有任何人会去关心触摸屏这种没有意义的东西”,而另一份说“(Win 7需要)更多高级/健壮的‘触摸’功能”。当你收到这些大家主动提出的零散建议时,你会看出它们会意见相左。我相信大家也能从这个博客的评论中看出这一点。

让我们以一组(但是不代表全部)不同用户的角度来看看发布版本规模:终端用户、开发人员、合作伙伴、IT专业人员和有影响的人士(influential

终端用户从判断一个发布版本将有多大的角度来看,是最简单直接的。对于一位终端用户来说,如果他们希望出去购买一份升级版本或者买台新的PC,那么这个版本就是一个了不起的家伙。我们就会将其称为主发布版本。看起来足够简单,而且主发布版本对所有人来说都是好东西。另一方面,我们也可以想象,一个主发布版本确实非常酷而且大家都希望买来用,但是他们也希望使用他们现有的PC,而这版本可能会需要更多的内存、可能还需要目前没有的升级驱动或是需要某些特别的硬件使其能充分发挥功能。这样看起来一个主发布版本又有点因此失去点光芒。当然,我们都知道,大家真正需要的是让它运行在他们所想要的硬件上——那么它将使一个他们想要的伟大产品(不管它是主版本还是次版本)。

开发人员通过不同的角度看待一个发布版本。很明显,对于开发人员来说一个版本是不是主发布版在于它是否具有新的API以及他们的软件能利用到的新功能——同样的简单明了。也有可能是这样的情况,上一个版本有了很多的新API,大家只是刚刚熟悉了使用它们,所以这时他们真正希望的是能完善这些API并且提高性能。这时有人可能会觉得这第一个版本是主版本,第二个是次版本。但是如果你看看软件产品的历史,经常是这些“次”版本最后成为了主版本——Windows 3.1,Office 4.2,或甚至是Windows XP SP2。每一个这样的例子里,对于开发者来说他们的目标是成为“次”版本,但是在市场的眼里他们却是“主”版本。开发人员希望使用新API的原因是由于要区别开他们的产品,或者是他们能集中精力在具体领域里的专业知识上,而不是为了调用新API而调用它们。从这种角度来说,如果一个版本能将ISV的时间解放出来,让他们能集中精力在那些对于他们来说更主要的事情上,因此他们乐意在新API上赌一把——这个版本会就可能是一个主版本。

合作伙伴代表了这样的一组人群,他们制造PC,硬件和其他我们认为Windows是系统中一分子的基础设施。合作伙伴倾向于以创造机会的角度来看待一个主发布版本,而一个次发布版本就是一个有很多改动的版本,这样它就创造了提供新硬件和基础设施给用户的机会。另一方面,与之前版本的不兼容性如果意味着合作伙伴需要停下来并且重新审视之前的工作以满足Windows新发布版本要求的话,那么它可能会被认为不那么的好。如果由于某些原因,他们决定不去做这样的工作,那么这个发布版本就会被认为是一个次版本,因为它缺乏业界的支持。所以我们再次看到,大的改变可以通过主或者次发布版本的角度来看待。

IT专业人员因其工作特性通常被划归为保守人士,对于改变也就通常持有保守看法。由于其角色的业务本质,对于任何软件产品的评估都在于投资的回报。所以对于IT专业人员来说,一个主发布版本会是一个能带来显著的业务价值的版本。这种业务价值可以被定义为例如对软件部署和管理的主要投资。然而对于终端用户或是开发人员来说,可能对这些同样的功能特性是否成为主发布版本或者次发布版本一部分并不感兴趣。

有影响的人士是所有的那些从事为我们所开发的软件提供建议、分析和观点的业务的人士。这些人通常以“变化”作为尺度来看待一个发布版本。大的变化就等同于主发布版本。一个大的变化可以是“重新构架”,例如我们从Windows 9x到Windows 2000的转变所看到的——即使这些产品看起来是一样的但是外壳之下却有很多可以谈论的变化。所以对于测评人员和分析师来说这绝对是一个主发布版本。大的变化也可以是用户界面上的变化,因为这可以引来大量的讨论而且也可以很容易看到所有的变化。不管是哪一种,这种对主发布版本的定义也可以被看作是不那么好的特性。重新构架意味着潜在的不兼容性。新的用户界面也意味着重新学习以及远离自己所熟悉的东西。

我们已经看到大量的评论,我收到了很多的邮件讲到重新构架Windows是一个主发布发本的标志。我们也接收到很多反馈提到一个主发布版本就是不提供对老版本支持的版本。如果让我来总结一下就是,大家通常觉得如果我们照这样的方式做的话将会带来其他的重要好处——重新构架将获得更好的性能,和老版本划清界线可以使用更少的内存。和这样的观点争论总是挺棘手的,因为我们在将一个已知的状态和一个我们正在改善的状态做比较,但是我们还不知道我们可能会引进什么、弄坏什么或者哪些不会被改善。所以,与其定义一个与实现相关的主发布版本,我想定义如何算是成功而���管使用了什么样的实现更有意义一些。我们将来一定还是会继续这方面的讨论——这里可以有很多的交流。

其中的关键一直都是平衡。如果我们准备好足够多的人力的话,我们可以为所有的用户带来大的变化。如果小而影响大的变化是在某个正确时间点的正确选择,我们将会加入这些变化,他们将来也会作为一个主发布版本记入历史。

我们已经谈论了日程和我们组织团队的方式,那么大家应该对这个项目的“输入”有些认识了。如果我们认真地倾听并且看对了努力的方向,那么每一类的客户都将找到觉得产品值得的部分。如果我们在产品的沟通上做好了有效的工作,那么即使那些可能成为“问题”的部分,如果在业界更广的范围来看,也会是一部分人受益匪浅之时总体上所有人都受益的情形。

以我们的角度来看,为了打造Windows 7客户端操作系统,我们动用了所有的工程团队并且制定了重要的日程计划。以任何的定义来说这都使它成为一个重要的产品。我们希望Windows 7成为一个优异的发布版本。

我希望这能帮助我们认清,当为每种类型的客户决定版本该有多大时,这个观点将是唯一标准。

--Steven

(译者注:最近由于项目较紧而没有及时地翻译博客的文章,希望大家谅解。随后我们将会陆续将未翻译的文章补上。—— 赵科平)