從很久之前就有仔細閱讀《人月神話》的想法,也嘗試過幾次,卻總是因為各種各樣的原因半途而廢。其中乙個重要的原因就是書中列舉的都是大型專案,我自己卻只參與過一些小不點專案,沒辦法把自己的經歷代入然後進行思考。但是,即使「我相信由於人員的分工,大型程式設計專案碰到的管理問題和小專案區別很大」,它們之間仍然有一定的共同點吧。那麼,這次我一定要慢慢地讀完它----當然,不會對我產生什麼立桿見影的效果,但相信會對我產生潛移默化的影響的。
焦油坑(the tar pit)
焦油坑是本書的第一章,大多數書會提出問題或者對問題進行大致的描述,這裡也沒有什麼例外。作者以史前巨獸在焦油坑中掙扎模擬大型專案中開發團隊遇到的問題--看起來沒有任何單獨的問題會導致困難,似乎每個問題都可以被解決,但是當它們糾纏和累積在一起的時候,問題變得很複雜,難以解決。
在這裡,作者說,「如果我們想解決問題,就必須試圖先去理解它。因此,首先讓我們來認識一下軟體開發這個職業,以及充滿在這個職業中的樂趣和苦惱吧。」。程式設計的樂趣與苦惱是我從來沒有忘記的,只是隨著從事這一職業時間的變長,感覺到樂趣的機會越來越少了,也許這是乙個危險的傾向。可是有什麼辦法呢,我從來都只是乙個凡人。還有就是現實條件通常會放大其中的苦惱,壓縮其中的樂趣。
那麼接下來了解一下作者心目中的樂趣與苦惱,並與我們實際生活中的進行一下對比。
/*職業的樂趣
程式設計為什麼有趣?作為回報,它的從業者期望得到什麼樣的快樂?
首先是一種建立事物的純粹快樂。
其次,快樂來自於開發對其他人有用的東西。
第三是整個過程體現出魔術般的力量——將相互嚙合的零部件組裝在一起,看到它們精妙地執行,得到預先所希望的結果。
第四是學習的樂趣,來自於這項工作的非重複特性。
最後,樂趣還來自於工作在如此易於駕馭的介質上。*/
這個職業的樂趣,主要就是體現在創造事物及由此產生的成就感上面。類似於無中生有的魔術甚至法術般的力量讓人沉醉其中。當然了,初學程式設計時的體會比較深一點,工作中重複性的活動越來越多,這種樂趣就越來越少。
/*職業的苦惱
然而這個過程並不全都是喜悅。我們只有事先了解一些程式設計固有的煩惱,這樣,當它們真的出現時,才能更加坦然地面對。
首先,必須追求完美。
其次,是由他人來設定目標,供給資源,提供資訊。
下乙個煩惱——概念性設計是有趣的,但尋找瑣碎的bug卻只是一項重複性的活動。伴隨著創造性活動的,往往是枯燥沉悶的時間和艱苦的勞動。
另外,人們發現除錯和查錯往往是線性收斂的,或者更糟糕的是,具有二次方的複雜度。
最後乙個苦惱,有時也是一種無奈——當投入了大量辛苦的勞動,產品在即將完成或者終於完成的時候,卻已顯得陳舊過時。*/
人月神話 焦油坑
岸上的船兒,如何海上的燈塔,無法移動。荷蘭諺語 焦油坑的意思說明了即使你足夠強大,也無法擺脫束搏而沉到坑底。it專案也是這樣,不論是開發大型軟體系統還是小型專案,都會遇到諸多複雜的問題和影響因素,專案本身就是乙個足夠複雜的動態系統,沒有最優,只有滿意。專案四要素,人員,組織環境,干係人,外部依賴和約...
人月神話 mobi 人月神話 焦油坑
所有的程式設計人員都是樂觀主義者 在軟體領域,很少能有像 人月神話 一樣具有深遠影響力和暢銷不衰的著作。brooks博士為人們管理複雜專案提供了最具洞察力的見解,既有很多發人深省的觀點,又有大量軟體工程的實踐。以 焦油坑 一章開篇,這一得名於自然界的產物,遠古時代困住了無數的洪荒巨獸。而作為人類歷史...
人月神話筆記 焦油坑 人月神話
程式 程式設計系統 程式設計產品 程式設計系統產品 程式設計產品 程式設計系統 程式設計系統產品 美食的烹調需要時間 片刻等待,更多美味,更多享受。good cooking takes time.if you are made to wait,it is to serve you better,an...