员对它的认识。提高其在更加先进的公司软件系统方แ面的市。微软会以优惠价给,这与步骤
8和
9๗,只用了一个人一周的
如果消费者愿意一次性获得这些能力,在
一个非常受欢迎的特性,一个ฐ特性只需要一个ฐ人工ื作的例子是为9ord增加字体,在
excel。记录约
需
5到เ
60分钟,这样的人实在是凤毛麟角。他进一步阐述说:
者:其一,你的技术才能应当过你的同事或将要成为ฦ你手下的那ว批
第七个战略实际上是我们在考察了微软自
.....
7๕之ใ后的那天进行记录。excel的“自动汇总”特性。而不是解,然而奥尔森认识到测
在微软&,这取决于文件的数目。
11生成每日构造
每天在记录的最终时限比如下午
2:一,00后,由这一构造形成的新า的内部产品版本被称为“每日构
造”。这是在产品展和不断提高功能的过程中拍的一张相对稳定的快照。项目都必须在当天生成每日构造,不管有多少开员在一天
内。构造主ว管管理构造过程,直到所有的代
码编译成功构造结束。这也许要求他们工作至深夜甚至凌晨,这取决于完成构造所需的时间长度。构
造完成之后,构造主管执行一系列自动测试。这些保证了产品的基本功能运作良好,构造基本稳定。
然后构造主管把每日构造给所有项ำ目人员,包括项目经理、开员、测试员以及用户培训人员,
供他们使用和评价。
────────────────────────────────────────────
供他们使用和评价。
────────────────────────────────────────────
无论单个开员多久向源代码记录一次他的改变,一个ฐ专门指定的被称
为项目“构造主管”的开员每天都要运用源代码的主版本生成产品的一个
完整的构造。生成产品的一个构造的过程由执行一系列良动的被称为“构造
计划”的命令组成。这创造了一个ฐ产品的新内部版本,还包括许多“编译”
源代码的步骤。自动编译把产品的源代码翻译成一个或多个“可执行”文件
可执行文件可以直接在计算机上完成特定的操作,而不像那种也许只包括
一些文档或一些数据的文件。每天所构造的产品的新内部版本就是“每日
构造”。乔恩·德·沃思,excນel的前任开经理和office的现任开经理,
曾经这样解释excel组所遵循的每日构造过程背后的规则和逻辑亦可见于
表51้:
思路是我们总希望所记录的代码拥有尽可能高的品质。为了做到这
一点,我们建立了一些规则ท。第一条规则是:
如果你今天想做记录,在两点以前做。你所记录的代码必须被编译
和链接。对于excນel9๗el
和日本版的9indo9๗sexcນel这样做。我们还在大量excel源代码的基
础上做了一个叫作graທph的程序。这样9๗aph和ma9toshgraph也必须编译和链接。9indo9s和macນexcel必须通过一个快
测试宏,这种宏是用来测试那ว些经常会出问题的部ຖ分的。人们必须把他
们的版本下载到เ他们的机器并启动宏,但这之后它就是自动进行的了,
所以你可以在两点以前记录完毕。当我说到เ你必须能够编译和链接,我
的意思是你必须ี在前一夜已经与项目同步化,解决了你所有的融合冲
突,以及已能够从一个清洁的状态构造我所说的一切。很多人每天保持
同步,但你的确只需在记录的前一天做这项工ื作。我确信我们几乎ๆ每个
人都不止每两天做一次。
每日构造——保持小组之间协调的严格法则ท
每日构造工作给项目小组了关于产品进展状况的迅信息反馈。
9indo9๗snt的软件工程经理娄·帕雷罗里认为每日构造是痛苦的但是有用
的:“每日构造工ื作是世界ศ上最痛苦的事。但它也是最伟大的,因为ฦ你可以
得到立即的信息反馈。”微软的法则是很少的,但是项目必须严格遵守经常
构造的过程,因为这保证了开产品中每天之间的稳定性,并把所有的开
活动组织到เ了一起。就像ms-dos和9indo9s的前任测试经理戴夫·马里茨所
评价的:“每天五点整必须ี有一张关于构造的快照,这绝对是一条严å格的军
事化的纪律。我坚信总是会有什么东西要出乱子。所以你永远应该每天拍一
张快照,无论生了什么เ,即使第二天是假期,你知道不会有人要用它。每
个人所需要知道的是节奏并感觉到项ำ目是受控制的。即使你知道从现在起两
周后的构造也仍将是不稳定的。星期型的构造也还是引起剧ຕ烈的低谷或gao潮
的波动,但那并不重要。”
个人所需要知道的是节奏并感觉到项目是受控制的。即使你知道从现在起两
周后的构造也仍将是不稳定的。星期型的构造也还是引起剧烈的低谷或gaທo潮
的波动,但那并不重要。”
造
pc软件的早期。但是大
的项目不再只是小的小组之ใ和。由于对产品构件的需要,他们也非常依赖于
许多其他的组和个人。即使一个特性小组里的单个开员也需要利用其他人
所改变的源代码来工作。弗莱斯描述了每日构造过程如何保证了小组之ใ间的
协作:“那确实非常重要。我们不可能使这样大的一个组没有每日构造过程,
因为我们需要合作。我们努力像小的小组一样工ื作。但我们不是小的小组。
我们需要别ี人所做的工作。我们也需要产品基本上在任何时候都能运行,否
则它会干扰你的领域。你不能让从事绘图工作的人暂停打字工作,否则没有
人能打字,那ว么เ他们就无法打字以进入他们所要从事的领域。”
每日构造过程使得许多项目成员可以像一个整体一样地工作,因为它提
供了一种代码控制机制,可以几乎ๆ一直产生出产品的能ม工作的一个版本。为ฦ
了追踪代码的改变以及现冲突,微软使用一种内部ຖ开的被称为
slm的工ื
具作为源代码库管理程序微软人充满情意地叫它作“slime”。微软项目
在采用自动测试的同时也使用
slm来帮助保证所开产品的持续性和稳定
性。就像弗莱斯ั所概括的:“我们依赖于广度测试或快测试来做同样的事。