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

时间:2016-02-28 16:23:45

标签: agile

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

任何人都可以向我解释这两者之间有什么区别,如果我的选择对项目有好处的话呢?

1 个答案:

答案 0 :(得分:2)

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

我不确定什么"文件非常重要"实际上意味着,但是沿着模块边界划分实现会产生许多不必要的影响:

  • 在完成所有模块后,您只能了解完整系统的使用情况,等等。太晚了。在您认为完成后,这将推动未知的剩余工作量。
  • 你怎么知道第一个模块完成了?大概是基于对它应该做什么的一些猜测,这可能是正确的,但最有可能是至少略有错误,这导致未知的后期修改
  • 在第三个模块应该完成后,也会出现集成问题

这三个问题都推迟了对问题和未知工作量的最终认识。

Agile专注于通过强制早期反馈来推动这些学习和信息,例如早期集成(一旦有三个模块的框架),通过演示强制实施一个用户级功能的用户反馈他们一旦准备就好了。

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

在我看来,你应该选择敏捷的方式。