本篇閱讀筆記是我對於《人月神話》一書中中關於團隊擴建的感悟。
開發團隊在很多方面滿足了迫切性的需要。十個人,其中七個專業人士在解決問題,而系統是一乙個人或者最多兩個人思考的產物,因此客觀上達到了概念的一致性。要特別注意傳統的兩人隊伍與外科醫生副手隊伍架構之間的區別。首先,傳統的團隊將工作進行劃分,每人負責部分工作的設計和實現。在外科手術團隊中,外科醫生和副手都了解所有的設計和全部的**。這節省了空間分配、磁碟訪問等的勞動量,同時也確保了工作概念上的完整性。
如果整個作能控制在範圍之內,10人的團隊無論如何組織,總是比較高效的。但是,當我們需要面對幾百人參與的大型任務時,如何應用外科手術團隊的概念呢?
擴建過程的成功依賴於這樣乙個事實,即每個部分的概念完整性得到了徹底的提高——決定設計的人員是原來的七分之一或更少。 所以,可以讓200人去解決問題,而僅僅需要協調20個人,即那些「外科醫生」的思路。
對於協調的問題,還是需要使用分解的技術。在這裡,可以認為整個系統必須具備概念上的完整性,要有乙個系統結構師從上至下地進行所有的設計。要使工作易於管理,必須清晰地劃分體系結構設計和實現之間的界線,系統結構師必須一絲不苟地專注於體系結構。總的說來,上述的角色分工和技術是可行的,在實際工作中,具有非常高的效率。這與我之前看到的程式設計師修煉之道一書中所講述的「注重實效的程式設計師」的概念不謀而合,所以效率永遠是程式設計師要學習的東西。
在程式設計師工作中,被打斷是破壞程式設計師生產力的罪魁禍首。程式設計師在被打斷後一般不能做到立刻重新開始程式設計。被打斷之後繼續程式設計通常程式設計師需要重新看一遍**,才能進入到程式設計的思維環境中,才能想起來被打斷之前的思維邏輯,再從被打斷的點重新開始。這個過程大概要花 30 分鐘以上。打斷越多,煩心越多,工作質量也會降低,bug 也會隨之增加—成為惡性迴圈。
如果從我剛開始程式設計,就這個事那個事不斷打斷我,那次數越多,我重新進入狀態耗時越長。如果你一直打斷我,就別怪我一天沒寫出來啥東西。所以降低外界干擾,減少打斷能夠顯著提高程式設計師生產力。
人月神話閱讀筆記01
本週讀了 人月神話 中的 焦油坑 和 人月神話 兩個章節,現來看看我的認識與理解。我們做專案應該滿足目標 時間進度 和預算的要求,這樣才能夠最大程度上避免陷入焦油坑中。新聞中有多兩個人在車庫中完成了大量的重要程式,其實我們應全面的看待這樣的神話。編寫陳偉乙個變成產品和程式設計系統需要編寫乙個程式的三...
人月神話閱讀筆記01
在眾多軟體專案中,缺乏合理的時間進度是造成專案滯後的最主要原因,它比其他所有因素加起來的影響還大。原因 我們對估算技術缺乏有效的研究,更加嚴肅地說,它反映了一種悄無聲息,但並不真實的假設 一切都將運作良好。第二,我們採用的估算技術隱含地假設人和月可以互換,錯誤地將進度與工作量相互混淆 第三,由於對自...
人月神話閱讀筆記01
第一章 焦油坑 程式設計行業 滿足我們內心深處的創造渴望和愉悅所有人的共有情感 提供了五種 樂趣 建立事物的快樂 本書第一章就明確的講述了程式設計職業的樂趣,無論是建立事物的樂趣,還是簡單學習的樂趣,還是駕馭介質之上的樂趣,還是開發了對人類有用的產品的樂趣等等。這些是每乙個程式設計人或多或少都會體會...