人月神話1-3章整理及思考

 

焦油坑

在過去幾十年的軟件發展史中,大型開發系統團隊的確開發出了可運行的系統,可是很是少數的項目知足了目標、時間進度和預算的要求,一個接一個淹沒在焦油坑中。究其根源,在於問題紛繁複雜,難以解決。編程

編程系統產品

 

由上圖能夠看出,程序變成編程產品須要文檔、並可使用、修復、擴展,編程產品的成本至少是程序的三倍。程序變成編程系統中的一個構件單元須要與其餘程序交互,用來組裝和搭建整個系統,測試也會更爲複雜,相同功能的編程系統構件的成本至少是獨立程序的三倍。若是系統有大量的組成單元,成本還會更高。學習

最後的編程系統產品纔是真正有用的產品,是大多數系統開發的目標,這纔是真正有用的產品。測試

職業的樂趣

編程的有趣在於首先它給人建立事物的純粹快樂;其次,開發對其餘人真正有用的東西;實現系統各個部分並組合到最終實現系統這個過程體現出魔術般的力量;學習的樂趣,編程過程當中也在不斷提高本身;最後,樂趣還在於編程易於駕馭的介質。設計

總之,編程不只知足咱們進行創造的渴望還愉悅嘞咱們的內在情感。blog

職業的苦惱

編程的苦惱在於必須追求完美;由他人控制工做環境和工做目標;尋找以及處理BUG的過程是枯燥痛苦的;軟件產品更新速度飛快,常常投入大量勞動後收穫甚微。開發

綜上,編程就像一個焦油坑,這是一個樂趣與苦惱並存的創造性活動。文檔

人月神話

在軟件項目中,常常因爲缺少合理的時間進度致使項目滯後,緣由在於:管理者對估算技術缺少足夠的研究;錯誤地認爲人和月能夠互換;軟件經理對本身的估算缺少信心而沒有耐心持續地估算這項工做;缺乏跟蹤和監督;盲目增長人力。產品

樂觀主義

系統編程進度安排都假設一切都進度良好而沒有留出遇到意外問題的時間,這是致使開發時間滯後乃至項目延誤的一個重要緣由。效率

在單個任務中,一切正常或許能夠實現,可是在大型編程中,因爲常常有任務互相制約甚至先後次序的狀況,一切正常幾乎就不可能實現了。擴展

人月

用人月做爲衡量一項工做的規模是一個危險和帶有欺騙性的神話。它暗示着人員數量和時間是能夠相互替換的。

事實上,人數和時間的互換在現實軟件團隊開發中不可能實現,這二者之間並不是線性關係。當任務因爲次序限制不能分解時,增長人力不會有任何幫助。當任務能夠分解時,增長人手也比未調整前要差一些。形成這種狀況的緣由是培訓和相互交流形成的溝通負擔。須要的交流越多,形成的後果越嚴重。

因此,增長更多的人手其實是延長了時間進度。

系統測試

系統測試因爲順序限制尤其影響時間進度,並且其要求的時間依賴於所遇到的錯誤、缺陷數量以及捕捉它們的程度。因此,分配給測試的時間應該投入進度中一半的時間。若是不爲系統測試安排足夠時間很容易形成巨大的災難。

空泛的估算及重複產生的進度災難

爲了知足顧客指望的日期而作不合理進度安排,在軟件領域尤其廣泛。並且,非階段化方法的採用,不足的數據支持,加上軟件經理的錯誤估計,很難生產出健壯可靠和規避風險的估計。

對於此問題,咱們要麼推行可靠地估算規則,要麼項目經理堅持確信本身的經驗和直覺比從指望派生出的結果要強得多。

向進度落後的項目中增長人手,只會使進度更加落後。若是在計劃較短的時間內分派較多的人手,將沒法獲得可行的進度表。

總之,缺少合理的時間進度是形成項目滯後的最主要緣由,它比其餘全部因素加起來的影響還要大。

外科手術隊伍

問題與Mills 的建議

須要協做溝通的人員的數量影響着開發成本,由於成本的主要組成部分是相互的溝通和交流,以及更正溝通不當所引發的不良結果。絕大多數大型編程系統的經驗顯示出,蜂擁而上的開發方法是高成本的、速度緩慢的、不充分的,開發出的是沒法在概念上進行集成的產品。

對於效率和概念的完整性來講,最好由少數幹練的人員來設計和開發,而對於大型系統,則須要大量的人手,以使產品能在時間上知足要求。

如何調和這兩方面的矛盾呢?

Mills 建議大型項目的每個部分由一個團隊解決,可是同每一個成員截取問題某個部分的作法相反,由一我的來進行問題的分解,其餘人給予他所須要的支持,以提升效率和生產力。

如何運做

首先,外科醫生和副手都瞭解全部的設計和所有的代碼。這節省了空間分配、磁盤訪問等的勞動量,同時也確保了工做概念上的完整性。

第二,在外科手術團隊中,不存在利益的差異,觀點的不一致由外科醫生單方面來統一,能夠達到客觀的一致性。

另外,團隊中剩餘人員職能的專業化分工是高效的關鍵,它使成員之間採用很是簡單的交流模式成爲可能。

團隊的擴建

         對於協調的問題,仍是須要使用分解的技術。能夠認爲整個系統必須具有概念上的完整性,要有一個系統結構師從上至下地進行全部的設計。要使工做易於管理,必須清晰地劃分體系結構設計和實現之間的界線,系統結構師必須專一於體系結構。總的說來,上述的角色分工和技術是可行的,在實際工做中,具備很是高的效率。

相關文章
相關標籤/搜索