1、軟件開發(fā)項目團隊特征分析
對于團隊的探討始于對群體的研究,Meredith Belbin提出了團隊的組成理論:團隊是指有限的一些人為了共同的目標而在一起工作,每個人分擔不同的角色,有獨特的貢獻,一個組織很好的團隊將包含所有團隊角色。
Katzenbach和Smith在《團隊智慧》(The Wisdom of Teams)一書中將團隊定義為:一個團隊就是為數不多的員工群體,他們在技能上互為補充,并且相互協(xié)作以采用相同的方法完成同樣的任務,實現同一個目標。斯蒂芬.羅賓斯(1994)認為,團隊是指一種為了實現某一目標而由相互協(xié)作的個體所組成的正式群體;麥肯錫顧問卡曾巴赫則從團隊的任務角度提出團隊的含義:團隊就是由少數有互補技能、愿意為了共同的目的、業(yè)績目標而相互承擔責任的人們組成的群體。以上定義的本質都是從團隊目標、結構與要素形成角度對團隊進行界定。據此可以認為,項目團隊就是在明確的愿景與共同價值觀之下的一種特殊形式的團隊,是為了完成某個一次性的特定任務(獨特的產品或服務)而臨時組建起來的團隊。其特征在于:是一種臨時性的柔性組織,具有明確的生命周期;項目團隊的成員是因某項具體的工作而加入團隊;項目團隊沒有冗余成員。軟件項目開發(fā)團隊除了與一般項目團隊的共同特征之外,由于團隊任務差異等原因,還具有其獨特的特征。
(1)軟件開發(fā)項目團隊是完全基于內部合作的團隊
在軟件開發(fā)項目團隊中合作溝通異常重要,主要表現在兩個方面:
第一,項目完成需要多種專業(yè)知識。軟件產品是一種能夠滿足用戶特定需求的知識產品。軟件項目開發(fā)團隊所要做的工作是獨創(chuàng)性工作,所開發(fā)的產品是原來沒有的、獨一無二的產品;軟件開發(fā)工作從開始到結束都是設計過程。軟件本身就是對計算機硬件工作流程的一種設計方案,軟件開發(fā)工作始終是對這一方案的設計,是知識生產過程。要完成軟件產品這種特殊性質的知識生產,需要開發(fā)人員具備大量的專門知識。這些專門知識包括:用戶需求知識、軟件技術知識、項目管理知識,開發(fā)人員綜合運用這些專門知識相互配合、共同完成軟件項目的開發(fā)工作。多種專業(yè)知識需要多樣的專業(yè)技術人才,不同專業(yè)的技術人才在溝通方式、溝通習慣等方面可能不盡相同,因此要保證開發(fā)工作順利進行,就要在這些專業(yè)人才之間形成一定的溝通基礎和溝通習慣。
第二是專業(yè)知識在開發(fā)團隊中的不對稱存在。知識的不對稱性表現在兩個方面:一是軟件開發(fā)團隊的每個成員都具有不同的知識背景;二是指軟件開發(fā)團隊中的每個成員對某一知識的掌握程度不盡相同。知識的不對稱性的第一個方面決定了不同開發(fā)成員的分工協(xié)作關系;知識的不對稱性的第二個方面決定了不
同開發(fā)成員之間的領導關系。因此團隊中成員之間的協(xié)作和信息溝通十分重要。要保證開發(fā)質量,開發(fā)成員之間就要高度協(xié)調一致,在規(guī)定的成本與時間范圍內完成開發(fā)任務,盡可能減少無效勞動和由于缺乏溝通而導致的重復勞動。
(2)軟件開發(fā)項目團隊是以特定客戶為中心的任務導向型團隊
首先,開發(fā)任務目標完全以客戶需求為中心。每一項開發(fā)任務通常要滿足顧客獨特的需求,而這種獨特的需求又是一次性的。因此經驗和歷史數據雖然重要,但每一次開發(fā)任務都需要從頭對特定用戶的需求進行分析與定義,重新研究開發(fā)任務的內容。
其次,開發(fā)任務的條件約束以客戶要求為準。軟件項目的開發(fā)任務是在約束條件下進行的,這些約束條件是由客戶定義的,主要包括:軟件質量、開發(fā)成本和開發(fā)時間三個方面。軟件質量約束要求軟件項目開發(fā)團隊開發(fā)出滿足用戶需求、符合用戶期望的軟件產品;開