1. 程式人生 > >現代軟體工程講義 5 團隊合作的階段

現代軟體工程講義 5 團隊合作的階段

團隊合作要經歷的階段

1  萌芽階段

萌芽(Forming)階段,就像小苗破土而出,柔弱但充滿希望。在這個時候,團隊成員剛剛接觸到團隊的宗旨,同時很可能剛剛互相認識。在學校的環境中,一些同學只是匆忙地加入一個團隊,加入團隊的原因並不是因為他們對團隊的目標很認同, 而是多種多樣的 (這個團隊有大牛,我可以少做一些; 別的團隊人滿了,就剩這個了; 平時在一起混的還可以,就加入吧; 這個團隊有女生,我要加入! ... ).  團隊的目標只是聽說過,但是並沒有真正達成一致。團隊缺少一個明確的領導,團隊成員也非常依賴領導的指導。其它特徵:

(1)個人的角色和職責不清楚,做事的規程往往被忽略。

(2)這時大家都有禮貌,一般交流不少,每個人往往想得到其他隊友的接納,試圖避免衝突和容易引起挑戰的觀點。團隊的成員在有意無意地探知同伴和領導的做事方式和容忍度。

(3)成員也在琢磨任務到底有多大,怎麼去完成它。

(4)每個人都忙著適應環境、團隊結構、角色、日常流程等。正是由於這些原因,嚴重的問題不一定能夠及時地提出來討論。重要的事情並不能夠真正得到解決。

(5)開始各種各樣的討論。成員們對於組織結構有不少看法,對完成任務的困難也有不少討論,但是還沒有把注意力集中到解決問題上。這時已經有人對太多的討論感到不耐煩了。

原因:大家都是來自五湖四海,專案還處於萌芽狀態,每個人的能力/弱點還沒有得到體現。

在這一時期,領導要回答很多問題:我們要做什麼,怎麼做,如何才是成功,和其他團隊是什麼樣的關係,等等。由於百廢待興,沒有太多時間進行詳細討論,得到一致共識,因此,要快刀斬亂麻地決定一些重要的問題。

這個階段最重要的就是讓成員明確地瞭解團隊的目標。正確的目標設定應從整個團隊的最終目標開始,然後在成員的參與下,將這一最終目標分解成為一系列相互關聯,易於操作的短期目標。

2  磨合階段

磨合階段(Storming)就像一個人的青少年時期,充滿了對個人、同伴和團隊的疑惑和衝突。

團隊中的一團和氣只能維持一小段時間,大家不得不認真地面對問題進行討論。隨著討論的深入,有些人會沉不住氣,小的意見分歧和衝突會出現。這些衝突不一定都是技術問題,也許是關於角色、職責、相互關係,甚至是各自性格、文化的衝突。

這時會出現成員之間的競爭,不少人都想成為某個領域的“擁有者”(在軟體專案中,誰負責哪方面,每個方面要怎麼做,等等)。同時也有一些人以不同的方式進行挑戰。也許會形成小團體,甚至有權力鬥爭。

有人專注於解決問題,有人喜歡“與人鬥,其樂無窮”,有人想回到當初一團和氣的階段。衝突的結果是有人覺得自己“贏了”,有人反之。不管每人的輸贏如何,大家都想從體制上、流程上避免衝突持續發生。

有時即使大家有相同的論點,還是有爭論(因為大家想充分表達自己)。這個時期最可能出現謠言和誤解。

原因:在該階段,團隊成員們開始逐步熟悉和適應團隊工作的方式,並且確定各自的存在價值。在這個階段,矛盾會層出不窮,主要包括團隊成員之間的矛盾,專案遠景和成員理解程度的差異,個人習慣和企業文化的矛盾,個人的價值取向和企業規則之間的矛盾。

領導要做什麼呢?

這時候最好讓矛盾和分歧充分地暴露,將各種衝突公開化,並且學會傾聽、理解和調整。在這一階段,有時候不得不妥協以讓專案向前推進(沒有時間去說服每一個人從而得到最優結果)。

領導主要是採用指導的方式,引導成員發現正確處理問題的方法。

積極、公開的資訊流動是消除謠言和誤解的最好方式。如果缺乏足夠的資訊交流平臺(如SharePoint伺服器,公開的電子郵件組,公開的專案進度表),成員之間會互相猜疑。領導必須做出明確規定,要求公司上下都要進行充分的交流,並且告知團隊成員,不允許將資訊滯留在小團隊內部。

領導在這個階段會發現成員的一些特點,要區別對待,例如:

(1)對於技術能力強,並且通過實際工作得到大家認可的成員,應鼓勵他們發揮更多技術領導的作用。

(2)對一些經常有不同意見,特立獨行,看似拖團隊後腿的成員,這時不應該妄下判斷,其實他們很可能是不錯的員工,只是沒有掌握表達意見的適當方式,不懂如何說服別人,應該鼓勵他們找到和團隊共存、共事的途徑。

(3)有的成員雖然自己的工作能應付,但他們不愛討論、分享經驗,似乎沒有更高的要求。對這種型別的人,應該讓他們與更自信、積極的同事合作,給予他們要求更高的工作,讓富有挑戰性的工作激發他們的熱情。

