编辑: sunny爹 | 2014-09-30 |
2 迭代确实是临时的、延续两个到六个星期、
3 并在迭代的可论证的发布中生产出独特的产品. ibm.com/developerWorks/cn/ developerWorks? 什么是迭代开发? 第3页,共7最简单地说,迭代计划过程是协定、执行和评估的循环: 1. 对迭代的目标,包括评估标准、时间表和限制,与团队达成协议. 2. 对团队将如何实现目标的计划达成协议. 3. 执行计划. 4. 根据最初的目标集和评估标准来评估团队的成就. 5. 从整体上评估迭代结果对项目的影响. 6. 开始下一次迭代. 从管理人员的观点出发,这些活动在整个项目中会不断地发生,如图 3-2 所示,并形成基本模式 (可以按照这样的模式对关于迭代的工作进行计划和管理). 图3-2:从管理观点考虑的迭代 管理人员还从整体上为项目提出方针,并组织工作以便每次迭代都逐渐地对解决方案的交付做出贡 献.要做到这点,他们必须从整体上计划、执行和评估项目,并将项目作为一系列连续的迭代进行 组织.管理过程的两层之间的关系如图 3-3 所示. developerWorks? ibm.com/developerWorks/cn/ 什么是迭代开发? 第4页,共7图3-3:整体的且迭代的项目管理过程 迭代和增量项目的计划、监控、控制及管理在以下方面,从根本上异于非迭代的项目: ?? 项目团队交互的动态性 ?? 里程碑的特性 ?? 对依赖的处理 ?? 度量和测度 ?? 必要的资源 ?? 项目工作的并行程度 最重要的区别之一是进展的度量方式.取代用中间工作产物(如需求文档、分析模型和设计规格) 的完成来度量进展,我们根据开发和测试的方案的多少来度量进展. 如图 3-4 所示,每次迭代都将 导致向解决方案的交付的可度量的发展. 图3-4:度量成功测试的软件中的增量 从对进展的主管评价(经常根据生成的文档)到对进展的客观度量(通过生产软件的工作量来度 量)的转移是迭代方法和更传统方法的最根本的区别.分析每次迭代结束时对进展的客观评价的趋 势可以使项目管理人员控制项目并做出变更以提高项目成功的几率. 迭代可以使项目成为一系列更小的独立项目,每个项目都依赖于前一个项目的结果和性能.由每次 迭代的结束时刻进行的评价所形成的反馈使您可以对下一个和所有后来的迭代调整计划. 质量管理人员的观点 这些常规的迭代评估提供了评价进展的机制.在这些局部的里程碑上,要根据目的和目标集由团队 评估迭代计划中的进展.一个暗示是基于活动的状态报告(您所处理的内容是什么?)并不像基于 成就的状态报告(您已经完成了什么?您接近到什么程度?)那么重要.利用迭代的方法,很难将 事实隐藏很久. ibm.com/developerWorks/cn/ developerWorks? 什么是迭代开发? 第5页,共7事实上,这种测量活动而不是真实进展的方法只会引发问题.项目团队需要灵活地使他们的活动达 到所期望的目标,项目管理人也许不能足够准确地预见未来,以计划所有用来实现目标的工作.更 加开明且解放的做法是给予项目团队一些需要达到的目标,并授权给他们可以灵活地响应变更. 通 过约束创造能力和响应性,详细的活动程度计划实际上会危及项目成功而不是确保成功. 在每次迭代过程中对项目结果的客观测量省掉了通过对中间产品的主观质量评估来对项目进展进行 的评估.取代通过坚持在开始建立任何内容之前结束使用需求来判定需求的质量,您可以通过拿 到第一批可用的需求并使他们通过开发循环,在迭代的过程中,生成工作和测试了的代码来评估需 求.这为项目是否达到目标提供了客观的证据,因为他们将在实际中使用而不仅是用于称赞.度量 质量的方法从根本上改变了.质量度量着重于常规的可以提供对项目的持续洞察的迭代评估.对过 程和工作实践的回顾有规律地捕捉从项目中得到的经验,并在项目中造成一个持续的过程改进的文 化.这些观察可以立即被应用到下一次的迭代中以提高质量和团队效率. 通过在每次迭代过程中测试生产出的版本、提供管理和质量指示器,以及测量项目进展来进行客观 的度量.因为每次都要对前一次迭代交付的需求进行反复回归测试,所以这种不断的整合及测试导 致了随着项目进展而不断增加的测试覆盖面,如图 3-5 所示. 图3-5:在不断的迭代中测试负载在增长 对迭代方法的采用可以帮助提高由以下内容交付的成果的质量: ?? 通过将需求迅速地转变成可以进行观察测量的内容来尽早地减少对需求的误解 ?? 通过检验技术方法来尽早地减少开发风险 ?? 从项目的一开始就调节并控制变更 ?? ........