人月神話讀後感

來源:文萃谷 2.73W

、《人月神話》是預言了未來還是扼制了未來?

人月神話讀後感

事實是:我們目前的許多工程知識,——無論是從書上看到的,還是從實踐中經驗到的——大多未曾脱離《人月神話》之所言。

我在開篇中説《人月神話》“是一本可怕的書”。然而我感受懇摯的可怕之處在於:現今凡是論及工程(且不要讓人感受是離經叛道),那麼所解説的定然是Brooks的這麼的經驗以及由此推出的見解,可能在不違拗這些經驗和見解上的一些翔實的實作措施!我們全然不顧書中所言是假象,還是性質的推論,可能只是假象歸納的一個(未必準確的)答案。儘管這些答案大多數時候都好像預期地展目前你的切實工程中:

原文中還有眾多相仿的見解、假象和答案,都成為了切實工程中的既存假象。先民們所説的聖人以及通神者,皆因他們多數時候在準確地預言自己的切實。只有當這個“多數時候”變成半點的時候,先民們才會置疑聖人和通神者的力氣。其實我們懂得並未曾預言未來的人,大多數時候是兩種情形導致的假象:

他做出了準確的推斷;

你主觀地跟隨了他對未來的設定。

後者是風險的。大師們預言了未來也就改換了未來,即便未來未必“該當”好像他所預言的那樣。

但萬一這種預言的前提不準確,那麼未來定然脱離這種波及而回到它該當的事態上去。好像我們看到的另一些事實一樣,有許多假象闡明,我們正在歸來工程***的道路上摸索前進。我們也覺察,在大多數情形下,先哲們的預言在實踐中被檢討着,只是偶爾“不太靈光”。下表則列出一些不同的例子:

注1:我例舉了爽利的一些見解,並不闡明我是AP/XP的fans。AP/XP的問題另論,在這裏,我只是解釋存在一種不同的信念。

注2:Brooks爾後確認“定然丟棄原型”是一個不太準確的見解。

注3:Brooks在這裏未曾犯訛謬,只是他所談論的是狹義的流程圖,而我們例舉的時序圖則更廣義。

我們追憶上一細節,在《人月神話》中的那“31%的答案”的前提——也即便那7%的性質中,如下兩項是顯明猜忌的(也是重要置疑):

目標的性質:是大型工程,是系統項目,而不是過程

個體的性質:是私利性的

其實早就有人意識到個體的性質“未必全是私利的”,尊重這些個體就會帶來一些收穫。例如AP正是因為更尊重開發人員的稟性與力氣,以及互相間的配合而獲得了效率的晉級。

再進一步地説,既然Brooks設定了“大型工程或系統項目”這麼的目標,並給出了一些答案。那麼在“小那麼一點點的”工程項目中,是不是這些答案就無須定了呢?例如Brooks的眾多提倡,對於某些目標——例如你要用為期三個月的工夫開發一個的產品——就並不是很管用;可能大約無法厲行——例如你的羣體總共只有6個人,連“外科手術式的羣體”都組織不起來。

Brooks的答案對於同樣的目標,以及在他所述的“性質”未能發生改換時,還是比擬管用(或有厲行的可能性)。因而上述一些例外,總是在上述的“7%的性質”被抵賴或被改換的情形下獲得的。因而我們提出的問題是“如何抵賴或改換”這些難以撼動的性質。然而在我看來,Brooks早曾經在最佳位置上,給出了撬動它們的一個支點:

Brooks感受發生“自力更生小型過程”與“編程系統產品”是不同的問題。

Brooks談論的編程系統產品的規模究竟有多大呢?我想起碼該當是以IBM 360為參看的。不過書中在引用Joel Aron(IBM在馬裏蘭州蓋茲堡的系統技巧主管)的例子時説,“大型意味着過程員的數目超過25人,將近30,000行的`號召”。而按照《人月神話》的數據:人均效率800號召/人年,則這個“大型項目”該當必需1.5年能力告終。另外,還必需大約一倍的人工,來負責除開代碼之外的測驗、管教、文檔和溝通等工作。

好的,萬一你有一個“(起碼)50人,開發一年半”的項目,那麼你能夠先接受Brooks的答案去實踐一下:起碼你能夠有工夫來談論工程問題,也能夠組建那樣規模的羣體。然而,難道只有這麼的“大型工程”才算得工程,而“小那麼一點點”的就不算嗎?切實是,我們一方面在做着“小那麼一點點的”工程項目,另一方面在聽着全副業界嘈雜着“為更大規模的工程”而準備的工程理論。我們總在實踐Brooks的“答案”可能“預言”,而淡忘這些答案的前提:

Brooks的經驗源自對IBM 360等大型項目標實踐與分析;

Brooks所述的工程是要獲得編程系統產品;

Brooks感受編程系統產品的工作量可能是自力更生小型過程的9倍(在告終大約雷同功能的情形下)。

事實上我們目前的軟件工程的進展是被駕駛了,而不是被預言了。從性質上來説,Brooks在《人月神話》中只是談論了大型工程的厲行,以及相應規模下的羣體創立。而我們,便按照這麼的設定來擺開了全副軟件工作的工程化厲行。

促成這種現狀的,並不但僅是一本書的能力,還在於商業的能力。因為只有在這麼擴展開來的工作環境中,才可能有商業時機。——即便那些工程顧問與厲行專家歷來未曾厲行過“50人,開發一年半”這麼的項目,凡是他們能報出Brooks的名字,能談及某些工具在應付“大型項目”中的獲勝經驗,他們就曾經獲勝了一半了。

為什麼“爽利”之初頗受爭議?為什麼爽利對一些中小型的羣體顯得管用和可厲行?為什麼當這些爭議被擺在現在的獲勝平息爾後,傳統工程的理論家們卻不忘恨恨地評上一句:那是一種不能(或難以)利用於大型工程的措施呢?!

因為萬一大家都很“爽利”,都只做比這些大型工程“小那麼一點點”的工程,那麼傳統工程的專家們就失業了。反到來,只有把工程做大,大到“爽利”錯過了含義,而“宏偉”變成了性質的時候,傳統工程就可感受任何失利找到藉口:看啊,Brooks就説過“未曾銀彈”嘛。

熱門標籤