軟體專案如何做估計

206
如何做軟體專案的估計

Upload: terry-chuan-yin-wang

Post on 17-Jul-2015

131 views

Category:

Software


0 download

TRANSCRIPT

Page 1: 軟體專案如何做估計

如何做軟體專案的估計

Page 2: 軟體專案如何做估計

開始前請先準備好紙筆

Page 3: 軟體專案如何做估計

等等會用到

Page 4: 軟體專案如何做估計

快去拿

Page 5: 軟體專案如何做估計

找到了嗎

Page 6: 軟體專案如何做估計

騙人

Page 7: 軟體專案如何做估計

真的啦快去拿紙筆

Page 8: 軟體專案如何做估計

好了齁

Page 9: 軟體專案如何做估計

好的關於估計軟體專案阿

Page 10: 軟體專案如何做估計

這真的是很難的題目

Page 11: 軟體專案如何做估計

概念是用經驗來做估計

Page 12: 軟體專案如何做估計

原則是把大事情盡量切成小事情

來分別做估計再加起來

Page 13: 軟體專案如何做估計

沒錯很籠統

Page 14: 軟體專案如何做估計

但還是可以簡單聊聊兩種門派的做法

Page 15: 軟體專案如何做估計

同樣的沒有絕對的好與壞

Page 16: 軟體專案如何做估計

請依照專案的性質與團隊的做事方法來選擇

Page 17: 軟體專案如何做估計

waterfall

Page 18: 軟體專案如何做估計

在waterfall的流程來說

Page 19: 軟體專案如何做估計

估計就是要…

Page 20: 軟體專案如何做估計

準!

Page 21: 軟體專案如何做估計

而做估計的那個人

Page 22: 軟體專案如何做估計

通常是說話最大聲或

最有份量的人

Page 23: 軟體專案如何做估計

比如說最資深的工程師

PM

或業務客戶

甚至是老闆本人

Page 24: 軟體專案如何做估計

這個人說了需要多久以後

Page 25: 軟體專案如何做估計

再加一點buffer

Page 26: 軟體專案如何做估計

就是你的軟體專案的deadline

Page 27: 軟體專案如何做估計

我已經介紹完了第一種方法了

Page 28: 軟體專案如何做估計

身為PM的你

Page 29: 軟體專案如何做估計

會不會覺得念了一大堆書都浪費了?

Page 30: 軟體專案如何做估計

因為這沒甚麼學問

Page 31: 軟體專案如何做估計

讀聖賢書所為何事

Page 32: 軟體專案如何做估計

而且

Page 33: 軟體專案如何做估計

這樣估出來根本他媽的不準

Page 34: 軟體專案如何做估計

來看看好一點的waterfall的估計方法

Page 35: 軟體專案如何做估計

還記得你剛剛找到的紙筆嗎?

Page 36: 軟體專案如何做估計

我們來估計你下班從公司回到家需要

的時間

Page 37: 軟體專案如何做估計

第一步

Page 38: 軟體專案如何做估計

請你在紙上寫下

Page 39: 軟體專案如何做估計

一般狀況下你回家所需要的時間

Page 40: 軟體專案如何做估計

令這個值叫做N(normal的意思)

Page 41: 軟體專案如何做估計

第二步

Page 42: 軟體專案如何做估計

請你在紙上寫下

Page 43: 軟體專案如何做估計

最樂觀的最順利的狀況下回到家所需要的時間

Page 44: 軟體專案如何做估計

令這個值叫做O(是英文字母那個ㄛ,不是零)

(Optimistic的意思)

Page 45: 軟體專案如何做估計

第三步

Page 46: 軟體專案如何做估計

請你在紙上寫下

Page 47: 軟體專案如何做估計

最悲觀的最慘的狀況下

回到家所需要的時間

Page 48: 軟體專案如何做估計

令這個值叫做P(Pessimistic的意思)

Page 49: 軟體專案如何做估計

以上

Page 50: 軟體專案如何做估計

套用機率模型

Page 51: 軟體專案如何做估計

期望值是( O + 4N + P ) / 6

Page 52: 軟體專案如何做估計

令 E = 你算出來的期望值

Page 53: 軟體專案如何做估計

算好了嗎?

