人月神話-55030104-李瑞_第1頁
人月神話-55030104-李瑞_第2頁
人月神話-55030104-李瑞_第3頁
人月神話-55030104-李瑞_第4頁
人月神話-55030104-李瑞_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章外科手術隊伍3.1問題的提出:效率高和效率低的實施者之間具體差別非常大,經常達到了數量級的水平年輕的軟件經理聲稱他們喜歡由頭等人才組成的小型、精干的隊伍如何在有意義的時間進度內創建大型的系統?2006.11.6Sackman、Erikson和Grand的試驗

Sackman,Erikson和Grand曾對一組具有經驗的程序人員進行測量,結論:

最好的和最差的表現在生產率上平均為10:1.

在運行速度和空間上具有5:1的驚人差異.經驗和實際的表現沒有相互聯系.2006.11.6一個觀點需要協作溝通的人員的數量影響著開發成本原因:成本的主要組成部分是相互的溝通和交流,以及更正溝通不當所引起的不良結果(系統調試)結論:系統應該由盡可能少的人員開發.一擁而上的開發方法是高成本的,速度緩慢的,不充分的,開發出的是無法在概念上進行集成的產品.2006.11.6一個例子一個200人的項目中,有25個最能干和最有開發經驗的項目經理,那么開除剩下的175名程序員,讓項目經理來編程開發以一當十精悍2006.11.6驗證原開發隊伍不是理想的小型強有力的團隊(通常小于10人)至少要5名管理人員需要額外的支持(財務,機器)若采用一擁而上的開發方法,原有200人的隊伍仍然不足以開發真正的大型系統

2006.11.6驗證(cont)原因舉例:考慮OS/360項目在頂峰時,有超過1000人在為它工作——程序員、文檔編制人員、操作人員、職員,秘書、管理人員、支持小組等等。從1963年到1966年,設計、編碼和文檔工作花費了大約5000人年如果人月可以等量置換的話,我們所假設的200人隊伍需要25年的時間,才能使產品達到現有的水平2006.11.6小型、精干隊伍概念上的問題對于真正意義上的大型系統,它太慢了對于效率和概念的完整性來說,最好由少數干練的人員來設計和開發對于大型系統,則需要大量的人手,使產品在時間上滿足要求如何調和這兩方面的矛盾呢?

2006.11.63.2Mills的建議嶄新的、創造性大型項目的每一個部分由一個團隊解決類似外科手術的方式,而并非一擁而上2006.11.6外科手術隊伍角色分工(10人)外科醫生Mills稱之為首席程序員。他親自定義功能和性能技術說明書,設計程序,編制源代碼,測試以及書寫技術文檔。他使用例如PL/I的結構化編程語言,擁有對計算機系統的訪問能力;該計算機系統不僅僅能進行測試,還存儲程序的各種版本,以允許簡單的文件更新,并對他的文檔提供文本編輯能力。首席程序員需要極高的天分、十年的經驗和應用數學、業務數據處理或其他方面的大量系統和應用知識。2006.11.6外科手術隊伍角色分工(10人)cont1副手外科醫生的后備,能完成任何一部分工作,但是相對具有較少的經驗。他的主要作用是作為設計的思考者、討論者和評估人員。外科醫生試圖和他溝通設計,但不受到他建議的限制。副手經常在與其他團隊的功能和接口討論中代表自己的小組。他需要詳細了解所有的代碼,研究設計策略的備選方案。顯然,他充當外科醫生的保險機制。他甚至可能編制代碼,但針對代碼的任何部分,不承擔具體的開發職責。2006.11.6外科手術隊伍角色分工(10人)cont2管理員外科醫生是老板,他必須在人員、加薪等方面具有決定權,但他決不能在這些事務上浪費任何時間。因而,他需要一個控制財務、人員、工作地點安排和機器的專業管理人員,該管理員充當與組織中其他管理機構的接口。Baker建議僅在項目具有法律、合同、報表和財務方面的需求時,管理員才具有全職責任。否則,一個管理員可以為兩個團隊服務2006.11.6外科手術隊伍角色分工(10人)cont3編輯外科醫生負責產生文檔——出于最大清晰度的考慮,他必須書寫文檔。對內部描述和外部描述都是如此。而編輯根據外科醫生的草稿或者口述的手稿,進行分析和重新組織,提供各種參考信息和書目,對多個版本進行維護以及監督文檔生成的機制。2006.11.6外科手術隊伍角色分工(10人)cont4兩個秘書

