增量开发 - 敏捷或计划驱动

Incremental Development - Agile or Plan Driven

我目前对增量软件方法感到困惑 采用计划驱动方法的增量开发与采用敏捷方法的增量开发之间的主要区别是什么?

任何人都可以向我解释这两者之间的区别是什么以及我的选择是否适合该项目?

学习是敏捷方法的核心。它包含这样一个事实,即几乎不可能有足够的信息来预先制定详细的计划。而不是实施,或者可能试图实施,您的第一个功能将触发非常有价值的学习。无论是你的实现还是现场的使用和实际需求。

我不确定 "documentations are really important" 到底是什么意思,但是沿模块边界划分实现会导致一些不良影响:

  • 只有完成所有模块才能了解完整系统的使用方法,a.k.a。为时已晚。在您认为已经完成之后,这将驱动未知的剩余工作量。
  • 你怎么知道第一个模块完成了?大概是基于一些关于它应该做什么的猜测,这可能是正确的,但很可能至少有一点错误,这会导致未知的后期修改
  • 集成问题也会在第三个模块应该完成后出现

这三者都推动了对问题和未知工作量的迟到认识。

敏捷专注于通过强制早期反馈来驱赶这些学习和信息,例如早期集成(一旦有三个模块的骨架),通过强制一次实现一个用户级别的功能来进行用户反馈一旦 hty 准备就绪,就会提供它们的演示。

这是一种将所有软件工作中的风险降至最低的策略。

在我看来,你应该采用敏捷方法。