迭代开发

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章

什么是迭代开发

“要打造完美的业务解决方案,就必须采用迭代和增量开发方法。”

引自Dynamic systems Development Methodology中的第五原则:“动态系统开发方法论”

(本书由Addison-Wesley于1997年出版,Jennifer Stapleton著)

前言中曾提到过,为了能够在变幻莫测的现实环境中以可预期方式交付结果,“迭代”方法应运而生。“不确定性”将持续存在,我们需要采用一种与之抗衡的技术,这种技术就是迭代和增量开发,借助这种技术赋予的力量,我们能够克服不确定性,或至少能系统降低不确定性,使其处于可控范围,以达到预期的目标。

那么,迭代和增量开发过程有什么特点?按迭代和增量方式开发项目意味着什么?《柯林斯现代英语词典》给词语“迭代(iterate)”和“增量(incremental)”提供的定义如下:迭代——反复说念和执行动作。

增量——(1)增加量;(2)变大、增加。

假如以上术语沿用最常用的词语含义,那么通过重复做事情的迭代和以增量方式处理项目,以达到创建规模逐渐增大和更趋完整的产品意味着什么?

本章将通过分析项目及其团队成员以迭代和增量方式开展工作的含义,来回答上述问题。将站在最具代表性的参与者(项目经理、开发人员和客户等)的角度审视迭代原理,由此澄清和阐明迭代和增量式开发的真义。

1.1 迭代与科学方法

人们会通过很多活动来开发解决方案。我们需要了解问题、收集潜在解决方案的要求,

4

第Ⅰ部分迭代项目管理原理

将这些要求转化为设计,构建解决方案,最后测试解决方案。这样的顺序十分常见,通常也是正确的。不过,在尝试扩大规模时(即严格按顺序收集全部要求,而后完成全部设计,再去进行全面开发,最后进行全面测试),问题会接二连三地冒出来。

相反,我们更需要像科学家那样去工作。现代科学方法遵循亲身观察的原则:先提出“理论”,然后设计和执行相关的实验来测试理论。会根据测试结果,来推翻理论或确认理论的正确性。

如何在软件开发领域应用此方法呢?在某种意义上,软件开发项目的很多方面是“理论”,更准确地讲是需要予以评估的“断言”。“计划”本身由多个描述任务用时的断言组成。

“要求”是描述适当解决方案的特点的断言。不能仅凭某些利益相关方或主题专家的判断来确定要求是否有效。甚至,我们需要评估这些要求,判断它们是否针对当前问题提出了合理的解决方案。

此推理引导我们采用这样一种软件开发风格:通过设计和开发多个可论证的系统版本,来反复验证和评估计划的断言;会客观地评估每一版本确认它是否降低了项目风险;

在前一版本的基础之上构建新的版本,直至完成解决方案。

通常更多地将这种开发风格定义为迭代和增量开发,它具有以下特点:

●迭代运用一组活动来评估一组断言、消除一组风险、完成一组开发目标,并逐步生

成和提炼有效的解决方案。

●之所以称为“迭代”,是因为它通过反复运用核心开发活动,不断增进对问题的理

解程度、完善解决方案的定义和促进实现解决方案。

●之所以称为“增量”,是因为每经历一个迭代循环,都可以增进对问题的了解,增

强解决方案的能力。

●通过连续多次应用迭代循环来打造一个项目。

真正有效的开发活动必须兼具迭代和增量特点。如果开发活动仅有迭代特点,没有增量特点,那么,虽然可以一次次地迭代执行活动,却不能朝着项目既定目标前进;换句话说,不能降低风险,也不能逐步构建解决方案。循序渐进地降低风险和稳步迈向项目目标是迭代和增量开发的品质保证。为简单起见,本书常将“迭代和增量式”开发简称为“迭代化”开发。

1.2 迭代的含义

迭代的定义如下。

迭代:独立的微型项目,有明确定义的输出,即一个稳定的、集成的且通过测试的发布版本。

一个迭代包含一组特定的活动,这些活动根据迭代计划和一组客观、可度量的评估标准执行。发布版本分为内部和外部两类。

下面将详细探究此定义的三个方面。

第1章什么是迭代开发 5 1.2.1 迭代是一个独立的微型项目

软件开发项目通过将一组用户要求转化为全新的或经更改的软件产品,来生成软件产

品的新发布版本。采用迭代和增量方法时,通过将完整项目分成多个微型项目(每个微型项

目称作一个迭代),渐近地、逐步地完成此过程。

每个迭代都包含软件开发项目的全部要素:计划、应用核心软件开发原则(需求、分析、

设计、实施1和测试)以及准备发布。但迭代并非完全独立的实体,而是大项目的一小部分。

归属于大项目对它们而言十分重要。之所以称其为“微型项目(mini-project)”,是因为利益

相关方并未要求开发此项目。

在开发团队看来,每个迭代都是一个独立项目。这种十分高效的方法使开发团队能全

力满足直接目标,并确保频繁和客观地评估生成的结果。管理团队需要确保迭代目标是更

宏大的总目标的可信赖部分。

管理团队应该确保每个迭代都满足以下要求,以便强化这种运作模式:

●清晰的目标——必须清晰定义每次迭代的目标,并获得所有项目参与方的理解和认

同。这样才能使大家拧成一股绳。

●可度量的评估标准——为使目标成为团队的一致主题,必须为目标配备可度量评估

标准,以便客观评估迭代成效。

●全心投入的团队——团队必须坚定不移地为实现迭代目标而并肩工作:团队共担成

败责任,每个成员都要按照安排做好每一件事,以达成设定的迭代目标。所有工

作都是为了实现迭代目标。

●进度表——与在迭代目标上达成共识一样,管理层必须协商制定进度表,并了解进

度表对整个项目计划的影响。制定迭代进度表时,只需设置迭代起止日期,并了

解如何使迭代融入整体项目计划。

●客观评估——在迭代将近尾声时,必须对照迭代目标和评估标准客观地评估生成的

结果。在迭代期间连续执行评估,在结束迭代时进行总结。如果不做客观评估,

将无法判断迭代的成败,也无法有效地控制项目。

做好上述这些事情,可以确保明确定义的可度量迭代结果可与项目的总体成功紧密联

系在一起。

1.2.2 迭代有一组独特的活动

每个迭代都具有唯一性。它采用一组独特的活动以便生成一个独特的产品版本,该版

本客观地证明迭代目标已经被实现。

由于这个独特的要求,每次迭代前都需要编写关于本次迭代的计划。迭代计划包括团

队为实现迭代目标必须完成的所有活动的详情。项目要求的活动级计划的数量和风格取决

相关文档
最新文档