(4)有的成員在實際工作中顯示出較差的技能,不怎麼勝任工作。對這類成員,要考慮安排他們做得來的事,調整在團隊中的位置,做到人盡其用。

在這一階段, 團隊也會討論到每個成員的投入,和 績效評估的問題, 在這個問題上能開誠佈公地討論並達成一致,是一個團隊度過磨合階段的重要標誌。

長期處於這一階段的團隊,其自信心會下降,會出現久病亂投醫的現象,我們用什麼開發方法,這個模式還是那個模式?等等。就像某國國家足球隊不斷變更打法和風格,一會兒是平行站位,一會兒是雙後腰,有時過分保守,有時過於冒進,有時學習歐洲,有時學習南美,走馬燈一樣換教練,最後自己找不到北,成為笑柄。

2.5 散夥階段

有些團隊過不了磨合這一道門坎, 退化到 “散夥階段” - 有些名存實亡的 “團隊” 就剩下一兩個人幹活,  其他人在打醬油, 並且還抱怨其他夥伴不重視他們。 這些情況在我們學生專案中是不是很常見呢?

3  規範階段

從磨合階段畢業,進入規範(Norming)階段的團隊,成員們意識到光爭吵是沒有用的,大家還是要協同作戰。成員們就很多事情取得了一致。角色和職責定義得非常清楚。團隊還進行過有趣的團隊建設活動。

這一時期的團隊有這樣的特點:

(1)團隊公開地討論流程和工作的方式。團隊的領導得到廣泛的尊重,其他的成員也分擔了一定的領導職責。

(2)隨著專案的發展和成員們的互動,一些成文或不成文的規則逐步建立起來了。

(3)作為一個整體,團隊要做和不要做的事情都更加明確。團隊定下了更現實的目標和決心。

(4)通過聆聽、討論,成員互相之間更加了解,認識到並欣賞各自的能力和經驗。

(5)在工作中互相支援,並且願意摒棄自己固有的想法。

(6)成員之間的討論更加友好,大家意識到並尊重各人的個性。

(7)集體意識更強,有共同的目標。

在這一階段,領導主要扮演促成者和鼓勵者的角色,協調成員之間的矛盾和競爭關係,建立起流暢的合作模式。

要注意到,並不是當團隊進入到了規範階段,就萬事大吉了。經驗表明,很多情況下團隊會由規範階段回到磨合階段,或者在兩個階段間徘徊。團隊成員們必須努力工作,才能使團隊保持在這一階段, 他們同時還要抵禦外界的壓力,以免使團隊分裂,或者回到磨合階段。

另外,一個人要是剛剛加入一個有一定歷史的團隊,要注意瞭解這個團隊的“Norm”是什麼,入境隨俗。正如西方諺語說——When in Rome,do as the Romans do。

4  創造階段

經歷了萌芽、磨合、規範階段,現在團隊終於可以創造一些有意義的東西——這就是創造階段(Performing)。當然並不是所有的團隊都能達到這一階段。

這一階段的現象是:

(1)團隊知道為何而戰,有共同的遠景。

(2)團隊的注意力集中到如何創造、實現目標上。

(3)高度自治。不再需要領導的時時教誨與介入。

(4)不同意見仍會發生,但是成員都以一種積極的心態和方式來解決。 團隊成員互相支援,互相依賴,而又保持各自的靈活性。

(5)所有人互相都比較瞭解,同時也互相信任,個人可以放手獨立工作。

(6)角色和職責能夠根據專案的要求自然地轉換,沒有人為此擔心或發牢騷。在這樣的情況下,所有人都能把大部分精力花在工作上。團隊士氣高漲。

(7)為了集體的利益而改進自己的行為——例如學習新技術,做更好的自我程式碼複審。

(8)能夠避免衝突,並且在衝突發生的時候,能夠解決矛盾。

領導在這一階段,要實踐“充分的授權”這一原則,委派得力的人員解決問題,並按期檢查。在“磨合”階段的經驗和教訓讓大家明白不少道理,在“規範”階段形成的流程讓團隊能高效的工作。

在創造階段,團隊減少了對上級領導的依賴。成員們相互鼓勵,積極提出自己的意見和建議,也對別人提出的意見和建議給出積極評價和迅速反饋。

這時團隊的效率達到了顛峰狀態,這時最重要的已經不是解決團員之間的矛盾,也不是明確每個團員的職責和任務了,而是要建立團隊業績和個人績效相結合的考評體系,最大限度地調動團隊成員的積極性。

這一階段的團隊有一個特點:他們一般不會關心或爭執“方法論”的問題——我們究竟是瀑布模型,還是改良的螺旋模型,或者是超級敏捷型。我們是CMM 2級或3級。方法論對於他們,就像水對於魚一樣自然。一個實際的例子就是:微軟公司很多員工都不知道MSF究竟是什麼東西[1]

當然,這時也必須認識到危險所在。好的團隊有時候會驕傲自滿,這將導致他們的衰敗。團隊成員自我感覺太好,過分親近也可能導致過度利己,造成產出下降以及傲慢自大的後果。


[1] 作者注:我在2002年進行MSF的講座的時候,還特地學習了MSF的手冊,因為我在微軟團隊中做開發從來沒有聽說過MSF。後來才恍然大悟——哦,原來微軟開發的方法就叫MSF。