@@ -123,73 +123,37 @@ IBM的System/360開發耗資50億美元(相當於今天的400億),這種
123123
124124但現實是,** 客戶看到系統之前,根本不知道自己要什麼。**
125125
126- 就像買衣服,不試穿怎麼知道合不合身?
126+ ### 網路時代的衝擊
127127
128- 但在瀑布式的世界裡,改需求要走變更流程、要重新評估、要加錢加時間。
129-
130- 結果就是:不是系統符合需求,而是需求被迫符合系統。
131-
132- Y2K:瀑布式的最後輝煌與警鐘
133- 1990年代末的千禧蟲(Y2K)危機,是瀑布式的最後一場大戲。
134- 面對明確、不可變更的需求(修正日期欄位從2位數改成4位數),瀑布式展現了它的優勢:
135-
136- 需求明確:2000年1月1日是死線
137- 範圍固定:所有日期欄位都要改
138- 風險可控:測試案例可以預先定義
139-
140- 全球企業投入6000億美元,有條不紊地完成了系統修正。2000年1月1日,世界沒有崩潰,瀑布式似乎贏了。
141- 但等等,為什麼當初設計時沒想到?為了省兩個byte的空間,結果花了6000億來補救?這暴露了瀑布式的致命傷:它假設人類可以預見未來。
142-
143- [ 個人經驗補充區]
144- 網路時代的衝擊
145- 1995年,Netscape上市,網路泡沫開始膨脹。突然間,遊戲規則全變了:
128+ 指 dot com 泡沫到 web 2.0 的時代。
146129
147130產品生命週期從年變成月
131+
148132競爭對手不是隔壁公司,而是地球另一端的車庫創業
149- 使用者期待每週都有新功能
150- 「永遠Beta」成為新常態
151133
152- Amazon的Jeff Bezos提出「兩個披薩團隊」理論:團隊要小到兩個披薩就能餵飽。這完全違反了瀑布式的大兵團作戰思維。
153- Google更狂,直接在logo上掛著Beta標籤好幾年。Gmail從2004年Beta到2009年,期間不斷推出新功能。如果用瀑布式,大概還在寫規格書的第五版。
154134當你的競爭對手每週更新,而你還在等三個月後的UAT(使用者驗收測試),市場早就不見了。
155- 瀑布式的遺產
156- 仍然適用的領域
157- 諷刺的是,即使在2024年,某些領域仍然需要瀑布式:
158135
159- 醫療設備軟體:FDA要求完整的文件追蹤,一個bug可能害死人
160- 航太系統:NASA的軟體開發依然遵循嚴格的階段審查
161- 金融核心系統:當你處理的是別人的錢,「快速失敗」不是選項
136+ 搶佔市場的思維,改變了軟體工程,敏捷成為主流,我們之後再說。
162137
163- 這些領域的共同點是:錯誤的成本遠大於延遲的成本。
164- 文化的延續
165- 更深層的影響是,瀑布式留下的不只是流程,更是一種思維模式。
166- 即使號稱敏捷的團隊,骨子裡可能還是瀑布式思維:
138+ 但某些領域仍然需要瀑布式:
167139
168- Sprint計畫會議開4小時,像極了需求分析會議
169- Story Point估算變成了工時評估2.0
170- Scrum Master變成了改名的PM
171- Retrospective淪為抱怨大會,因為「流程是總部規定的」
140+ - 醫療設備軟體:FDA要求完整的文件追蹤,一個bug可能害死人
141+ - 航太系統:NASA的軟體開發依然遵循嚴格的階段審查
142+ - 金融核心系統:當你處理的是別人的錢,「快速失敗」不是選項
172143
173- 最諷刺的是什麼?很多公司的「敏捷轉型」本身就是用瀑布式規劃的:先導入Scrum、再導入CI/CD、最後導入DevOps。每個階段都有明確的里程碑和KPI。
174- 結語:理解過去,才能創造未來
175- 瀑布式開發不是錯誤,而是特定時代的最佳解答。
176- 它教會了產業很多重要的事:
144+ 這些領域的共同點是:錯誤的成本遠大於延遲的成本。
177145
178- 文件化的價值(雖然常常過頭)
179- 流程管理的重要(雖然常常僵化)
180- 品質控制的必要(雖然常常太晚)
146+ 更深層的影響是,瀑布式留下的不只是流程,更是一種思維模式。
181147
182- 但當世界改變,堅持不變就是最大的風險。瀑布式的問題不在於它本身,而在於它假設世界是靜態的、可預測的、可控制的。
183- 可惜,軟體開發更像衝浪而不是蓋房子。你必須隨時調整平衡,回應每一個浪頭。
184- 下一篇,我們將探討敏捷如何試圖解決這些問題,以及為什麼「敏捷」最後也變成了另一種「瀑布」。畢竟,人類就是這麼喜歡把動詞變成名詞,把精神變成教條。
148+ 即使號稱敏捷的團隊,實際上仍在執行小瀑布
185149
186- 註:本文部分數據來源於IEEE Software History、Computer History Museum資料庫。Y2K投入成本數據來自Gartner 2000年報告。
187- [ 待補充個人經驗區塊] RetryClaude can make mistakes. Please double-check responses. Opus 4.1
150+ 下一篇,我們將探討敏捷如何試圖解決這些問題,以及為什麼「敏捷」為什麼也失敗。
188151
189152## 參考
190153
191154- [ 以前的程序员,除了敲代码,还得会画画【让编程再次伟大#42 】] ( https://www.youtube.com/watch?v=RyGA6zBHcJg )
192155- [ RUP 統一軟體開發過程] ( https://zh.wikipedia.org/zh-tw/%E7%BB%9F%E4%B8%80%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E8%BF%87%E7%A8%8B )
193156- [ 序列圖,UML 給軟體開發帶來的唯一好處] ( https://docs.mermaidchart.com/blog/posts/sequence-diagrams-the-good-thing-uml-brought-to-software-development )
157+ - [ 我们都只是在假装着做Agile【让编程再次伟大#43 】] ( https://www.youtube.com/watch?v=vJGoQigiXAE )
194158
195159(fin)
0 commit comments