人多沒好事er
老話說:“三個臭皮匠頂?shù)蒙弦粋€諸葛亮?!?br>
老話還說:“一個和尚抬水吃,兩個和尚挑水吃,三個和尚沒水吃?!?br>
同樣是三個,和尚比臭皮匠差在哪兒?
三個和尚,互相推諉,都不愿意干活,所以沒水吃;皮匠雖然臭,可是三個笨人一起動腦,也比得上一個聰明人。
于是我們得出結(jié)論:只要樂于合作,人多總比人少好。
可是,有一本書卻言之鑿鑿的說:即使全力合作,人多也不是好事,人越多,效率越低。這本書叫做《人月神話》。
“人月”謊言
《人月神話》是軟件行業(yè)的一本“圣書”,別被書名騙了,這本書寫的不是“神話”,和“登月”也沒半點(diǎn)關(guān)系,書名的真正含義是:“人月”只是一個“神話”,換句話說,“人月”只是一個謊言。
什么是“人月”?
“人月”就是:人×月,是工作量的計量單位。在軟件業(yè),“人×月”大概是衡量工作量的唯一指標(biāo)。
為什么說“人月”只是一個謊言呢?
書中是這么說的:
我認(rèn)為,用人月來衡量一項工作的規(guī)模是一個危險和騙人的神話。它暗示著人員數(shù)量和工作時間是可以相互替換的。
作者的隱含意思是,人員數(shù)量和工作時間是不能互相替換的。理由如下。
作者把工作分為三類。
第一類是可以完全分解的工作,即成員各自完成任務(wù)且彼此不需要任何交流,人月之間的關(guān)系是雙曲線形的:
第二類是可以分解、但成員之間需要少量的溝通的工作,人月之間的關(guān)系是L形的:
第三類是可以分解、但成員之間需要頻繁復(fù)雜的溝通的工作,人月之間的關(guān)系是U形的:
軟件開發(fā)屬于第三類工作,所以增加人手不但不會縮短任務(wù)周期,甚至?xí)骨闆r更糟。為什么呢?
原因有兩個。一是培訓(xùn)成本高,新人加入項目組,要熟悉技術(shù)、項目方案、工作計劃以及團(tuán)隊其他成員的風(fēng)格,這個過程會耗費(fèi)團(tuán)隊的很多精力,這減少了他們用于軟件開發(fā)的精力;二是溝通的工作量急劇增加,在軟件項目中,成員之間要時常溝通,這構(gòu)成了一個溝通網(wǎng)絡(luò),由溝通帶來的工作量至少是N2級的(N是人數(shù)),每增加一個成員,溝通的工作量會增加好幾倍,甚至?xí)^這個新成員帶來的貢獻(xiàn)。因此,保持短小精干是軟件開發(fā)的最佳方案。
為此書中舉了一個例子:
如果在一個200人的項目中,有25個最能干和最有開發(fā)經(jīng)驗(yàn)的項目經(jīng)理,那么,開除其他175名程序員,讓項目經(jīng)理來編程開發(fā)。
這個案例有些夸張,但并非毫無根據(jù),測試結(jié)果表明,好程序員和差程序員的生產(chǎn)率比值平均為10:1,175個庸才帶來的附加成本可能會抵消甚至超過他們的貢獻(xiàn)。所以說,精干的小團(tuán)隊總是更好的選擇。
但是,大型軟件項目不可能依靠小團(tuán)隊完成,比如,微軟公司的Windows操作系統(tǒng)是由近萬人的開發(fā)團(tuán)隊完成的。如果不得不管理一只龐大的軟件開發(fā)團(tuán)隊,我們該怎么辦?書中給出的答案是——像外科手術(shù)團(tuán)隊一樣管理!
外科手術(shù)管理模式
軟件項目講究一個原則——概念完整性,即軟件的設(shè)計思想要體現(xiàn)在軟件的每一個部分。這就需要有且只有一個“大腦”來負(fù)責(zé)軟件設(shè)計工作,其他人負(fù)責(zé)實(shí)現(xiàn),這與外科手術(shù)如出一轍。
外科手術(shù)團(tuán)隊有一位主刀醫(yī)生、一位副手,其他人員都是輔助崗位,比如麻醉師和護(hù)士。主刀醫(yī)生是手術(shù)的唯一負(fù)責(zé)人;副手是和主刀醫(yī)生的備選,其他人員按照分工完成各自的任務(wù)。
借鑒外科手術(shù)團(tuán)隊的管理模式,一個小型的軟件項目可以劃分為首席程序員、副手以及管理員、程序職員等輔助崗位。首席程序員是團(tuán)隊唯一的“大腦”,負(fù)責(zé)團(tuán)隊管理、軟件設(shè)計甚至核心代碼的實(shí)現(xiàn);副手是首席程序員的后備,承擔(dān)首席程序員的部分工作;其他人各司其職即可。
書中的結(jié)論是:按照這種結(jié)構(gòu)組成的小型軟件團(tuán)隊效率最高。
開發(fā)大型軟件需要大型團(tuán)隊,這時可以把上述模式嵌套使用,即一個一級首席程序員管理若干個二級首席程序員,二級首席程序員管理自己的團(tuán)隊。不管項目人員有多少,原則永遠(yuǎn)不變——一個團(tuán)隊只有一個大腦。
歸根結(jié)底,《人月神話》給團(tuán)隊管理者兩個建議:
1.需要復(fù)雜溝通的工作,人越少效率越高;
2.一個團(tuán)隊永遠(yuǎn)只能有一個大腦。