功能, 時程, 和成本

在專案管理中, 功能, 時程, 和成本, 一直是最重要的三個要素, 也是不容易取得平衡的三個要素. 因此你可以看到你的專案經理, 常常痛苦掙扎要如何在三者間取捨, 到底要犧牲那幾個, 保留哪幾個.

傳統的一種作法(waterfall)是將要交付的功能固定, 然後在成本和時程間做調整. 主要是以計劃導向(plan-driven), 來導出時程和成本的規劃.

不過這種作法, 往往犧牲的是成本. 因為通常時程無法做大幅變動, 因此只好在成本上考量. 這時候你會做的一件事情, 就是犧牲品質這項成本. 少點測試, 沒有檢視, 或是一寫完就交付.

可是這樣的東西會真的是你要的嗎? 這樣不好的循環, 真的無法打破嗎?

在agile中, 它試著改變這樣的假設, 認為交付功能是可以變動的. 因為功能這種東西不見是越多越好, 適用最重要.

此外, 有時候一開始你會認為有些功能應該有用, 可是一陣子後你可能發現其實另一種作法才是正確的. 我想你一定遇到很多使用者都是這樣的, 在沒有拿到你的系統之前所說的功能, 和拿到之後說的一定大大不相同.

還有多出來沒有的功能, 並不是交付就沒事了, 你還是需要花時間去維護, 客戶若是不小心玩玩後找到問題, 你也是要去修復. 若是要出新版的時候, 也是要考量是否會影響這些舊功能的正常運作, 測試的成本還是得花下去. 因此多做些功能, 後續代價可是很大的.

因此agile會強調成本和時程式固定, 在固定時間內, 交付品質的功能, 讓你的使用者可以先體驗一些重要的功能. 之後提出他們的想法和功能需求, 然後在下一版上把這些需求給加進去.

不過看到這裡, 一定會有人說每次要出一個版本都要等很久, 不是6個月就要一年, 這樣是緩不濟急. Agile有看到這點, 因此他要求每次的iteration時間2-4週會比較好, 藉由快速的交付新功能, 讓使用者能很快知道自己要的到底是什麼.

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()