2010年9月5日 星期日

Some Truths about Programming

Ref.: Some lesser-known truths about programming | Dot Mac

很多人認為程式設計在某一種程度上更偏向創作而不只是工程技術, Knuth 就是一個代表性的人物. 不過也有人認為是因為我們對這個領域所之甚少之故, 所以我們無法把技藝的部分抽絲剝繭出來研究, 然後成為科學. 這些人投入研究的結果, 發現了很多非常反直覺的現象.

生產力前 25 % 的公司給予程式設計師寬大的桌面和不受干擾的空間
* 人均工作空間 2.8坪
* 每人工作桌面約 0.84坪 (大約是 1.6 公尺x 1.6 公尺)
* 封閉式或180公分以上的隔板

另外, 也有研究顯示, 一個程式設計師平均一天大約可以產生 200 行程式碼; 如果用最後的完成品行數來估計, 毎個程式設計師平均來說, 每天貢獻 10 到 12 行而已. 而研究顯示(我的確在書中看過這樣的數據, 不過我忘記出處了), 優秀的程式設計師和差勁的程式設計師的差異, 不是在每天可以產生多少行程式碼 (實際上, 沒有顯著差別), 而是在最後還能貢獻在完成品裡的程式碼.

有人說這是因為早期使用 waterfall 開發模式,要花大量的時間在規格和文件上,所以這個數字才會這麼低落。換成 「敏捷開發」(Agile Development) 會不會比較好,我就不曉得了。

我個人其實沒有寫過大量的程式。雖然接過一些網頁的case,但是因為 HTML 的灌水後,所謂的程式碼行數其實意義不大。以這幾個月來協助開發生物資訊工具的經驗來說,其實和學者的研究結果相比,還真是相去不遠,雖然我們這樣的小計畫,通常都是單一程式設計師獨立開發,但是缺乏明確的規格和相對應的知識下,其實數字似乎也沒有想像中好看。

軟體開發真是不容易阿。

沒有留言: