《人月神話》閱讀筆記(3)
對於效率和概念的完整性來說,最好由少數幹練的人員來設計和開發,而對於大型系統,
則需要大量的人手,以使產品能在時間上滿足要求。如何調和這兩方面的矛盾呢?建立怎
樣的組織架構是項目成功的關鍵。第三章作者提到了Mills的提議“大型項目的每一個
部分由一個團隊解決,但是該隊伍以類似外科手術的方式組建,而並非一擁而上”。即提
倡外科手術式的團隊組織:就是一個主治大夫,其他的如助理大夫,護士等,都是配合主
治大夫來進行手術。在軟件開發組織上的過份民主,往往帶來的是沒有效率和責任,參與
其中的人想法太多,層面參差不齊。所以,軟件開發的組織,應該借鑒外科手術式的團隊
方式,有一個主要的負責人,其他人都是分工協作的副手,這樣效率最好,結果最好。
外科手術這一章節其實比較簡單,但是這個比喻可以說是很形象了。外科手術隊伍的目的是
為了提高整體效率,要達到這個目的就需要分清主次,由外科醫生和副手主體人員復制解決問
題和保持概念完整性。
《人月神話》Brooks一直強調概念完整性的重要性。概念的完整性,是指針對於一個領域,不
僅了解該領域的所有對象,並且了解所有對象之間的關系。概念不完整,就在開始註定一個軟
件項目要失敗了。概念不完整,換言之,就是,始終都沒有搞明白問題域有那些對象,各個對
象之間是什麽樣的聯系。而概念的完整性,是建立在已經完全了解領域的對象及對象之間的關
聯。這種完全了解,並不是感性地了解,而是理性地了解。保證概念的完整性,一方面需要設
計人員具備良好的經驗。同時,不要嘗試著去將所有人的意見都融入其中。概念完整性是系統
設計中最重要的考慮因素。軟件項目的核心概念要由很少的人來完成,以保證概念的完整性。
少就是多,項目的定位需要和功能多少的權衡。太多的想法,使項目沒有焦點,什麽都要放進
去,結果什麽都做不像。
最後就是軟件開發過程中必要的溝通手段。軟件開發中最大的風險往往不是技術的缺陷,而是
缺少溝通。工作人員之間需要溝通確定任務分工,老員工需要花時間跟新員工交流清楚工作內
容,程序員更是需要與客戶做好溝通,、外科醫生和副手是核心保證高度的概念完整性,跟傳
統按生命周期階段來分角色的團隊相比,我們可以看到一個顯著的差別就是流水線式的溝通方
式朝扁平的總線式溝通方式轉化。這種方式溝通更加高效,同時概念完整性更加容易保證,當
出現沖突的時候外科醫生具有絕對的權威。
以上便是我對人月神話第三章外科醫生的理解與感悟。
《人月神話》閱讀筆記(3)