軟件管理有Waterfall與Agile兩種。除了極少數情況,基本上是Agile的方法更好。
提到Agile,有人隻是想到Scrum,其實,Scrum隻是Agile的一種,而且我並不覺得是個好的方法。
Scrum希望每個人都是Full Stack。這樣,任務可以完全按照優先級來做。這有利有弊。弊端是對人員的要求高。傳統上一個人專注一塊,更容易有“工匠精神”。如果大家不是Full Stack,也會有不少問題。每個人都可能在關鍵路徑上,影響產品的交貨。
美國公司喜歡data driven decision,而Scrum可以預測產品交貨期,也可以計算每個人貢獻的“工分”。這是Scrum流行的原因。
最早的Agile是Extreme Programming。其中最好的思想,是盡快做出個原型係統。這樣兩個好處,一個是問題提前暴露,二是有了可展示的東西後,得到的反饋更有價值。
Scrum中的MVP(Minimum Viable Product)的概念,可以看成是對“快速原型係統”的繼承。