2025/09/16

09-16.png

「使用預測性流程是導致軟體專案失敗的最常見原因之一。」——《告別瀑布,擁抱Scrum》

早年的軟體開發多半都是使用預測性(predictive)的設計流程,或者大家更常聽見的『瀑布式流程』。

當目標、需求、執行計劃、時程一切都可以被固定,且每個細節都能被清楚定義,專案任何任務都能完整無誤的照表操課時,預測性流程是一種非常精準且有效率的方法。

但我想任何有做過軟體專案或產品的人都知道『計劃總是趕不上變化』,即便你在努力的做好使用者訪談、釐清需求,但在軟體專案中卻總是遇到各種計劃之外的『變化』。

需求變更、技術迭代、人力(腦力)持續產出的生產力不均、軟體品質不穩定,軟體專案總是這麼的『軟』,無法按預測的那樣『固定』。

軟體已經不再是過去那個老東西了,也是時候該面對現實了,當你已知接下來的軟體專案必然會充滿著不確定性時,放下預測性或瀑布式流程吧!

你不一定要跑 Agile 或 DevOps,但你可以嘗試學習 Agile 及 DevOps 的做法,建立一個能夠持續接收回饋(變化)並從中學習(因應)的組織與流程,以更靈活的姿態進行軟體開發。