敏捷,迭代和增量开发之间的区别

时间:2012-08-07 08:49:09

标签: agile methodology iteration

敏捷与迭代和增量开发有什么区别?敏捷被认为是迭代和增量的吗?一些信息显示Agile是最新的迭代和增量。我需要对此作出明确的澄清。

5 个答案:

答案 0 :(得分:48)

  • 迭代 - 你没有一次完成一个功能。您在代码>>获得反馈>>代码>> ......周期你一直在迭代直到完成。
  • 增量 - 您现在可以根据需要进行构建。除非需要证明,否则不要过度设计或增加灵活性。当需要时,你建立在已经存在的任何东西之上。 (注意:与迭代的不同之处在于你要添加新的东西..与精炼的东西相比)。
  • 敏捷 - 如果你重视the agile manifesto中列出的相同内容,那么你很敏捷。这也意味着没有“做敏捷”的标准模板或清单或程序。它没有过分指定..它只是表明你可以使用你需要的任何实践“敏捷”。 Scrum,XP,看板是一些更具说明性的“敏捷”方法,因为它们共享同一组值。持续和早期的反馈,频繁的发布/演示,演化设计等等。因此它们可以是迭代和增量的。

答案 1 :(得分:9)

增量开发意味着软件项目的不同部分不断集成到整体中,而不是单一的方法,其中所有不同的部分都组装在项目的一个或几个里程碑中。

迭代意味着一旦组件的第一个版本完成,就会对其进行测试,审核,结果几乎立即转换为该组件的新版本(迭代)。

因此,作为第一个结果:迭代开发不需要增量,反之亦然,但这些方法非常适合。

敏捷开发旨在减少软件项目中的大量计划开销,以允许快速反应发生变化,例如在客户的愿望。增量和迭代开发几乎总是敏捷开发策略的一部分。敏捷开发有几种方法(例如scrum)。

答案 2 :(得分:0)

迭代开发意味着在产品生命周期中重新审视通常的瀑布模型步骤。这些阶段甚至可以重叠,即在进行端到端测试时,您已经可以开始准备新的要求了。

增量开发意味着您可以对功能进行路线规划并逐步实施。

敏捷的目标是在每次冲刺后创造“潜在的可交付产品”。你如何实现它是一个不同的故事。敏捷试图采用各种领域的“最佳”技术(例如极端编程)。敏捷并不排除既不进行增量也不进行迭代开发。

答案 3 :(得分:0)

一些重要且成功执行的软件项目,如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开发人员的压力。     Laforge解释说,发布之间较短,可预测的时间段更像是“离开大中央火车站的火车”。准备好的新功能不必等待其他需要更长时间才能完成的功能 - 它们只需跳过当前版本的“列车”即可。这可以反过来减轻开发人员的压力,急于完成其他功能,因为另一个发布列车将在六周内到来。他们可以轻松地知道他们的工作并没有让火车离开车站。<<

  

答案 4 :(得分:-6)

敏捷是项目开发中最常用的技术。在敏捷技术中,人们正在从一种技术转向另一种技术。主要目的是消除依赖性。 就像人民从生产转向开发,从开发转向测试。 这就是为什么依赖会移除一个团队或个人..