迭代开发方法对 Web 应用程序的好坏

Iterative development approach good or bad for a web application

有人可以向我解释一下迭代开发方法以及 benefits/limitations 在开发 Web 应用程序时使用它的方法吗?

此外,我一直在研究它,但我很困惑,它是不是敏捷的一部分?有些消息来源说是,有些则不是?

谢谢大家。

迭代与瀑布开发相对。如您所知,交付软件产品应该经历几个不同的阶段。

  • 要求Engineering/Elicitation
  • 分析与设计
  • 实施
  • 测试与验证
  • 部署与维护

在每个阶段结束时,您都会有一些工件或可交付结果。在瀑布策略中,一旦你完成一个阶段,一切就都完成了,你不会再回到那个阶段。

在迭代方法中,您将反复经历这些阶段。在每个周期中,您重复所有或部分这些阶段,并且在每个周期结束时,您将交付一个工作产品。

迭代方法让您可以逐步开发您的软件,您将能够逐步建立并进一步扩展您的产品。您可以在第一个周期结束时只交付 Web 应用程序的骨架,然后在每个周期之后,您将重新审视您的需求、设计、实施和测试计划。你会发现错误并修复它们。同时,您将收到来自您的 end-customers 的反馈并相应地更改您的产品。

敏捷方法论(如 Scrum)主要是关于如何消除不必要的大量流程,如繁重的文档、正式会议等。因此,您可以专注于您的产品和代码,并更快地迭代您的周期。敏捷既不强制瀑布也不强制迭代方法,但事实是瀑布现在已经过时并且不会再在工业中使用。

迭代开发已经存在了很长一段时间。它肯定早于敏捷,尽管您可以说它是敏捷开发方法的始祖。

有一些包括迭代的非敏捷开发方法,例如 RUP,因此它不完全是一种敏捷实践。

还有很多方法可以使用迭代方法。例如,您可以预先收集需求和设计,然后仅在开发阶段使用迭代。

像 XP 和 Scrum 这样的敏捷框架进一步进行了迭代,并希望在每次迭代结束时都有一个 'releasable' 产品。

敏捷迭代方法的好处:

  • 产品可以在开发的早期阶段发布
  • 进度通常更容易衡量(发布的代码是衡量进度的重要指标)
  • 迭代方法使团队能够更轻松地响应变化

敏捷迭代方法的局限性:

  • 将 UAT 和法规遵从性纳入迭代可能是一个挑战
  • 频繁发布和频繁重新规划可能会产生开销

您可以将每次迭代结束时的可发布产品视为一种纯粹的迭代开发形式。并非每个团队都使用这种方法。例如,有些可能会在几次迭代后才让用户进行测试。这样做的缺点是您永远无法真正确定作品是否 'done',因为潜在的用户反馈可能会改变事情。