Page 54: 軟體專案如何做估計

標準差是( P – O ) / 6

Page 55: 軟體專案如何做估計

令 stddev = 你算出來的值

Page 56: 軟體專案如何做估計

算好了嗎

Page 57: 軟體專案如何做估計

套用機率模型Normal distribution…

Page 58: 軟體專案如何做估計

在正負一個標準差之內的機率是68%

Page 59: 軟體專案如何做估計

在正負兩個標準差之內的機率是95%

Page 60: 軟體專案如何做估計

你現在可以估計出今天回家

有68%的機會會在E-stddev 到 E+stddev之間

而有95%的機會會在

E-2*stddev 到 E+2*stddev之間

Page 61: 軟體專案如何做估計

ㄟ,你剛剛有跟著算吧?

Page 62: 軟體專案如何做估計

同樣的

Page 63: 軟體專案如何做估計

假如你的軟體專案是屬於某一個人來喊時間的那種

Page 64: 軟體專案如何做估計

請用這種機率模型來做估計

Page 65: 軟體專案如何做估計

會比較科學一點

Page 66: 軟體專案如何做估計

這套方法叫做PERT法

Page 67: 軟體專案如何做估計

Program Evaluation

and Review Technique

Page 68: 軟體專案如何做估計

可是

Page 69: 軟體專案如何做估計

一開始有說原則是

把大事情切小分別做估計再加起來

Page 70: 軟體專案如何做估計

那用PERT法怎麼做?

Page 71: 軟體專案如何做估計

同樣的對每件小事情給NOP三個值

Page 72: 軟體專案如何做估計

算出E跟stddev

Page 73: 軟體專案如何做估計

現在你手上會有一堆小事情的E跟stddev

Page 74: 軟體專案如何做估計

你的大事情的期望值就是把所有E的總和

Page 75: 軟體專案如何做估計

就是把E全部加起來令他是E_total

Page 76: 軟體專案如何做估計

標準差stddev_total比較麻煩

Page 77: 軟體專案如何做估計

請把每一個stddev平方加起來再開根號

Page 78: 軟體專案如何做估計

你現在有E_total跟stddev_total了

Page 79: 軟體專案如何做估計

一樣套用機率模型

Page 80: 軟體專案如何做估計

我有68%的信心指數可在E_total正負stddev_total

時間內完成

Page 81: 軟體專案如何做估計

而95%的機會可在E_total正負兩倍stddev_total

時間內完成

Page 82: 軟體專案如何做估計

身為PM的你如果說出以上的話

Page 83: 軟體專案如何做估計

人家應該會覺得你很有學問吧?

Page 84: 軟體專案如何做估計

講完了waterfall的方法了

Page 85: 軟體專案如何做估計

一個是喊巴辣拳一個是

PERT法

Page 86: 軟體專案如何做估計

如果你是用waterfall開發我非常推薦PERT法

Page 87: 軟體專案如何做估計

休息一下呼~

Page 88: 軟體專案如何做估計

嚇!

88頁了

Page 89: 軟體專案如何做估計

再休息一下湊90頁再出發好了

Page 90: 軟體專案如何做估計

90頁了…

接下來看看agile的作法

Page 91: 軟體專案如何做估計

請再次拿起你的紙筆來

Page 92: 軟體專案如何做估計

好了嗎?

Page 93: 軟體專案如何做估計

請看下面這張圖

Page 94: 軟體專案如何做估計

來源http://hdw.eweb4.com/out/440195.html

Page 95: 軟體專案如何做估計

請在紙上寫下

Page 96: 軟體專案如何做估計

紅色圈圈的大樓是綠色圈圈大樓的幾倍高?

我再給你看一次圖

Page 97: 軟體專案如何做估計

來源http://hdw.eweb4.com/out/440195.html

Page 98: 軟體專案如何做估計

接下來請你在紙上寫下

Page 99: 軟體專案如何做估計

紅色與綠色圈圈的大樓的高度

單位請用公分

Page 100: 軟體專案如何做估計

是的公分!!

我再讓你看一次圖

Page 101: 軟體專案如何做估計

來源http://hdw.eweb4.com/out/440195.html

Page 102: 軟體專案如何做估計

認真的啦! 公分啦!!!

