人多沒好事er
老話說:“三個臭皮匠頂?shù)蒙弦粋€諸葛亮寺枉∫忠”
老話還說:“一個和尚抬水吃,兩個和尚挑水吃姥闪,三個和尚沒水吃始苇。”
同樣是三個筐喳,和尚比臭皮匠差在哪兒催式?
三個和尚,互相推諉疏唾,都不愿意干活蓄氧,所以沒水吃;皮匠雖然臭槐脏,可是三個笨人一起動腦喉童,也比得上一個聰明人。
于是我們得出結(jié)論:只要樂于合作,人多總比人少好堂氯。
可是蔑担,有一本書卻言之鑿鑿的說:即使全力合作,人多也不是好事咽白,人越多啤握,效率越低。這本書叫做《人月神話》晶框。
“人月”謊言
《人月神話》是軟件行業(yè)的一本“圣書”排抬,別被書名騙了,這本書寫的不是“神話”授段,和“登月”也沒半點關(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)驗的項目經(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é)實現(xiàn),這與外科手術(shù)如出一轍。
外科手術(shù)團(tuán)隊有一位主刀醫(yī)生雹仿、一位副手增热,其他人員都是輔助崗位,比如麻醉師和護(hù)士胧辽。主刀醫(yī)生是手術(shù)的唯一負(fù)責(zé)人峻仇;副手是和主刀醫(yī)生的備選,其他人員按照分工完成各自的任務(wù)邑商。
借鑒外科手術(shù)團(tuán)隊的管理模式摄咆,一個小型的軟件項目可以劃分為首席程序員、副手以及管理員人断、程序職員等輔助崗位吭从。首席程序員是團(tuán)隊唯一的“大腦”,負(fù)責(zé)團(tuán)隊管理恶迈、軟件設(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)只能有一個大腦漩符。