如何構建軟件開發(fā)團隊取決于可供選擇的人員、項目的需求以及組織的需求。本文闡述了項目實施過程中各種團隊組織的策略。
有效的軟件項目團隊由擔當各種角色的人員所組成。每位成員扮演一個或多個角色;可能一個人專門負責項目管理,而另一些人則積極地參與系統(tǒng)的設計與實現(xiàn)。常見的一些項目角色包括:分析師、策劃師、數(shù)據(jù)庫管理員、設計師、操作/支持工程師、程序員、項目經(jīng)理、項目贊助者、質量保證工程師、需求分析師、主題專家(用戶)、測試人員。
作為一個項目經(jīng)理人,您是如何組織項目團隊的?是采用垂直方案、水平方案還是混合方案?以垂直方案組織的團隊由多面手組成,每個成員都充當多重角色。以水平方案組織的團隊由專家組成,每個成員充當一到兩個角色。以混合方案組織的團隊既包括多面手,又包括專家。
一個重要的考慮因素是可供選擇的人員的性質。如果大多數(shù)人員是多面手,則您往往需要采用垂直方案,同樣,如果大多數(shù)人員是專家,則采用水平方案。如果您正引入一些新人,即使這些人員都是合同工,則仍然需要優(yōu)先考慮您的項目和組織。本文描述了形成團隊組織的垂直、水平和混合方案,并指出了它們各自的優(yōu)缺點。本次討論的一個重要含意是您的團隊組織和用于管理項目的手段之間應構成默契;任何方法上的失諧都很可能導致項目產生問題。
垂直團隊組織
垂直團隊由多面手組成。用例分配給了個人或小組,然后由他們從頭至尾地實現(xiàn)用例。
優(yōu)點
● 以單個用例為基礎實現(xiàn)平滑的端到端開發(fā)。
● 開發(fā)人員能夠掌握更廣泛的技能。
缺點
● 多面手通常是一些要價很高并且很難找到的顧問。
● 多面手通常不具備快速解決具體問題所需的特定技術專長。
● 主題專家可能不得不和若干開發(fā)人員小組一起工作,從而增加了他們的負擔。
● 所有多面手水平各不相同。
成功因素
● 每個成員都按照一套共同的標準與準則工作。
● 開發(fā)人員之間需要進行良好的溝通,以避免公共功能由不同的組來實現(xiàn)。
● 公共和達成共識的體系結構需要盡早在項目中確立。
水平團隊組織
水平團隊由專家組成。此類團隊同時處理多個用例,每個成員都從事用例中有關其自身的方面。
優(yōu)點
● 能高質量地完成項目各個方面(需求、設計等)的工作。
● 一些外部小組,如用戶或操作人員,只需要與了解他們確切要求的一小部分專家進行交互。
缺點
● 專家們通常無法意識到其它專業(yè)的重要性,導致項目的各方面之間缺乏聯(lián)系。
● “后端”人員所需的信息可能無法由“前端”人員來收集。
● 由于專家們的優(yōu)先權、看法和需求互不相同,所以項目管理更為困難。
成功因素
● 團隊成員之間需要有良好的溝通,這樣他們才能彼此了解各自的職責。
● 需要制定專家們必須遵循的工作流程和質量標準,從而提高移交給其他專家的效率。
混合團隊組織
混合團隊由專家和多面手共同組成。多面手繼續(xù)操作一個用例的整個開發(fā)過程,支持并處理多個使用例中各部分的專家們一起工作。
優(yōu)點
● 擁有前兩種方案的優(yōu)點。
● 外部小組只需要與一小部分專家進行交互。
● 專家們可集中精力從事他們所擅長的工作。
● 各個用例的實現(xiàn)都保持一致。
缺點
● 擁有前兩種方案的缺點。
● 多面手仍然很難找到。
● 專家們仍然不能認識到其他專家的工作并且無法很好地協(xié)作,盡管這應該由多面手來調節(jié)。
● 項目管理仍然很困難。
成功因素
● 項目團隊成員需要良好的溝通。
● 需要確定公共體系結構。
● 必須適當?shù)囟x公共流程、標準和準則。
項目團隊士氣是項目成功的一個因素
大部分項目成功的定義說的是項目如何按時完成、是否在預算內以及是否滿足用戶的需要。
但是,在如今要找到好的軟件專業(yè)人員都非常困難,更不用說留住他們的這種情況下,還需要將項目成功的定義擴展為包括項目團隊的士氣。可能在努力完成一個軟件項目后,不料卻因為壓榨他們過度而失去了重要的開發(fā)人員,這樣做可能會符合組織的短期需要,但它對構建一個高效的軟件部門的長遠利益來說肯定是有害的。衡量項目成功與否的一個重要手段是項目結束后團隊的士氣。在項目結束之際,項目團隊的各個成員是否覺得他們從自己的經(jīng)歷中學到了一些知識、是否喜歡為這次項目工作,以及是否希望參與組織的下一個項目都是非常重要的。