Page 103: 軟體專案如何做估計

好了齁~

Page 104: 軟體專案如何做估計

接下來請你在紙上寫下

Page 105: 軟體專案如何做估計

這兩棟大樓的高度一樣用公分

只是這次請把地下停車場的深度也估進去

Page 106: 軟體專案如何做估計

沒錯地下停車場!!!!

我再讓你看一次圖

Page 107: 軟體專案如何做估計

來源http://hdw.eweb4.com/out/440195.html

Page 108: 軟體專案如何做估計

對,你看不到地下停車場

Page 109: 軟體專案如何做估計

但,你還是要估

Page 110: 軟體專案如何做估計

好了沒?

Page 111: 軟體專案如何做估計

再等你一下

Page 112: 軟體專案如何做估計

好了齁~

Page 113: 軟體專案如何做估計

接下來請你在紙上寫下

Page 114: 軟體專案如何做估計

紅色圈圈的大樓是綠色圈圈大樓的幾倍高?

包含地下停車場喔~~

再給你看一次圖

Page 115: 軟體專案如何做估計

來源http://hdw.eweb4.com/out/440195.html

Page 116: 軟體專案如何做估計

好的我們做了四次估計

Page 117: 軟體專案如何做估計

相對的估計兩次

(幾倍高?)

Page 118: 軟體專案如何做估計

絕對的估計兩次

(用公分)

Page 119: 軟體專案如何做估計

ㄟ,你有跟著玩吧?

有參與吧?

Page 120: 軟體專案如何做估計

請問!!

Page 121: 軟體專案如何做估計

你覺得那個比較簡單直覺?

那個比較能處理未知數?

(地下停車場)

Page 122: 軟體專案如何做估計

你覺得用公分來估計大樓高度

合理嗎?

有意義嗎?

Page 123: 軟體專案如何做估計

遊戲結束

Page 124: 軟體專案如何做估計

這個故事帶給我們的啟示是

Page 125: 軟體專案如何做估計

第一

Page 126: 軟體專案如何做估計

用無意義的單位來做估計是無意義的

Page 127: 軟體專案如何做估計

用人天來估計軟體專案就好比

用公分來估計大樓高度

Page 128: 軟體專案如何做估計

30人天的事情你找10個人來

3天就做得完嗎?

Page 129: 軟體專案如何做估計

第二

Page 130: 軟體專案如何做估計

相對的估計比絕對的估計好

Page 131: 軟體專案如何做估計

所以

Page 132: 軟體專案如何做估計

綜合來說

Page 133: 軟體專案如何做估計

這個feature是那個feature的幾倍難

Page 134: 軟體專案如何做估計

會比

Page 135: 軟體專案如何做估計

這個feature需要20人天而那個feature需要30人天

Page 136: 軟體專案如何做估計

來得好

Page 137: 軟體專案如何做估計

這兩個是agile的估計的原則

Page 138: 軟體專案如何做估計

還有另外一個原則

Page 139: 軟體專案如何做估計

就是

Page 140: 軟體專案如何做估計

請讓開發團隊全體成員來做估計

Page 141: 軟體專案如何做估計

不是PM

Page 142: 軟體專案如何做估計

不是資深的軟體工程師

Page 143: 軟體專案如何做估計

更不是業務客戶老闆

Page 144: 軟體專案如何做估計

(不過還是要尊重老闆啦…)

Page 145: 軟體專案如何做估計

再次強調是

全體開發團隊

Page 146: 軟體專案如何做估計

接下來

Page 147: 軟體專案如何做估計

我要講最重要的一點了

Page 148: 軟體專案如何做估計

重要到我都想把每個字換成紅色的了

Page 149: 軟體專案如何做估計

就這樣做吧!

Page 150: 軟體專案如何做估計

估計不是為了準確

是在讓大家提出對策

Page 151: 軟體專案如何做估計

估計不是為了準確是在

讓大家提出對策

估計不是為了準確是在

讓大家提出對策

Page 152: 軟體專案如何做估計

估計不是為了準確是在

讓大家提出對策

估計不是為了準確是在

讓大家提出對策

估計不是為了準確是在

讓大家提出對策

Page 153: 軟體專案如何做估計

因為很重要所以我又講了三次

Page 154: 軟體專案如何做估計

估計準的話很好

Page 155: 軟體專案如何做估計

不準的話沒關係

Page 156: 軟體專案如何做估計

但要確保身為PM的你

對估出來的結果有對策

Page 157: 軟體專案如何做估計

而且

Page 158: 軟體專案如何做估計

要每隔一段時間就做一次估計

Page 159: 軟體專案如何做估計

修正方向與策略

Page 160: 軟體專案如何做估計

你才能帶領團隊往你的理想前進

Page 161: 軟體專案如何做估計

講完了

Page 162: 軟體專案如何做估計

關於agile的估計我們來複習一下

Page 163: 軟體專案如何做估計

1. 用相對的方法來估(不用人天作單位)

2. 找全體團隊一起做估計3. 估計是為了採取相對應的對策,而不是為了準

Page 164: 軟體專案如何做估計

這很難

Page 165: 軟體專案如何做估計

但請記得第一篇講的

Page 166: 軟體專案如何做估計

軟體專案越快開始越好

Page 167: 軟體專案如何做估計

你的schedule壓力會越小

Page 168: 軟體專案如何做估計

而更能盡早採取對策面對專案的未知數

Page 169: 軟體專案如何做估計

最後

Page 170: 軟體專案如何做估計

我們總複習一下

Page 171: 軟體專案如何做估計

Waterfall

1. 強力推薦用PERT法2. 估計就是要準!!

Page 172: 軟體專案如何做估計

Agile

1. 用相對的方法去估計2. 不要求一定要準,而是盡快採取對策

Page 173: 軟體專案如何做估計

至於agile是怎麼用相對的方法

去做估計

Page 174: 軟體專案如何做估計

那是開發團隊的事情

Page 175: 軟體專案如何做估計

身為PM

其實不需要知道

Page 176: 軟體專案如何做估計

如果有興趣的話

Page 177: 軟體專案如何做估計

可以去google

“planning poker”

Page 178: 軟體專案如何做估計

或是找個內行的問一下

Page 179: 軟體專案如何做估計

還有一件觀念你也一定要具備

Page 180: 軟體專案如何做估計

在軟體專案裡面

Page 181: 軟體專案如何做估計

難的事情不一定要花很多時間

Page 182: 軟體專案如何做估計

可能開個硬體加速就好了

Page 183: 軟體專案如何做估計

簡單的事情不一定不用花時間

Page 184: 軟體專案如何做估計

比如說UI 基本上不難

但要做到漂亮是很花時間的

Page 185: 軟體專案如何做估計

所以難度跟時間

不一定是正相關的!!

Page 186: 軟體專案如何做估計

這也超重要

Page 187: 軟體專案如何做估計

最後提醒一件事

Page 188: 軟體專案如何做估計

估計啊

Page 189: 軟體專案如何做估計

其實是猜

Page 190: 軟體專案如何做估計

或許你也或多或少有感覺吧?

Page 191: 軟體專案如何做估計

但是對接收者來說(通常是你的長官)

Page 192: 軟體專案如何做估計

他們接收到的是承諾

Page 193: 軟體專案如何做估計

其實當團隊把他們估出來的數字給你的時候

Page 194: 軟體專案如何做估計

他們其實也是在猜測

Page 195: 軟體專案如何做估計

你也是把這數字當作是承諾

Page 196: 軟體專案如何做估計

把猜測的結果當作是承諾

Page 197: 軟體專案如何做估計

是很危險的

Page 198: 軟體專案如何做估計

這也是我覺得估計

之所以這麼難搞的原因

Page 199: 軟體專案如何做估計

所以

Page 200: 軟體專案如何做估計

要結束了

Page 201: 軟體專案如何做估計

我說了甚麼?

Page 202: 軟體專案如何做估計

1. Waterfall的估計2. Agile的估計3. 時間跟難度不是正相關4. 把估計當承諾是危險的

Page 203: 軟體專案如何做估計

建議你往回走幾頁去看總複習那頁

Page 204: 軟體專案如何做估計

以上報告完畢

Page 205: 軟體專案如何做估計

希望能幫到你

Page 206: 軟體專案如何做估計

超過200頁了bye~