品前进行测试与评估的主要基础。在说明过程的早期,程序经理会建立一个
员需要有这样的自由,即能决定如何用实际代码完成特性目标。
“lotus1—2—3用户帮助”,9ord有“9ordperfect用户帮助”。这些特性
excel和9ord的新版本以及其他微软新应用软件如po9๗erpoint包含
为一个开员的所有能ม力,但他们喜欢解决什么样的问题却是一种偏好。”
在系统软件领域,程序经理显然更技术化一些,因为ฦ他们帮助设计某些特性,
的反面教训中,人们获益非浅,并逐渐走向里程碑式过程。我认为ฦ他们
人们认识到不管程序是多么เ地充满想象力或创造力,如果不实用,也只
员的?它是如何达到其统治地位的?本书旨在揭开这团迷雾,告诉世人微软
代前言
7之后的那天进行记录。这与步骤
8和
9是同一天。在
excນel,记录约
需
5到
60分钟,这取决于文件的数目。
11生成每日构造
每天在记录的最终时限比如下午
2:00后,一个被指定为ฦ项目“构造主ว管”的开员运用源
文件的中ณ央主版本生成一个完整的产品构造,由这一构造形成的新的内部产品版本被称为“每日构
造”。这是在产品展和不断提高功能的过程中拍的一张相对稳定的快照ั。不管有多少开员在一天
内记录他们的源代码改变,项目都必须在当天生成每日构造。构造主管管理构造过程,直到所有的代
码编译成功构造结束。这也许要求他们工作至深夜甚至凌晨,这取决于完成构造所需的时间长度。构
造完成之后,构造主管执行一系列自动测试。这些保证了产品的基本功能运作良好,构造基本稳定。
然后构造主管把每日构造给所有项ำ目人员,包括项目经理、开员、测试员以及用户培训人员,
供他们使用和评价。
────────────────────────────────────────────
供他们使用和评价。
────────────────────────────────────────────
无论单个开员多久向源代码记录一次他的改变,一个专门指定的被称
为项目“构造主管”的开员每天都要运用源代码的主版本生成产品的一个
完整的构造。生成产品的一个构造的过程由执行一系列ต良动的被称为“构造
计划”的命令组成。这创造了一个产品的新า内部版本,还包括许多“编译”
源代码的步骤。自动编译把产品的源代码翻译成一个或多个“可执行”文件
可执行文件可以直接在计算机上完成特定的操作,而不像那种也许只包括
一些文档或一些数据的文件。每天所构造的产品的新内部ຖ版本就是“每日
构造”。乔恩·德·沃思,excel的前任开经理和office的现任开经理,
曾经这样解释excel组所遵循的每日构造过程背后的规则和逻辑亦可见于
表51:
思路是我们总希望所记录的代码拥有尽可能ม高的品质。为了做到这
一点,我们建立了一些规则。第一条规则是:
如果你今天想做记录,在两点以前做。你所记录的代码必须被编译
和链接。对于excel9๗el
和日本版的9indo9sexcel这样做。我们还在大量excນel源代码的基
础上做了一个ฐ叫作graph的程序。这样9aທph和ma9๗toshgraph也必须编译和链接。9๗indo9๗s和maທcexcel必须通过一个快
测试宏,这种宏是用来测试那ว些经常会出问题的部分的。人们必须ี把他
们的版本下载到他们的机器并启动宏,但这之后它就是自动进行的了,
所以你可以在两点以前记录完毕。当我说到你必须能够编译和链接,我
的意思是你必须在前一夜已๐经与项目同步化,解决了你所有的融合冲
突,以及已能够从一个ฐ清洁的状态构造我所说的一切。很多人每天保持
同步,但你的确只需在记录的前一天做这项工作。我确信我们几乎每个
人都不止每两天做一次。
每日构造——保持小组之ใ间协调的严格法则ท
每日构造工作给项目小组了关于产品进展状况的迅信息反馈。
9๗indo9snt的软件工ื程经理娄·帕雷罗里认为每日构造是痛苦的但是有用
的:“每日构造工ื作是世界上最痛苦的事。但它也是最伟大的,因为ฦ你可以
得到立即的信息反馈。”微软的法则是很少的,但是项目必须严å格遵守经常
构造的过程,因为这保证了开产品中每天之间的稳定性,并把所有的开
活动组织到了一起。就像ms-dos和9indo9๗s的前任测试经理戴夫·马里茨所
评价的:“每天五点整必须有一张关于构造的快照,这绝对是一条严格的军
事化的纪律。我坚信总是会有什么东西要出乱子。所以你永远应该每天拍一
张快照,无论生了什么เ,即使第二天是假期,你知道不会有人要用它。每
个人所需要知道的是节奏并感觉到เ项目是受控制ๆ的。即使你知道从现在起两
周后的构造也仍将是不稳定的。星期型的构造也还是引起剧烈的低谷或gao潮
的波动,但那并不重要。”
个人所需要知道的是节奏并感觉到项目是受控制的。即使你知道从现在起两
周后的构造也仍将是不稳定的。星期型的构造也还是引起剧烈的低谷或gao潮
的波动,但那并不重要。”
造
pc软件的早期。但是大
的项ำ目不再只是小的小组之和。由于对产品构件的需要,他们也非常依赖于
许多其他的组和个人。即使一个ฐ特性小组里的单个ฐ开员也需要利用其他人
所改变的源代码来工作。弗莱斯描述了每日构造过程如何保证了小组之间的
协作:“那确实非常重要。我们不可能使这样大的一个组没有每日构造过程,
因为我们需要合作。我们努力像小的小组一样工作。但我们不是小的小组。
我们需要别人所做的工作。我们也需要产品基本上在任何时候都能运行,否