Clean Coder的估計

這篇又不講scrum了,結果說好要寫scrum的,關於scrum的文章卻沒幾篇...



在Clean Coder這本書裡面,聊到了估計,寫得超好的,用這篇文章把它簡單介紹一下。

 要講數學囉~~~~
Blogger打數學符號不好打,大家加減看。

PERT法 (Program Evaluation and Review Technique):

簡單的說,就是對一件事情或是一個任務作估計的時候要給三組數字:
  • 極樂觀的估計 -- O
  • 一般的估計 -- N
  • 極悲觀的估計 -- P

在樂觀與悲觀的估計,都是假設發生機率在1%之下的情況。
得到這三個值(O,N,P)以後,我們就可以來估計了。
  • 期望完成時間 E = (O+4N+P) / 6
  • 標準差  stdev = (P - O) / 6
得到這兩個值以後,套用統計的理論,在正負一個標準差之內的機率是68%,在正負兩個標準差之內是95%,以Clean Coder書上的例子,E是4.2天,stdev是1.8天,所以很有可能可以在兩個標準差之內,也就是4.2 + 1.8*2 = 7.8,約八天內做完。

假如有很多事情的話,就把這些東西加起來算一算。

總期望完成時間 E_total = E1 + E2 + ... +En
就是把每一項的E值加起來的意思。

而總標準差 stdev_total = sqrt( stdev1^2 + stdev2^2 + stdev3^2 + ... + stdevn^2 )
就是把每一項的stdev的值,平方,加起來以後開根號。

然後,就可以拿著這些數字(E_total, stdev_total)去得到兩倍標準差內的值是A天,而一倍標準差之內是B天,就大概可以跟老闆說,我們估計在這些東西,95%的機率下,可以在A天內完成,而65%的機率下,可以在B天內完成,簡單清晰明瞭易懂,我相信老闆會對這個員工大大的加分。

這太帥了,不是嗎?


估計是準確的嗎?

不是。

所以估計不準的話,真的是正常的。
但不要忘記,估計是為了讓我們能採取相對應的行動。

結論


我有兩位前同事,一位是PM一位是業務,兩方似乎為了估計而鬧得非常不愉快,可是兩位都是我的好朋友,真的很可惜沒能早一點幫到他們。

因為,估計對於業務來說是承諾,而對於PM或是RD來說,是猜測。
把猜測當作是承諾是非常危險的。

還有,Clean coder真的是本好書。








留言