《人月神话》---1
? ? ? ? 早就聽說過這本書的大名了。在課上的時候老師就推薦我們?nèi)タ催@本書,這可是軟件書中的戰(zhàn)斗機,但是很慚愧,一直沒有去了解這本書,甚至有時候碰到這本書,只是感覺很熟悉的樣子,但是還是不知道到里面說的是啥。有一種疑問,老師怎么會推薦我們?nèi)タ葱≌f呢?人 月 神 話 這不是一些傳說嗎?直到去了解了這本書的內(nèi)容之后,才發(fā)現(xiàn)根本不是這樣的,這是軟件開發(fā)人員必讀書目之一。因為這是一個程序員成長為大牛的必經(jīng)之路,也是一個好的項目成功完成的必須了解的歷程?!度嗽律裨挕繁辉u價為,“將技術(shù)書寫成散文集,把經(jīng)驗教訓(xùn)和經(jīng)歷背景等一一道來”。這本書的名字并不是人類和月球之間的神話故事,而是軟件工程的一些迷思,人月是一個人一個月的人力單位。
? ? 通過本書我對進度安排和Brooks提出這個定律特別的感興趣,因為從未想到過編程竟然是這樣的。
??? 一.軟件工程的時間分配
??? 作者提出軟件工程中各個項目的比例應(yīng)該如下:
??? 1/3 planning
??? 1/6 coding
??? 1/4 component test and early system test
1/4 system test, all components in hand
即關(guān)于進度安排,1/3計劃、1/6編碼、1/4構(gòu)件測試以及1/4系統(tǒng)測試。
出乎我的意料,本來以為編程時間應(yīng)該成為軟件開發(fā)中最耗時的部分,事實上卻是相反的,編程時間被分配了最少的時間。軟件項目團隊被建議,使用三分之一的時間對項目進行各種規(guī)劃、設(shè)計,實際的編程時間并不是主要時間部分,余下一半時間被用來進行各種測試,檢測、排除軟件中的各種問題。這也許就是現(xiàn)實中軟件工程和我們平時小打小鬧寫程序最大的區(qū)別,規(guī)范的規(guī)劃、操作,配套的文檔,嚴謹全面的測試階段,科學(xué)的時間任務(wù)管理。即使我們在現(xiàn)實中做不到那么專業(yè),較早學(xué)到這些意識也是很好的。
??? 二.任務(wù)落后難道增加勞力不對嗎?
??? Brooks提出一個定律:
??? “給一個進度落后的軟件項目團隊中增援更多的人力,只會將進度拖后更多”
這個觀點完全顛覆了我的觀點,在之前我一直認為,對一個項目或者工程來講,如果落后了我們可以按照建筑上蓋房子的方式來完成我們的工程,可以增加一個一小隊,從而人多力量大,眾人拾材火焰高啊,必定會比原來的人進度快一些。但是看完Brooks這個定律后真的不再這么認為了,因為在項目開始后的一段時間內(nèi),這些參與開發(fā)的人雖然進程落后但是已經(jīng)對項目比較熟悉了,如果現(xiàn)在在引入新的人,勢必會是老的員工培訓(xùn)新的員工這樣會使老員工的時間減少,同時新的員工了解這個項目還得花時間,如果分配給員工任務(wù)后,員工還需要在這個基礎(chǔ)上再次適應(yīng),這樣必定會增加開發(fā)的時間。
在我讀這本書之前從未想到過完成項目的時間分配竟然是這樣,編程占得時間是最少的,也從未認識到增加人數(shù)并不能使一個進度落后的軟件項目按時或者提前完成。在讀到這里是真的讓我耳目一新,有種豁然開朗的感覺,雖然沒有編過大的項目也沒有按著上面的時間來安排自己的程序,但是,深度思考確實讓我對這個話題深感興趣。
轉(zhuǎn)載于:https://www.cnblogs.com/zhaochenguang/p/8505355.html
總結(jié)
以上是生活随笔為你收集整理的《人月神话》---1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visula Basic程序设计理论与实
- 下一篇: 【转】C# 操作系统防火墙