iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 3
0
自我挑戰組

軟體工程漫談系列 第 3

用數學方法說明增量與迭代的力量

敏捷開發過程中,『增量』與『迭代』是最常被人拿來談的內容之一。很多人都會問,到底為什麼非得做增量與迭代不可?這裡,我想要簡短地用數學的方法來顯示他的好處。

首先,在軟體開發過程中,開發人員的『工時』應該是主要成本之一,然而,隨著產品成長,模組和模組之間的相依性也會越來越重。雖然我們都知道,『解耦合』是很重要的工作,但在現實層面,你還是無法完全避免他。於是,當產品越大,一個功能的棄用或修正,就會或多或少影響到另外一個功能。

我們來做一個非常非常假的假設。這是為了讓數據看起來容易懂。
假設整合或創建模組的難度,隨著時間x的經過,呈現線性成長,那麼也許每日的開發成本可以非常粗略地表示成:

y=2x

要知道,人不能通靈,再精細縝密的規劃也有出錯的一天,就算不出錯,客戶也有可能因為任何原因而要求重做或修正。這時,被浪費掉的沈沒成本就是他的積分了:

y=x^2 + c

如果,我們能夠定期(譬如每兩週)回顧審視並演示,隨著客戶的需求而修正,假設我們有夠笨拙,每次demo客戶都不喜歡,都要求砍掉重做(當然,這是很極端的例子,世上也許不會有這種客戶),那麼,我們一整年下來,被丟掉的沈沒成本就是

26(14^2 + c)

萬一你採取瀑布式開發,最後一年後又不幸的被要求重做呢?答案是

365^2 + c

到這裡,您可以自己計算了吧?

當然,這是因為我們用了很簡化的模型來模擬複雜的軟體開發流程,但是您還是可以從數字上看到兩種方式可能對您的成本造成的影響。

路怎麼走,您可以自己決定了 :)


上一篇
打孔機與現代方法
下一篇
什麼是hotfix? Kuma老師的英語教學時間
系列文
軟體工程漫談7

尚未有邦友留言

立即登入留言