敏捷与瀑布:比较项目管理方法

隨著最近開發的敏捷方法越來越多地被採用,用於開發軟件的傳統瀑布方法正在迅速普及。但兩者之間有什麼區別- 敏捷總是更好嗎?

什么是瀑布?

瀑布模型是产品生命周期的每个阶段按顺序发生的模型,因此进度像瀑布一样稳步向下流过这些阶段。

瀑布项目管理

没人发明瀑布法。相反,它是由来自其他行业的企业软件开发人员继承的,一旦生产的特定阶段完成(例如铺设建筑物的基础),返回并进行更改是非常昂贵或不切实际的。当人们随后意识到它不是唯一的做事方式时,瀑布才被编成法典。(Winston W. Royce在1970年的一篇文章中首次正式描述,他描述了一个有缺陷的软件开发模型。)

在瀑布式方法中,所有需求收集和设计工作都在任何编码发生之前完成。

有几个众所周知且广泛实施的瀑布方法用于IT项目。其中包括由英国政府创建的PRINCE2,并且在英国公共部门和PMI PMP中广受欢迎,后者更受国际认可。

通常,这些方法的阶段涉及项目之前,启动阶段,计划阶段,执行阶段和结束阶段需要执行的操作。然后,他们还有一系列管理工作包,例外,报告,风险和问题的流程。

瀑布方法的优点

  • 在开发过程中可能发现的潜在问题可以在设计阶段进行研究和触底。如果适当,则在编写任何代码之前选择备用解决方案。
  • 开发过程往往更好地记录,因为这种方法更加强调需求和设计文档等文档。许多组织认为这令人放心。
  • 由于瀑布流程是线性流程,因此可能更容易理解,特别是对于非开发人员或刚接触软件开发的人员。团队通常会对这种方法感到更舒服。

瀑布方法的缺点

  • 我们为(客户)构建软件的人通常不知道他们预先需要什么,也不知道可用技术有什么可能。这种工作方式不能很好地处理这个问题。
  • 解决方案设计人员通常无法预见实施其设计时会出现的问题。
  • 需求的变化(例如,像新技术,市场变化或业务目标变化导致的变更)不能轻易地与瀑布方法结合使用,并且当发生这种情况时,通常需要进行费力的变更控制程序。
  • 这个过程没有自己的动力

什么是敏捷?

敏捷软件开发方法(如Scrum)是一种避免使用线性顺序方法而采用渐进式迭代方法的方法。

而不是预先进行广泛的规划和设计,敏捷方法允许通过使用跨职能团队(包括规划人员,设计人员,开发人员和测试人员)来随时间改变需求,这些团队在固定时间段(时间盒)上连续迭代产品。该工作被组织成一个积压,根据业务(或用户)价值确定优先顺序。

这些团队是自我组织的,包括业务代表(产品所有者)。重点是有效的面对面交流和短反馈循环。

每次迭代的目标是生成一种可以向利益相关者展示的工作产品。然后可以将反馈合并到下一个或将来的迭代中。

敏捷项目管理

敏捷是从20世纪90年代开发的许多不同的轻量级软件哲学演变而来的,与瀑布等重量级方法相对应。该宣言为敏捷软件开发,写于2001年展示的重点是价值敏捷地方。

敏捷方法的优点

  • 工作软件的交付速度更快,并且可以以一致的速度频繁地交付连续的迭代。
  • 开发人员和业务之间的合作更加紧密。
  • 可以在流程的任何阶段纳入对需求的更改 - 甚至在开发的后期。
  • 它为实时系统提供了持续改进的机会
  • 它高度透明

敏捷方法的缺点

  • 敏捷方法(例如Scrum,XP,看板,水晶等)通常比线性连续方法更难理解 - 至少在最初阶段。
  • 由于强调工作软件,人们可能会认为文档有时可以忽略不计。重点应放在需要它的受众的适当文档上,但如果执行不好,情况并非总是如此。
  • 如果实施不当,敏捷可能会在大型组织中引入额外的低效率,或者可能会违反长期的组织流程。

敏捷何时比瀑布更好?

我是敏捷软件方法论的大力支持者。我相信技术,业务和市场现在变化如此之快,以至于软件开发需要适应所有其他品质。

敏捷方法比瀑布方法更灵活,这意味着客户的请求更有可能得到满足。即使事情发生变化,对价值的持续关注意味着你已经交付的东西应该是值得的。而Scrum创造的节奏有助于建立高度积极的团队,其中生产力随着时间的推移而增加。

国家的敏捷调查

人们选择敏捷的三大理由 - 来自2013年敏捷调查的第一版状态

说了这么多之后,仍然存在瀑布方法适用的情况 - 例如,保证要求保持不变且几乎没有不确定性或项目是否非常简单 - 但这些情况变得越来越少之间。

此外,如果一个组织和参与该项目的人员处于一个足够成熟的敏捷状态,那么使用传统的项目管理方法可能更合适。

