敏捷开发、迭代开发和增量式开发之间有什么区别?敏捷开发是否被视为迭代和增量式开发的一种形式?一些信息显示,敏捷开发是迭代和增量式开发中最新的一种。我需要对此进行明确的澄清。
敏捷开发、迭代开发和增量式开发之间有什么区别?敏捷开发是否被视为迭代和增量式开发的一种形式?一些信息显示,敏捷开发是迭代和增量式开发中最新的一种。我需要对此进行明确的澄清。
增量开发是指将软件项目的不同部分持续集成到整个项目中,而不是采用单体方法,在一个或几个里程碑中组装所有不同的部分。
迭代式开发意味着一旦组件的第一个版本完成,就会对其进行测试、审查,并几乎立即将结果转化为该组件的新版本(迭代)。
因此,首要的结果是:迭代式开发不需要增量式,反之亦然,但这些方法非常相配。
敏捷开发旨在减少软件项目中的大量计划开销,以允许快速响应变化,例如客户需求。增量和迭代式开发几乎总是敏捷开发策略的一部分。有几种敏捷开发方法(例如 scrum)。
迭代开发意味着在产品寿命周期内重新审视传统瀑布模型的步骤。这些阶段甚至可以重叠,例如,在进行端到端测试时,您可以已经开始准备新需求。
增量开发意味着您规划功能并逐步实现它们。
敏捷旨在在每个Sprint之后创建“可能可交付的产品”。您如何实现这一目标是另一回事。敏捷试图采用来自各个领域(例如极限编程)的“最佳”技术。敏捷不排除运行增量或迭代开发。
一些重要且成功执行的软件项目,如Google Chrome和Mozilla Firefox,是迭代和增量软件开发的典范。
我将引用一篇精彩的Ars Technica文章来描述这种方法:http://arstechnica.com/information-technology/2010/07/chrome-team-sets-six-week-cadence-for-new-major-versions/
根据Chrome程序经理Anthony Laforge的说法,加快发布速度旨在实现三个主要目标。其一是更快地向用户推出新功能。第二个目标是使发布计划可预测,因此更容易规划哪些功能将被包含,哪些功能将被定位为后续版本。第三个目标,也是最反直觉的,是为了减轻Chrome开发人员的压力。敏捷开发是项目开发中最常用的技术。在敏捷技术中,人们会从一种技术转换到另一种技术...主要目的是消除依赖关系。 例如,人们从生产转向开发,从开发转向测试。 这样,依赖关系就可以在一个团队或个人身上消除。