敏捷,增量和瀑布发展模式之间的差异?

时间:2017-03-19 16:22:35

标签: models

敏捷和增量和瀑布模型之间的主要区别是什么? 作为初学软件开发人员,我应该遵循什么模型? 我需要明确。

2 个答案:

答案 0 :(得分:2)

除了Gishu's answer

之外
  • Incremental - 您现在可以根据需要进行构建。除非需要证明,否则您不会过度设计或增加灵活性。当需要时,你建立在已经存在的任何东西之上。 (注意:与迭代的不同之处在于你正在添加新的东西..与精炼的东西相比)。
  • Agile - 如果您重视the agile manifesto中列出的相同内容,那么您就会敏捷。这也意味着没有标准模板或清单或程序来做敏捷"。它并没有过度指定......它只是声明你可以使用你需要的任何实践,并且敏捷"。 Scrum,XP,看板是一些更规范的敏捷'方法论因为它们共享同一组值。持续和早期的反馈,频繁的发布/演示,演化设计等等。因此它们可以是迭代和增量的。

  • Waterfall涉及离散开发阶段:规范, 设计,实施,测试和维护。原则上,必须有一个阶段 在进入下一阶段之前完成。

有时候选择一个过程很困难。Choosing the right Software development life cycle model阅读本文是有帮助的。

答案 1 :(得分:1)

瀑布是连续的,而敏捷是一种增量方法。

瀑布:构思,启动,分析,设计,构造,测试,实施和维护。所有八个步骤将按顺序进行(一个接一个)。完成步骤后,您将无法返回上一步。如果稍作更改,整个项目将从零开始。因此,没有错误或变更的余地。

何时使用瀑布:

  • 如果客户完全了解他们想要的东西(项目的大小,成本和时间表),那就去寻求瀑布。

优势:

  • 如果有任何雇主辞职,由于所有步骤都是连续的,因此新雇主将突然停止该项目,因此新资源将很容易理解该项目的当前状况。
  • 客户知道最终产品的外观。

缺点:

  • 如果完成了一步,您将无法返回。
  • 瀑布需要很高的初始要求,错误的要求会将您的项目引向其他地方,而不是目的地。
  • 如果发现任何错误或需要进行任何更改,则该项目必须从头开始。
  • 整个项目仅在最后进行测试,如果bug提早编写但发现得较晚,则它们的存在可能会影响其他代码的编写方式。

敏捷:开发人员从简单的设计开始,然后开始处理小型模块。这些模块的工作每周或每月进行一次。完成模块后,模块将进入测试阶段,如果出现任何错误,则开发人员将首先删除该错误,然后部署结果以进行客户审查,如果客户需要任何更改,则首先开发人员必须实施该更改。在每个模块的末尾,都会评估项目优先级,我们应该在哪个模块上开始工作。

何时使用敏捷:

  • 当快速生产比产品质量更重要时。
  • 当没有最终产品的清晰图片时。

优势:

  • 每个模块在完成后都经过测试,以培训开发人员不要在下一个模块中犯此类错误。
  • 敏捷允许开发人员和客户随时添加更改。
  • 在每个模块之后,客户端都会审核应用程序,因此客户端会在每个模块之后了解项目的进度。

缺点:

  • 它非常需要成功的项目经理。在制作模块时,确定它们的优先级并设置模块的时间确实需要很多经验。
  • 因为没有人有最初的要求,所以最终产品可能与最初的预期有很大的出入。