停止对瀑布模型的污名化

2024-07-10 05:53:27 +08:00
 1000copy

提起瀑布模型,人们往往有这样的印象:它是刻板、僵化的“老古董”。但真的是这样吗?

这种刻板印象可能来源于教科书。然而,编写教科书的人未必真正了解瀑布模型。

作为最早成型的软件开发生命周期模型之一,瀑布模型的主要特点是通过时间维度来降低软件开发的复杂性。它将软件开发过程划分为需求分析、产品设计、编码实现、上线和维护等阶段,并要求每个阶段都产出成果供下一阶段使用。

当然,根据实际情况,这些阶段可以适当精简,但至少应包含两个阶段:分析和编码。

简而言之,不同类型的工作由不同的团队在不同的时间完成,从而减轻个人的心智负担。

瀑布模型的核心要点有两条:

  1. 不要在一个步骤完成之前进入下一个步骤,否则会导致在不同类型工作间反复切换,增加心智负担,失去分工的价值。
  2. 如果在下一步发现上一步的问题,应该遵循变更流程,而不是轻易打断已经进行的步骤。例如,如果开发阶段发现需求问题,应尽可能将其推迟到下一个迭代周期。原因同上。

许多团队对变更请求来者不拒,不懂谈判,不敢拒绝,结果导致交付延期和问题堆积。这样的团队甚至没有正确执行瀑布模型。

软件开发周期模型后来出现的迭代开发、增量开发和敏捷开发,都是以瀑布模型为基础的。每一个迭代或增量都是一个小瀑布,都需要完成需求分析、产品设计、编码、测试和发布流程,至少包含分析和开发两个步骤的小瀑布。新的生命周期模型并没有否定瀑布模型,而是在其基础上进行了发展。

既然新的模型没有否定瀑布模型,你为什么否定它?

5399 次点击
所在节点    程序员
42 条回复
zhangk23
2024-07-11 00:53:53 +08:00
瀑布模型本就是早年间老美用来骗经费的法子罢了
msg7086
2024-07-11 05:51:00 +08:00
否定瀑布模型否定的是冗长的周期。一个瀑布就要花上几个月甚至数年时间了。Windows 8 到 8.1 ,8.1 到 10 ,都相当于是一个一个瀑布。比如我们要做 Windows 8.1 了,先花 3 个月时间提出所有的需求,然后花 1 年时间编码,再花 6 个月时间测试和修补,然后直接把 8.1 发出来。
后来搞成半年更新一个版本,其实已经是半个敏捷了,不能完全算是瀑布了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056100

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX