管理團隊環境
每天,我都不止一次地意識到,我外在和內在的生活是如何建立在他人勞動的基礎之上,他們有的還活著,有的已經不在這個世界上了;我也意識到我必須一心一意地努力,以回報我所接受的一切恩澤。當我想到我借用了別人太多的成果時,我的內心就會因為這種痛苦而不再平靜。---------阿爾伯特.愛因斯坦
這是一個小測試。這段話和你對天才愛因斯坦的想像相符嗎?你能想到愛因斯坦對別人勞動的感激之情如此強烈嗎?
管理者一個非常重要的任務,就是創建并培養一個有適應能力的團隊。沒有這樣的團隊,任何一個軟件組織都無法建立駕馭自如型文化,或者超越未雨綢繆文化。
第18章 為什么是團隊?
當一組人共同執行某個設計時,他們和一個管弦樂隊很相似,但絕不是團隊。對一個真正的團隊來說,要么有一個帶著鞭子的驅策者,要么有一個對立的團隊存在。在管弦樂隊中,每個演奏員-----(工人)都在詮釋-----(工作)----同一個樂譜------(設計)-----并且演奏各自的樂器----(應用專門技術)------作為專家在需要他們的舞臺上表演。
---------------------大衛.派
Ø 趨于完美的團隊
最容易看到團隊影響質量的地方之一就是偵錯團隊。他們的任務是負責找到發生錯誤的位置,防止錯誤報告中的問題不斷循環地出現并且找人解決它們。這些沒完沒了的問題最常在反復無常型組織中出現,在這些組織中,管理者經常以建立更有效的偵錯團隊來達到立竿見影的效果。
1) 各種各樣的眼睛
要建立一個有效的偵錯團隊,你首先要做的是選擇多樣化的成員。多樣化對偵錯團隊來說異常關鍵------多樣的經驗、組織中的關系,特別是多樣的思維模式。
2) 責任之旅
l 有了多樣化的團隊后,管理者的下一個任務就是把所有的成員召集到一個房間里,尋找一段獨立部分中的錯誤。
l 在面臨危機時,成立偵錯團隊是一個非常有效的管理手段。
l 把人們集中在一個房間內處理問題,能激發希望和興奮感,另外,這種情感可以感染整個組織。
3) 平行和“比較”
l 有時,減少偵錯時間是非常重要的。
l “看誰先找到”這樣一種適度而友好的競爭被證明具有一定的激勵作用,只要它不失控。我把這個方法稱之為“競合”,意思是“競爭的合作”。
l 很容易就能指出各種秉性的人對待“競合”的態度。團隊建立者們會抵制該做法,因為他們害怕團隊一旦失敗會很尷尬。組織者會擔心兩個團隊致力于同一個問題所導致的效率問題。展望者有時會認為應該讓最好的團隊獨自去解決問題。可是,到了麻煩解決者這兒,他們會非常喜歡這個辦法,因為這在工作之外還帶來一種做游戲的感覺。
Ø 技術評審團隊
糾錯過程的一個部分就是選擇一個方案。另一個部分就是對每一個提出的方案進行評審,以防止方案實施時出現大的副作用。
1)錯誤預防
在糾錯過程中,最大的失敗往往來自解決方案的副作用,或者解決其他問題時造成的新錯誤。
2)過程改進
l 評審通過直接發現錯誤來實現。測試則通過跟蹤運行失敗后面的錯誤來實現。兩者都用于改進產品,但評審還用于改進過程。
l 評審的過程本身也是個學習的過程。管理者還可以利用評審來改進評審之外的過程。
l 一旦感受到技術評審的好處,評審時間的安排就變得很重要了。較遲的評審會讓你有更多的機會找到目前為止發生的錯誤,也能找到更多的從前評審中的錯誤。另一方面,較遲的評審使找到錯誤的根源變得困難。而早期的評審能夠提高這種識別能力,這也正是評審的真正利益所在。因此,管理者可以通過盡早舉行的評審會來影響產品和流程的質量。
l 有的管理者通過指責評審團隊來為繼續這個明顯缺陷的產品找理由。這是個很嚴重的錯誤。評審團隊的成員們是管理者而不僅僅是消息的來源。管理者的職責是要聽到信息而不是殺死報信的人。
3) 減少不確定性
l 技術評審最引人注目的效能(當與精心設計的機器測試一起應用時)就是它減少不確定性的方式。
l 對管理能力來說更重要的是,評審能夠減少質量的不確定性和因此需要的測試時間。
l 評審是測試的一種形式。評審和其他測試一前一后地應用,能夠產生缺陷的系統,并且在項目結束的時候減少機器測試的時間。
l 更微妙的變化是,當代碼評審的質量提高時,產品的不確定性降低了。測試時間不確定性的降低意味著項目的測試階段更容易管理了。帶到系統測試中的錯誤數量的減少意味著測試時間變得更容易預測了,這又表明了更好的可管理性。
第19章 成長的團隊
1)可重復使用的工作單位
一旦我們設計了可用、可靠、并且可重復使用的模型集合時,我們就能夠降低成本,提升品質,并且提高軟件研發的可預測性。
2)維護團隊
l 關于可重復使用團隊的最強烈的觀點之一,就是它們已經以維護團隊的形式遍布于組織之中了。不幸的是,許多管理者并沒有注意到表現好的維護團隊,他們恰恰就是最能被重復使用的團隊。
l 通過使用維護團隊,組織能確保重要系統不會因為某個人的離去而變得抵抗力下降。
3)通過改進團隊流程進行管理
l 通過改進團隊流程,個人的進步過程能被拓展至管理中。這個辦法是建立在多維共同創造的思想上的:
l 建立團隊并培訓他們互相吸取優點的技巧。
l 分析表現最好的團隊和個人,弄清楚表現好的原因。
l 發展培訓和技術評審系統,傳播這些優秀的過程。
第21章 團隊的啟動和終止
直至面臨災難之前,沒人能真正了解自己;只有在危機時刻,我們才會知道自己真正的身份;許多人一生都認為自己很強,但實際上,他只是很安全罷了。---西德尼.哈里斯
l 管理者在團隊方面的任務是在需要的時候建立團隊,它能有效運行時就放手讓它發展,否則,終止該團隊。
l 在危機時刻成立團隊不是件普通的任務。當整個組織一片沮喪時,你可能需要一個有經驗的推動者參加團隊的第一次會議。組建團隊時必須確保團隊每一分子有一些其獨特的作用。
l 對于一個長期團隊來說,在研發和維護過程中自然形成團隊比在危機時刻組建團隊要好。管理研發團隊的竅門不是項目一結束就解散它們。
l 現有的團隊也能成為變革的障礙。他們認為成立新的任務解決團隊會破壞他們現有的擠在一起的狀態,或者害怕別人指責他們的工作沒有做好。
l 如果管理者放手讓團隊去發揮,運轉良好的團隊就會成為他最有價值的資產。真正的團隊比一般的管理者要強壯得多,不太可能被高層管理人員嚇倒。團隊的觀點更有分量。
l 項目落后的時候,真正的團隊不會慌亂。那些自己亂了陣腳,但卻不愿意看到團隊保持鎮靜的管理者們經常要把他的慌亂傳染給團隊。然而,一個經驗豐富的團隊通常會同化這位經理的不協調,鎮定地工作。
l 一個突然插入團隊日程的外部任務,會干擾團隊的其他工作。團隊可以通過任命專員的方式來解決這個問題,比如專門為客戶和高層做演示說明的人。總之,團隊在設計和實現任務優先級別時表現很好。
l 團隊不可能自行解決每個問題。有時候某成員不能與他人合作因而必須離開。作為管理者的工作是進行干涉并且改變團隊的組成。
l 團隊成功的最大障礙來自某位個體的態度:“因為這是我的,我不容別人染指,甚至看都不能看一眼。”或者“這不是我的主意,所以不可能是最好的主意。”這種封閉的態度對軟件工程來說簡直就是災難。因此,堅決不能允許。如果你決心改變這種態度,典型的方法是換人。不是每個人都適合軟件組織的。
l 有時團隊因為無法識別的原因,或某幾個人的原因而喪失功能。這時,你應當介入并在警告無效后解散該團隊。
l 一旦管理者成立了一個團隊,他們就會自我生存,并可能在需要變革的時候很難被解散。因此,避免成立一個當沒有作用時你很難解散的團隊。當你創建了臨時團隊時,給他們一定的時限,時限結束后讓他們自己證明繼續存在的理由。
l 看起來失去功能的團隊也許會有你料想不到的其他功能。在解散他們之前,考慮他們其他的用處。