人月神話

預估 - Calling the Shot

by Ensky Lin

練習就是最好的教練

Practice is the best of all instructors.

 

- 西流士,古羅馬喜劇作家

經驗的代價是昂貴的,但愚人就只能從經驗中學習

Experience is a dear teacher, but fools will learn at no other.

《Poor Richard's Almanac》 - Benjamin Franklin

費力程度 =
常數 x (指令數量)^1.5

 

(後修正為 1.05 - 1.2 之間)

人月

機器指令 (*1000)

不過這個公式基本上不能用

  • 寫程式佔了 1/6 開發時程

    • 誤差會被放大很多

  • 開發小系統和大系統也差很多

  • 線性推測跟用跑 100M 的時間去估計跑 1KM 一樣沒有意義

Portman 的研究

專業的團隊認真的估計時程

結果還是 delay 了整整兩倍

雜務佔了 Programmer 50% 時間

Aron 的研究

溝通量影響產能超多

(單位:指令 / 人年)

溝通量很少:10000

中等:5000

很多:1500

Harr 的研究 - coding 速度

Harr 的研究 - debug 速度

結論

  • 費力程度和程式大小成指數關係(1.05-1.2之間)

結論

  • 程式設計師大概有 50% 的時間不在工作

結論

  • 溝通非常影響生產力,隨著頻繁與否,可能有 5 倍左右的生產力差距。

結論

  • 使用越高階的語言,生產力越高,可能會有倍數差距。

Made with Slides.com