本文大纲

《我的敏捷软件项目管理实践》

增量模型

第二章 软件开发生命周期模型 / 传统模型

简介

增量模型通过将项目需求分段,逐步构建和交付一系列增量产品来实现最终目标。每个增量都包括分析、设计、实施、测试和提交等步骤,并且每个增量都是一个可交付的成果。第一个增量通常是实现核心需求的基本产品,用户使用后反馈意见,为下一个增量的开发提供指导。

增量模型

图 x.x  增量模型

工作方式

增量模型不是一次性交付完整的可运行产品,而是分阶段交付满足客户需求的部分功能。开发人员逐个交付产品的各个构件,确保每个部分都可以立即使用。这种方法特别适合那些需要加快交付速度或无法等待所有工作完成的项目。客户可以先接受解决方案的一部分,而不是等待全部完成。

与一次交付最终产品相比,增量模型更注重快速为客户或发起人创造价值。团队在项目开始时就规划了最初的可交付成果,并尽快启动第一次交付。有些敏捷项目甚至在启动几天内就开始交付价值,而其他项目可能需要几周时间。

优点

  1. 适应变化:软件开发过程中,客户可以持续看到进展,从而降低风险。
  2. 减少投资风险:避免一次性投入过多资源,优先实现主要或高风险功能,逐步完善,确保每一步都有效。
  3. 加速开发:更快地开发出可用系统,提升效率。
  4. 稳定需求:通过早期交付,减少开发过程中需求变更的可能性。

缺点

  1. 系统架构要求高:由于各个构件逐渐加入现有体系结构中,必须确保不破坏已有部分,因此需要开放式的体系结构。
  2. 需求不稳定的风险:虽然增量型模型对需求变化有较好的适应性,但如果早期需求不稳定或不完整,某些增量可能需要重新开发,影响整体控制。

适用范围

  1. 产品升级或新版本开发:非常适合已有产品的改进或新版本开发。
  2. 严格的时间限制:对于有明确完成期限的产品非常有用。
  3. 熟悉领域:如果对开发领域已经有一定了解并有原型系统,增量型模型是理想选择。
  4. 市场和用户不确定:当市场和用户需求尚不明确时,可以通过逐步了解来优化产品。

使用说明

使用增量模型时,首先构建系统的最核心或最具风险的功能,这些功能对项目的成功至关重要。通过测试这些功能确认其是否符合需求,确保后续开发没有后顾之忧。然后逐步增加更多功能,确保每次增加都高效且符合用户需求。

渐进式阶段模型

渐进式阶段模型是一种特殊的增量模型,每个增量都是一个独立的、可运行的系统。例如,一个操作系统可能从0.1版逐步发展到0.2、0.3,直到最终发布1.0版。每个版本都可以作为正式产品发布。

渐进式阶段模型

图  x.x  渐进式阶段模型

这种模型的优点包括:

  1. 阶段式交付:每个阶段提交一个可运行的产品,形成独立系统。
  2. 增强信心:关键功能尽早出现,提高开发人员和客户的信心。
  3. 早期预警:提前发现问题,避免后期高昂的修复成本。
  4. 透明度高:通过阶段性交付展示项目进展,减少报告负担。
  5. 灵活调整:阶段性完成有助于重新评估和调整下一阶段计划。
  6. 提高士气:平衡弹性与效率,提升团队积极性。

缺点则在于需要精心规划各阶段的目标,而且每个阶段提交的是正式版本,增加了工作量。