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一位是業務,兩方似乎為了估計而鬧得非常不愉快,可是兩位都是我的好朋友,真的很可惜...