敏捷方法和瀑布方法之间的区别是什么?


回答 1:

让我们从基础开始,看看这些项目管理方法的本质,然后再探讨其优缺点。

瀑布方法被认为是软件开发的传统方法。 根据这种方法,该项目被分为几个无法同时完成的连续阶段。 在每个阶段的最后,您都应该对需求进行审查,然后再进入下一个阶段。 需要考虑的是,已经完成了一个阶段,直到整个开发周期完成,您才能返回到该阶段。 因此,该方法论将开发描述为一个线性且顺序的过程,通常包括七个阶段:

优点:

  • 易于上手:由于其固有的简单性,该方法易于新手和/或初级开发人员采用;详细的文档重点:每个阶段都需要创建文档,这对于开发团队,项目目标更加明确本身对于客户而言更清晰,并且更容易被团队中的新成员所接受;易于使用:由于Waterfall是固定的,因此在每个阶段总是存在某些要求,预期结果和审查,这使得对项目的监督成为小菜一碟。

缺点:

  • 确定需求并不像看起来那么容易:明确的需求很重要,但是通常情况下,客户无法在项目一开始就确定所有关键的“需求和需求”;进行更改的成本很高,而且效率低下:如果团队在编码本身过程中发现问题,就不能简单地回到上一个阶段并进行调整以解决该问题;客户可能不耐烦地看到至少一些操作软件,但是,开发阶段本身开始时间很晚;延迟测试太冒险了,因为在截止日期之前可能没有足够的时间进行测试; 在这种情况下,某些错误和错误可能无法及时识别。

敏捷:利与弊

让我们继续我们在敏捷与瀑布对峙中的竞争者。 首先,我们需要指出,敏捷代表了通用准则,反映在《敏捷宣言》(2001)中。 该软件开发框架已在各种敏捷方法中实现,例如Scrum,看板等。

简而言之,敏捷方法忽略了线性瀑布方法,而采用了迭代方法。 根据Agile的说法,项目实施从创建产品待办事项开始,该产品待办事项基本上是在开发过程中应完成的所有任务的列表。 应该对任务进行优先级排序,并且一定数量的具有最高优先级的任务包括sprint待办事项。 冲刺代表项目实施的迭代。 每个冲刺可以持续一周到一个月,并且必须包括审查项目优先级,计划,设计,编码和测试(单元测试和验收测试)。 每个sprint的目的都是在产品末尾为产品所有者提供即用型产品,即使产品功能有限。

据敏捷说,重点还在于团队的自我组织,很少有监督和控制。 敏捷将面对面的交互,协作和适应变化放在优先级列表的顶部。

敏捷建议将客户代表纳入跨职能团队,该团队将致力于项目实施。 除了自己编写代码的开发人员和客户代表之外,这样的团队还应包括计划人员,设计人员和测试人员。

Scrum也许是体现敏捷原则的最广为人知的项目管理框架。 Scrum确定应履行的一组特定角色,每个角色的职责以及旨在调整计划的日常站立会议。 短跑速度更快,持续一到两周。 角色包括产品负责人(客户代表),开发人员和Scrum负责人,他们负责工作并充当团队与可能的干扰之间的“缓冲”。

另一种敏捷方法看板(Kanban)的名称来自日语单词“卡”或“视觉标记”。 它着重于可视化工作流,最大程度地减少流程中正在进行的工作以及不断对现有系统进行细微调整。

优点:

  • 适应变化:在不断变化的技术世界中,先前的计划可能会很快过时,并且由于新技术和客户要求,敏捷已被证明能够更好地适应变化;沟通是当务之急:面对面面对面的互动和反馈是鼓励团队能力不断提高的敏捷核心原则;与客户的紧密合作:通过与团队成员的紧密合作,客户有更多机会就最终产品应有的发言权发言;没有需要从一开始就定义所有需求:可以在项目实施过程中对其进行调整;彻底的测试:每个sprint期间的单元测试和验收测试都极大地降低了最终产品中未发现漏洞和漏洞的可能性。

缺点:

  • 交付日期含糊不清:由于项目优先级的反复变化,无法事先准确地100%计划交付日期; 此外,可能有必要增加冲刺,这也将推迟最终产品的发布;团队成员需要高度发展的技能:由于团队应该同时具有跨职能和小规模的特点,因此每个团队成员通常都必须履行特定角色(例如,设计师); 因此,每个开发人员都应该高度精通自己的工作;无需过多关注创建文档:敏捷将代码本身置于创建详细文档之上; 文档应该有一个单一的目的:允许新手了解代码的编写方式和原因。

敏捷vs瀑布:有什么成本?

金钱很重要。 我们都知道这一点。 这就是为什么预算约束是不可避免的,并且您必须考虑您可以负担或负担不起的东西。 因此,让我们比较一下敏捷和瀑布式开发需要花费多少成本,以帮助您做出明智的财务决策,从而影响项目的未来。

我们需要清楚一件事。 由于技术规格,要求等因素,每个项目都是唯一的。因此,无法告诉您:“您的项目的敏捷开发将花费X美元,或者您必须在Y瀑布开发上花费Y美元。同一项目。” 开发成本取决于许多因素,其中包括您雇用的开发人员的小时费率,要实现的功能,开发类型(构建Web应用程序或Android的是不同的项目)等。