你的想法是什么?您是否尝试过使用敏捷 - 您的组织是如何收到的?您遇到了哪些挑战?

 


更多推荐的Scrum文章

敏捷中的三个Amigos发展战略是什么?

Three friends refer to the main perspective of testing and inspecting increments in business, during and after development. They review each story in informal start-up meetings to provide a shared vision of what will be delivered and help ensure that it is the voice of the team, not a single opinion. (三个朋友指的是在业务、开发期间和开发之后测试检查工作增量的主要视角,例如,业务分析师、开发人员、测试人员在非正式的启动会议中回顾每个故事,以对将要交付的内容给出一个共同的共享愿景,并帮助确保它是团队的声音,而不是单一的意见。)

什么是敏捷?什么是Scrum?

Agile is the software development methodology that focuses on customer satisfaction by delivery shippable software frequently. Scrum is one of the many approaches to implement Agile. Scrum is suitable for certain type of projects where there are rapidly changing requirements. (敏捷是一种软件开发方法,它通过频繁交付可交付的软件来关注客户满意度。Scrum是实现敏捷的众多方法之一。Scrum适用于需求变化迅速的特定类型的项目。)

什么是Scrum中的速度?

Velocity in Scrum is a measure of the amount of work a Team can tackle during a single Sprint and is the key metric in Scrum. Velocity is calculated at the end of the Sprint by totaling the Points for all fully completed User Stories. (速度是一个团队在一次冲刺中可以完成的工作量的度量,也是Scrum中的关键度量标准。在冲刺结束时,通过对所有完全完成的用户故事的点进行合计来计算速度。)

为什么Scrum易学难精?

Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. Whilst it is lightweight and simple to understand it is difficult to implement and hard to master. This article tell you why?(Scrum是一个框架,人们可以在其中解决复杂的适应性问题,同时富有成效和创造性地交付具有最高价值的产品。虽然它是轻量级的,易于理解,但很难实现,也很难掌握。这篇文章告诉你为什么?)

传统项目管理 vs 敏捷项目管理

Traditional project management emphasizes on conducting detailed upfront planning for the project with emphasis on fixing the scope, cost and schedule - and managing those parameters. Whereas, Scrum encourages data-based, iterative decision making in which the primary focus is on delivering products that satisfy customer requirements. (传统的项目管理强调对项目进行详细的前期规划,强调确定范围、成本和进度,并管理这些参数。然而,Scrum鼓励基于数据的、迭代的决策,其中主要关注的是交付满足客户需求的产品。)

Scrum如何演变?

Scrum has not been immune to controversy, and its history of invention is a topic of frequent debate. Some professionals believe that Jeff Sutherland, John Scumniotales, and Jeff McKenna invented Scrum in 1993. And then there are others who vouch for Hirotaka Takeuchi and Ikujiro Nonaka as inventing Scrum in 1986. (Scrum并没有不受争议,它的发明历史是一个经常争论的话题。一些专业人士认为Jeff Sutherland、John Scumniotales和Jeff McKenna于1993年发明了Scrum。还有其他一些人也许相信, 在1986年Hirotaka Takeuchi和Ikujiro Nonaka发明了Scrum。)

什么是5个Scrum的核心价值?

Less known than the process of Scrum and probably under-highlighted, but therefore not less important, are the 5 core Scrum Values upon which the framework is based: Commitment – Focus – Openness – Respect – Courage. These values relate to the ethics of Scrum, thereby -from a social point of view- turning Scrum into a value system. (与scrum的过程相比,人们对scrum知之甚少,而且可能低估了这一点,但同样重要的是,该框架所基于的5个核心scrum价值观:承诺——关注——开放——尊重——勇气。这些价值观与Scrum的伦理有关,因此从社会的角度来看,将Scrum转变为一个价值体系。)

什么是敏捷软件开发?

When talking about Agile, we often talk about ''Agile'' and ''Scrum,'' but, how exactly are related, and how are they different? We take a look of this issue in this Article. (在谈到敏捷时, 我们经常谈论 "敏捷" 和 "scrum", 但是, 它们到底有什么关系, 它们有什么不同?我们在本文中介绍了这一问题。)

Scrum在3分钟内完成

This article covers all the key concept of Scrum framework that make you easily be recalled and apply anytime from your mind as systematic knowledge structure (本文涵盖了 scrum 框架的所有关键概念, 使您可以轻松地被召回, 并从您的头脑中随时作为系统的知识结构应用)

什么是Scrum的三大支柱?

(英文版) (日本語版) 什么是Scrum的三大支柱? SCRUM使用经验方法(或有时称为经验主义)以适应客户不断变化的需求。经验主义是根据实际经历的内容做出决策的行为。经验方法意味着以事实为基础,以经验为基础,以证据为基础的方式开展工作,特别是,进展是基于对现实的观察,而不是基于大量前期要求的虚构计划。 […]

Visual Paradigm International