《人月神話》 讀書筆記
綜述
這是一本值得每一位軟件工程人員一讀的好書。本書詳細探討了軟件工程中“高效性”與“穩定性”的問題。書中的經典語錄數不勝數,此處僅摘錄三則,聯系實際,作一些感想。
v 用人月作為衡量一項工作的規模是一個危險和帶有欺騙性的神話。
——摘自《人月神話》
在本書中,傳統的以 [人數×時間] 作為工作量的效率公式被推翻。這是一個比較新的觀點,但正被越來越多的人所接受。在現代化的社會之中,“人月”的概念被逐漸淘汰,因為老的社會組織架構正在以一種全新的組織形式漸漸充滿整個社會。這種組織架構最先表現在軟件行業,但隨著互聯網的普及,網絡以一股前所未有的洪流湧入各行各業,成為幾乎一切學科的基石和學科間交融的平臺。於是,軟件行業自身獨特的組織架構也融入到各行各業之中。
那麽,“人月”為何具有欺騙性,而接受該觀點又為何如此危險?
這種欺騙性是傳統與現代的沖突所造成的。因為傳統的概念根深蒂固,無知的老一輩一代代傳承,它便像病毒一樣深潛在新一代子民的身上。“看似不容置疑的錯誤”正是其“欺騙性”所在。而這裏所述的“危險”,是一種事倍功半的時間喪失的危險——更甚者,它是被時代所淘汰的危險。隨著新概念、新觀點的不斷提出,老觀點和它們的子民註定將被新時代淘汰。
v 如果要得到系統概念上的完整性,那麽必須控制這些概念。這實際上是一種無需任何歉意的貴族專制統治。
——摘自《人月神話》
這句話非常好地道出了任何一種計算機語言的共性——少數專家制定、多數用戶使用。不得不說,計算機語言是與日常語言完全不同的存在。日常語言是群眾創造的,它不分正誤,只為表情達意,群眾使用語言的廣度和頻度直接影響了日常語言的發展。而計算機語言是封閉的,群眾沒有修改語言的權利,它本身有鮮明的正誤之分,錯誤的語句只有被不斷修改,直到符合正確的標準。
在這樣一種特殊性下,或許有人會質疑計算機語言制定與發展的合理性。但我們必須註意到,將計算機語言類比於任何一種我們所熟知的日常語言都是不恰當的。它被創造的目的就不是讓我們用戶去理解,而是讓機器去理解。而正如《人月神話》中所述,這種“貴族專制”是”毫無歉意”的,因為只有嚴密得幾近於苛刻的規則,才能打造出機器本身的健全性,才能為這些本沒有任何感情的邏輯結構賦予某些超越我們的思考運算的能力,甚至讓我們產生與它們平等交流的幻想。
v 巴比倫塔項目的失敗是因為缺乏交流,以及交流的結果——組織。
——摘自《人月神話》
新時代的組織架構中,“交流”和“組織”被提到相當高的一個高度——它以絕對的優勢淩駕於“天資”與“勤奮”。但這並不代表後兩者不重要。此處的深層含義,正是人類這個種族得以淩駕於地球上其他種族的原因。“天資”與“勤奮”的確是我們快速發展的重要因素,但真正讓我們得到文明的,是團隊的合作與社會的組織。
作為一個軟件工程的團隊成員,我們必須吸取巴比倫塔無法建成的教訓。思維的碰撞產生更為有效的積累,而碰撞的頻率和強度直接決定了積累的多少。
《人月神話》 讀書筆記