但是,正如Standish小组进行的研究表明的那样,我们可以肯定地说一件事:事实证明,敏捷开发方法比Waterfall方法更经济。 研究表明,敏捷项目的平均价格比Waterfall项目便宜4倍,甚至比Waterfall项目快10倍。 因此,我们有明确的经验证据表明,敏捷方法比瀑布技术更具成本效益。 也许,这就是敏捷如何在IT公司中如此受欢迎的主要原因之一,而不论它们的规模如此之快。

敏捷与瀑布:如何选择

在任何情况下,诸如选择项目管理方法之类的重要决定都不是一件容易的事。 但是,我们希望您可以更轻松地做出此决定。

在做出此选择之前,应分析并考虑以下五个关键指标:

  • 项目规模;项目持续时间;复杂性;各种组织因素;利益相关者和客户。

瀑布适合那些不需要很多更改的简单,小型项目。 这些项目可以称为不可更改的。 此外,瀑布式方法使您可以创建详细的深入文档,并且由于其固有的简单性,新手和/或初级开发人员都可以轻松采用。

由于严格且鼓励纪律,对于涉及其他组织或远程员工的项目,Waterfall是一个不错的选择。 此外,与敏捷方法不同,此方法适合客户不能大量参与项目实施的情况。 如果您的项目有固定的时间和预算限制以及固定的范围,那么Waterfall可能正是您所需要的。

敏捷方法学适合那些具有灵活时间框架和预算限制的大型项目。 如果项目的范围在一开始就很难明确定义,但是它将变得很复杂。 如果您确定需要代表客户或利益相关者进行一些调整,那么敏捷肯定是您的选择。 由于客户应该参与整个开发过程,因此您需要确定他或她愿意这样做,然后才能最终决定要用于该项目的方法。

除此之外,您还需要确保团队成员准备好完全致力于该项目,因为这非常耗时并且需要全天候24/7的关注。 您的团队还应该精通他们的工作线,以便能够按照这种方法进行工作。

底线

没有任何方法是完美无缺的。 您需要权衡每种方法的利弊,评估项目,并亲自了解哪种方法最适合您的项目。

如果您不确定哪种方法最适合您的项目需求,请随时与我们的专家联系。 无论您有什么疑问,我们都将始终为您解答。


回答 2:

瀑布项目管理使用项目风险控制的预测模型。 这个想法是这样的:如果您可以准确地预测所有需求,资源等,那么您将拥有一个低风险的项目。

预测性的项目管理方法只有在您猜对了的情况下才可以使用,而您实际上可以在项目开始时做出好的预测。 当您的预测被证明是错误的时,瀑布不起作用的地方(您可能也猜到了这一点)。

相比之下,敏捷方法使用风险控制的经验模型。 当您的项目中有更多未知数时,这种方法会更好。 具体来说,当这三个条件中的任何一个满足时,它将提供帮助:

  • 您的项目的风险高于平均风险您的一个或多个资源(时间,金钱,员工等)受到限制,您的项目很可能遇到新的需求

在这种情况下,具有迭代和频繁检查和适应点的敏捷(aka:经验)方法是解决这些风险的更好框架。

因此,您可以看到敏捷和瀑布都不是“坏”的。 这仅仅是为工作使用正确的工具的问题。

—Angela


回答 3:

瀑布项目管理使用项目风险控制的预测模型。 这个想法是这样的:如果您可以准确地预测所有需求,资源等,那么您将拥有一个低风险的项目。

预测性的项目管理方法只有在您猜对了的情况下才可以使用,而您实际上可以在项目开始时做出好的预测。 当您的预测被证明是错误的时,瀑布不起作用的地方(您可能也猜到了这一点)。

相比之下,敏捷方法使用风险控制的经验模型。 当您的项目中有更多未知数时,这种方法会更好。 具体来说,当这三个条件中的任何一个满足时,它将提供帮助:

  • 您的项目的风险高于平均风险您的一个或多个资源(时间,金钱,员工等)受到限制,您的项目很可能遇到新的需求

在这种情况下,具有迭代和频繁检查和适应点的敏捷(aka:经验)方法是解决这些风险的更好框架。

因此,您可以看到敏捷和瀑布都不是“坏”的。 这仅仅是为工作使用正确的工具的问题。

—Angela


回答 4:

瀑布项目管理使用项目风险控制的预测模型。 这个想法是这样的:如果您可以准确地预测所有需求,资源等,那么您将拥有一个低风险的项目。

预测性的项目管理方法只有在您猜对了的情况下才可以使用,而您实际上可以在项目开始时做出好的预测。 当您的预测被证明是错误的时,瀑布不起作用的地方(您可能也猜到了这一点)。

相比之下,敏捷方法使用风险控制的经验模型。 当您的项目中有更多未知数时,这种方法会更好。 具体来说,当这三个条件中的任何一个满足时,它将提供帮助:

  • 您的项目的风险高于平均风险您的一个或多个资源(时间,金钱,员工等)受到限制,您的项目很可能遇到新的需求

在这种情况下,具有迭代和频繁检查和适应点的敏捷(aka:经验)方法是解决这些风险的更好框架。

因此,您可以看到敏捷和瀑布都不是“坏”的。 这仅仅是为工作使用正确的工具的问题。

—Angela