團(tuán)隊(duì)規(guī)模與實(shí)施效率
IBM 360操作系統(tǒng)之父的F.P.布魯克在他著的《人月神化》中提到:需要協(xié)作溝通的人員的數(shù)量影響著開發(fā)成本,因?yàn)槌杀镜闹饕M成部分是相互的溝通和交流,以及更正溝通不當(dāng)所引起的不良結(jié)果(系統(tǒng)調(diào)試)。
人與人之間必需通過溝通來解決各自承擔(dān)任務(wù)之間的接口問題,如果項(xiàng)目有n個(gè)工作人員,則有n×(n -1)/ 2個(gè)相互溝通的路徑。假設(shè)一個(gè)人單獨(dú)開發(fā)軟件,年實(shí)施效率為10000行代碼,而每一條溝通路徑上每年消耗掉的工作量可折合500行代碼,則團(tuán)隊(duì)規(guī)模和溝通消耗以及實(shí)施效率存在以下關(guān)系:
團(tuán)隊(duì)規(guī)模n 溝通路徑數(shù)
n×(n -1)/ 2 溝通消耗(LOC/人年)
溝通路徑數(shù)×500 實(shí)施效率(LOC/人年)
10000-溝通消耗/n
1 0 0 10000
4 6 3000 9250
6 15 7500 8750
10 45 22500 7750
由此可知,一個(gè)人單獨(dú)開發(fā)一個(gè)軟件,人均效率高,只可惜大部分軟件規(guī)模和時(shí)間要求都不允許一個(gè)人單獨(dú)開發(fā),而團(tuán)隊(duì)開發(fā)的溝通消耗卻呈二次方增長。所以,項(xiàng)目團(tuán)隊(duì)?wèi)?yīng)該盡可能精簡,以較少的人在可能允許的時(shí)間內(nèi)完成任務(wù)是相對高效的。
團(tuán)隊(duì)的組織方式與實(shí)施效率
不難看出,通過減少溝通消耗、提高溝通效率能夠提高項(xiàng)目團(tuán)隊(duì)工作效率。良好的團(tuán)隊(duì)組織可以減少不必要交流和合作的數(shù)量,是提高團(tuán)隊(duì)效率的關(guān)鍵措施。
減少交流的方法是明確的個(gè)人分工和接口定義?▋(nèi)基-梅隆大學(xué)的D.L.Parnas認(rèn)為,編程人員僅了解自己負(fù)責(zé)的部分,而不是整個(gè)系統(tǒng)的開發(fā)細(xì)節(jié)時(shí),工作效率高。
一種行之有效的方法是改變溝通的結(jié)構(gòu)和方式。比如上面的例子中,一個(gè)10人的項(xiàng)目團(tuán)隊(duì),溝通路徑有10×(10-1)/2=45條,這種計(jì)算基于一種假設(shè),即團(tuán)隊(duì)中成員間的關(guān)系是對稱的,各人在團(tuán)隊(duì)中的溝通地位完全對等,溝通方式是全通道式的。同樣一個(gè)項(xiàng)目,把組織方式改變?yōu)橄聢D所示:
由一位系統(tǒng)架構(gòu)師將系統(tǒng)分為三個(gè)相對獨(dú)體的子系統(tǒng),構(gòu)架師負(fù)責(zé)子系統(tǒng)間的接口定義;然后將其余9人分為三個(gè)小組,每個(gè)小組負(fù)責(zé)一個(gè)子系統(tǒng),小組組長和架構(gòu)師相互溝通子系統(tǒng)間的接口,小組間的交流通過架構(gòu)師組織進(jìn)行;每個(gè)小組內(nèi)部采用全通道式的溝通方式。那么,這樣的一個(gè)組織方式溝通路徑只有9條,溝通效率是全通道式組織方式的五倍。
當(dāng)然,這種方法的先決條件是有一個(gè)對整個(gè)項(xiàng)目總體把握很好的軟件架構(gòu)師以及精確完整地定義所有接口。
團(tuán)隊(duì)的默契度與實(shí)施效率
很顯然,團(tuán)隊(duì)的默契程度對軟件實(shí)施效率影響很大。一個(gè)經(jīng)過長期磨合、相互信任、形成一套達(dá)默契的做事方法和風(fēng)格的團(tuán)隊(duì),可能省掉很多不必要的溝通,相反,初次合作的團(tuán)隊(duì)因?yàn)閳F(tuán)隊(duì)成員各自的背景和風(fēng)格不同、成員間相互信任度不高等原因,要充分考慮溝通消耗。
軟件企業(yè)人員流動(dòng)率高的特點(diǎn)導(dǎo)致團(tuán)隊(duì)凝聚力和默契度的錘煉比較困難。而凝聚力和默契度的需要長期的、大量的內(nèi)部溝通和交流才能逐步形成,由此不難理解持續(xù)良好的溝通和交流是一個(gè)團(tuán)隊(duì)的無形資產(chǎn),自然,穩(wěn)定、默契的開發(fā)團(tuán)隊(duì)形成一個(gè)軟件企業(yè)的核心競爭力的道理。
還有一點(diǎn)不容忽視,那是軟件開發(fā)這種以人腦為主要工具的創(chuàng)造性很強(qiáng)的作業(yè),開發(fā)人員的心情和興奮度對個(gè)人工作效率影響很大,而一個(gè)人置身于氛圍良好、合作默契的團(tuán)隊(duì)中心情一般較好,這種良好的氛圍所能帶來的能量是不可估量的。