《敏捷迭代开发:管理者指南》—第2章2.1节迭代开发

简介: 迭代开发(iterative development)是一种构建软件(或者其他东西)的方式,软件的整个生命周期依次由几个迭代组成(迭代计划技巧参见11.1节)。

本节书摘来自异步社区《敏捷迭代开发:管理者指南》一书中的第2章2.1节迭代开发,作者【美】Craig Larman,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第2章 迭代和渐进
敏捷迭代开发:管理者指南
经验的神奇之处在于:它能够提醒你不再犯同样的错误。
—F. P. 琼斯(F. P. Jones)

概述
迭代和渐进方法的基本实践,包括时间箱(timeboxing)和自适应计划。
采用迭代方法的一个常见错误。
特定的迭代和渐进方法,包括Evo和UP。
迭代和渐进开发不仅是现代软件方法的基础,也是早在20世纪60年代就使用的方法(有关这段历史参见6.3节)。敏捷方法是迭代和渐进方法的子集。本章总结了关键的实践方法:

迭代开发 渐进开发

风险驱动和客户驱动 渐进需求

时间箱 自适应计划

2.1 迭代开发
敏捷迭代开发:管理者指南
迭代开发(iterative development)是一种构建软件(或者其他东西)的方式,软件的整个生命周期依次由几个迭代组成(迭代计划技巧参见11.1节)。每个迭代(iteration)都是一个独立的迷你项目,它们由一系列活动组成,例如,需求分析、设计、编程和测试。每次迭代的最终目标是产生一个迭代发布(iteration release),一个稳定的、集成的、经过测试的部分完成的系统。要明确的是,每一个迭代版本都是将所有团队的全部软件整合在一起产生的。绝大多数迭代版本只对内发布,不对外发布,作为基线(baseline),主要供开发团队从中获益。迭代版本的最终版是完成的产品,面向市场或者客户进行发布,参见图2-1。


7dfb0bb25c88d529c5e80e3c5d2487f9fabe2cb1

尽管在理论上迭代只能用于简化或者性能优化,但是这个部分完成的系统通常会在一次又一次的迭代过程中伴随着新特性的出现而逐渐成长,换言之,就是增量开发(incremental development)。通过迭代来增长系统的概念称为迭代和增量开发(Iterative and Incremental Development,IID),通常简称为“迭代开发”。有些旧的过程文献[Wong84]使用术语“增量开发”,意思是一系列的迭代开发,每次都先冻结预先定义的规格说明,随后围绕新特性进行开发。不过,这没有推广开来。时至今日,绝大多数开发方法都是IID方法,并且,IID是所有敏捷方法(包括Scrum和XP)的核心。

绝大多数项目在最终公开发布之前,至少需要进行3次迭代。我曾经看到过一个历时两年的Valtech项目,经历了将近20次迭代,每次迭代平均花费4周的时间。此外,我还听说过一个经历了45次迭代的长期项目。

在现代的迭代方法中,推荐的迭代周期是1~6周。

例如,每次迭代不仅包括需求分析,还包括产品级的编程。而且,每次迭代的结果不是一个原型或者概念性的试验,而是最终系统的一个子集。

概括地说,可将迭代视为一个独立的迷你项目,每次迭代中会出现许多规程下的活动(需求分析、测试等),参见图2-2。


59ce7ca35d59cbe6e4e16e1476637768cac2c51f

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
相关文章
|
10月前
|
敏捷开发 测试技术 持续交付
Scrum敏捷开发:适应变化的核心能力
敏捷开发是一种以人为核心,迭代、增量式的软件开发方法。它强调团队成员的密切合作、快速响应需求变化、持续交付高质量软件。
|
14天前
|
敏捷开发 前端开发 JavaScript
现代软件开发中的技术选型与迭代优化
在当今快速发展的软件开发环境中,技术选型和迭代优化是至关重要的环节。本文探讨了如何在面对复杂需求和快速变化的市场中,通过合理的技术选型和持续的迭代优化实现项目的成功与持续发展。
16 2
|
20天前
|
存储 持续交付
现代软件开发中的快速迭代与持续集成
在当今快节奏的软件开发环境中,快速迭代与持续集成成为关键。本文探讨了如何利用现代技术和工具,通过持续集成实现高效的软件开发和快速迭代,以及这些实践对开发团队和产品质量的积极影响。
17 3
|
19天前
|
敏捷开发 测试技术 持续交付
敏捷开发:快速迭代的秘密
【6月更文挑战第19天】敏捷开发强调快速迭代与客户合作,通过短周期的开发循环,持续集成测试,适应需求变化。关键实践包括明确目标、小步快跑、快速反馈和自动化工具的使用。挑战如客户参与和需求变更需通过加强沟通和提升团队技能来应对。敏捷方法现已成为软件开发的主流选择。
|
11月前
|
敏捷开发 测试技术
敏捷开发方法管理项目快速迭代,适应变化
Leangoo领歌是一款永久免费的专业敏捷开发管理工具,也提供私有部署。国产软件,提供端到端敏捷研发管理解决方案,包括小型团队敏捷开发,规模化敏捷SAFe,Scrum of Scrums大规模敏捷,涵盖敏捷需求管理、任务协同、进展跟踪、缺陷管理、统计度量等。提供了不同视角的统计,例如:进度统计、燃尽图、团队速率、任务分布、缺陷分布、测试用例分布等等,实时掌握项目状态及进展。
|
2月前
|
敏捷开发 Devops jenkins
DevOps、瀑布模型与敏捷开发:关系解析与对软件交付工程师的影响
DevOps、瀑布模型与敏捷开发:关系解析与对软件交付工程师的影响
82 1
|
11月前
|
敏捷开发 数据可视化 测试技术
如何做好敏捷迭代管理?过程及工具分享
Leangoo领歌是ScrumCN(scrum.cn)旗下的一款永久免费的敏捷研发管理工具。 Leangoo领歌覆盖了敏捷研发全流程,包括小型团队敏捷开发,Scrum of Scrums大规模敏捷以及SAFe大规模敏捷框架等,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、缺陷管理、测试管理、进展跟踪、统计度量等。领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新,在数字时代赢得竞争。
如何做好敏捷迭代管理?过程及工具分享
|
11月前
|
敏捷开发 测试技术 项目管理
快速迭代和高效交付利器-Scrum敏捷工具
Leangoo领歌是Scrum中文网(scrum.cn)旗下的一款永久免费的敏捷研发管理工具。 Leangoo领歌凭借其灵活、适应性强的特点,在软件开发行业中得到了广泛应用。
《敏捷迭代开发:管理者指南》—第2章2.10节渐进交付
渐进交付(evolutionary delivery)是对增量交付实践的精化,它尽力捕获有关已安装产品的反馈,并用它指导下一次交付。
1371 0