敏捷,增量和瀑布开发模型之间的区别?
Differences between Agile, Incremental and Waterfall development model?
敏捷模型、增量模型和瀑布模型之间的主要区别是什么?
作为初学者软件开发人员,我应该遵循什么模型?
我需要说清楚。
除了 Gishu's answer
- Incremental - 你现在需要多少就建多少。除非需求得到证实,否则您不会过度设计或增加灵活性。当需要出现时,您可以在现有的基础上进行构建。 (注意:与迭代的不同之处在于您添加新事物.. 与改进某些东西)。
Agile - you are agile if you value the same things as listed in the agile manifesto。这也意味着 "do agile" 没有标准模板或清单或程序。它并没有过度指定.. 它只是说明您可以使用您需要的任何实践 "be agile"。 Scrum、XP、看板是一些更具规范性的 'agile' 方法,因为它们具有相同的价值观。持续和早期反馈、频繁 releases/demos、改进设计等。因此它们可以是迭代和增量的。
Waterfall涉及离散的开发阶段:规范,
设计、实施、测试和维护。原则上,一个阶段必须是
在进入下一阶段之前完成。
有时选择进程很困难。Choosing the right Software development life cycle model阅读这篇文章很有帮助。
瀑布是顺序的,而敏捷是增量的方法。
Waterfall: 构思、启动、分析、设计、构造、测试、实施和维护。所有八个步骤将按顺序(一个接一个)完成。完成一个步骤后,您将无法返回上一步。只要稍作改动,整个项目就会从零开始。所以,没有错误或更改的余地。
何时使用瀑布:
- 如果客户完全了解他们想要什么(项目的规模、成本和时间表),则选择瀑布。
优点:
- 如果任何雇主离职,新雇主会突然抓住项目,因为所有步骤都是顺序的,所以新资源很容易了解项目的现状。
- 客户知道最终产品的外观。
缺点:
- 一步完成后无法返回
- 瀑布需要大量的初始需求,错误的需求会将您的项目引向别处,而不是目的地。
- 如果发现任何错误或需要进行任何更改,项目必须从头开始。
- 整个项目只在最后进行测试,如果错误写得早发现晚,它们的存在可能会影响其他代码的编写方式。
敏捷:开发人员从简单的设计开始,然后开始在小模块上工作。这些模块的工作每周或每月完成一次。完成一个模块后,模块被送往测试阶段,如果出现任何错误,开发人员首先删除该错误,然后部署结果以接受客户审查,如果客户要求任何更改,则首先开发人员必须实施该更改。在每个模块结束时,评估项目优先级,我们应该从哪个模块开始工作。
何时使用敏捷:
- 当快速生产比产品质量更重要时。
- 当没有关于最终产品外观的清晰图片时。
优点:
- 每个模块完成后都会进行测试,以培训开发人员不要在下一个模块中犯此类错误。
- 敏捷允许开发人员和客户随时添加更改。
- 在每个模块之后,客户审查申请,让客户了解每个模块之后的项目进度。
缺点:
- 对成功的项目经理要求很高。作为制作模块,设置模块的优先级和设置模块的时间段确实需要很多经验。
- 由于没有人有初始要求,因此最终产品可能与最初的预期大相径庭。
敏捷模型、增量模型和瀑布模型之间的主要区别是什么? 作为初学者软件开发人员,我应该遵循什么模型? 我需要说清楚。
除了 Gishu's answer
- Incremental - 你现在需要多少就建多少。除非需求得到证实,否则您不会过度设计或增加灵活性。当需要出现时,您可以在现有的基础上进行构建。 (注意:与迭代的不同之处在于您添加新事物.. 与改进某些东西)。
Agile - you are agile if you value the same things as listed in the agile manifesto。这也意味着 "do agile" 没有标准模板或清单或程序。它并没有过度指定.. 它只是说明您可以使用您需要的任何实践 "be agile"。 Scrum、XP、看板是一些更具规范性的 'agile' 方法,因为它们具有相同的价值观。持续和早期反馈、频繁 releases/demos、改进设计等。因此它们可以是迭代和增量的。
Waterfall涉及离散的开发阶段:规范, 设计、实施、测试和维护。原则上,一个阶段必须是 在进入下一阶段之前完成。
有时选择进程很困难。Choosing the right Software development life cycle model阅读这篇文章很有帮助。
瀑布是顺序的,而敏捷是增量的方法。
Waterfall: 构思、启动、分析、设计、构造、测试、实施和维护。所有八个步骤将按顺序(一个接一个)完成。完成一个步骤后,您将无法返回上一步。只要稍作改动,整个项目就会从零开始。所以,没有错误或更改的余地。
何时使用瀑布:
- 如果客户完全了解他们想要什么(项目的规模、成本和时间表),则选择瀑布。
优点:
- 如果任何雇主离职,新雇主会突然抓住项目,因为所有步骤都是顺序的,所以新资源很容易了解项目的现状。
- 客户知道最终产品的外观。
缺点:
- 一步完成后无法返回
- 瀑布需要大量的初始需求,错误的需求会将您的项目引向别处,而不是目的地。
- 如果发现任何错误或需要进行任何更改,项目必须从头开始。
- 整个项目只在最后进行测试,如果错误写得早发现晚,它们的存在可能会影响其他代码的编写方式。
敏捷:开发人员从简单的设计开始,然后开始在小模块上工作。这些模块的工作每周或每月完成一次。完成一个模块后,模块被送往测试阶段,如果出现任何错误,开发人员首先删除该错误,然后部署结果以接受客户审查,如果客户要求任何更改,则首先开发人员必须实施该更改。在每个模块结束时,评估项目优先级,我们应该从哪个模块开始工作。
何时使用敏捷:
- 当快速生产比产品质量更重要时。
- 当没有关于最终产品外观的清晰图片时。
优点:
- 每个模块完成后都会进行测试,以培训开发人员不要在下一个模块中犯此类错误。
- 敏捷允许开发人员和客户随时添加更改。
- 在每个模块之后,客户审查申请,让客户了解每个模块之后的项目进度。
缺点:
- 对成功的项目经理要求很高。作为制作模块,设置模块的优先级和设置模块的时间段确实需要很多经验。
- 由于没有人有初始要求,因此最终产品可能与最初的预期大相径庭。