管理員和編輯每個人需要一個秘書。管理員的秘書負責項目的協作一致和非產品文件。2006.11.6外科手術隊伍角色分工(10人)cont5程序職員

他負責維護編程產品庫中所有團隊的技術記錄。該職員接受秘書性質的培訓,承擔機器碼文件和可讀文件的相關管理責任。

程序職員的專業化分工,使程序員從書記的雜事中解放出來,同時還可以對那些雜事進行系統整理,確保了它們的質量,并強化了團隊最有價值的財富——工作產品。例42006.11.6外科手術隊伍角色分工(10人)cont6工具維護人員現在已經有很多文件編輯、文本編輯和交互式調試等工具,因此團隊很少再需要自己的機器和機器操作人員。但是這些工具使用起來必須毫無疑問地令人滿意,而且需要具備較高的可靠性。外科醫生則是這些工具、服務可用性的唯一評判人員。他需要一個工具維護人員,保證所有基本服務的可靠性,以及承擔團隊成員所需要的特殊工具(特別是交互式計算機服務)的構建、維護和升級責任。即使已經擁有非常卓越的、可靠的集中式服務,每個團隊仍然要有自己的工具人員。因為他的工作是檢查他的外科醫生所需要的工具。工具維護人員常常要開發一些實用程序、編制具有目錄的過程庫以及宏庫2006.11.6外科手術隊伍角色分工(10人)cont7測試人員外科醫生需要大量合適的測試用例,用來對他所編寫的工作片段,以及對整個工作進行測試。因此,測試人員既是為他的各個功能設計系統測試用例的對頭,同時也是為他的日常調試設計測試數據的助手。他還負責計劃測試的步驟和為測試搭建測試平臺2006.11.6外科手術隊伍角色分工(10人)cont8語言專家隨著Algol語言的出現,人們開始認識到大多數計算機項目中,總有一兩個樂于掌握復雜編程語言的人。這些專家非常有幫助,很快大家會向他咨詢。這些天才不同于外科醫生,外科醫生主要是系統設計者以及考慮系統的整體表現。而語言專家則尋找一種簡潔、有效的使用語言的方法來解決復雜、晦澀或者棘手的問題。他通常需要對技術進行一些研究(兩到三天)。通常一個語言專家可以為兩個到三個外科醫生服務。

2006.11.63.3如何運作概念的一致性:外科醫生開發團隊在很多方面滿足了迫切性的需要。十個人,其中七個專業人士在解決問題,而系統是一個人或者最多兩個人思考的產物2006.11.6傳統的兩人隊伍與外科醫生—副手隊伍架構之間的區別:傳統的團隊將工作進行劃分,每人負責一部分工作的設計和實現。外科手術團隊中,外科醫生和副手都了解所有的設計和全部的代碼。節省了空間分配、磁盤訪問等的勞動量,同時也確保了工作概念上的完整性傳統的隊伍中大家是平等的,出現觀點的差異時,不可避免地需要討論和進行相互的妥協和讓步。在外科手術團隊中,不存在利益的差別,觀點的不一致由外科醫生單方面來統一。這兩種團隊組建上的差異——對問題不進行分解和上下級的關系——使外科手術隊伍可以達到客觀的一致性2006.11.6成員間的交流模式2006.11.63.4團隊的擴建面臨的挑戰:如何完成5000人年的項目,而不是20或30人年規模的系統?如果整個工作能控制在范圍之內,10人的團隊無論如何組織,總是比較高效的。但是,當我們需要面對幾百人參與的大型任務時,如何應用外科手術團隊的概念呢?2006.11.6擴建的思想擴建的思想:擴建過程的成功依賴于這樣一個事實,即每個部分的概念完整性得到了徹底的提高——決定設計的人員是原來的七分之一或更少。所以,可以讓200人去解決問題,而僅僅需要協調20個人,即那些“外科醫生”的思路

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論