寫下這個(gè)標(biāo)題,說實(shí)在我心里有些沉重,在當(dāng)今這個(gè)團(tuán)隊(duì)精神一次一次地被提到重中之重的時(shí)代,我卻感覺高度依賴腦力活動(dòng)的軟件開發(fā)工作其實(shí)幾乎不可能真正的有團(tuán)隊(duì)合作。這是我從事了五年多一線開發(fā)(快六年了)之后的高度總結(jié),也是要從事所謂“管理”工作最需要關(guān)注的一句話,請(qǐng)忘記“合作”!
為什么?俗話講,一山不容二虎,如果這是一份高度依賴腦力運(yùn)動(dòng)(我用運(yùn)動(dòng),不用勞動(dòng))的工作,這兩個(gè)聰明人你說誰會(huì)聽誰的呢?他們能否強(qiáng)強(qiáng)聯(lián)合,1+1=2那樣創(chuàng)造出更好的東西?110%,1+1不會(huì)等于2,120%,1+2不會(huì)大于2,那就只有小于2啰?一點(diǎn)沒錯(cuò)!而我的經(jīng)驗(yàn)告訴我,90%的情況,1+1<1。如果你有幸作為握大權(quán)的管理者,請(qǐng)把這兩個(gè)聰明人分開,讓他們干不同的事情,根據(jù)他們的興趣,愛好,去干不同的事情,如果實(shí)在找不到不同的事情,就讓他們干一樣的事情,但不是合作,而是各自單干,然后從他們各自生成的最終軟件產(chǎn)品中,擇優(yōu)錄取,這也總比讓他們合作好。
在熱力學(xué)中,有個(gè)概念叫“熵”,它是個(gè)能量概念,但卻不表示“能”,而表示“不能”,假想一個(gè)孤立系統(tǒng)有兩個(gè)物體,一個(gè)物體的溫度很高,一個(gè)很低,它們的總的熱量是100,然后你把這兩個(gè)物體合在一起,高溫物體的溫度降低了,而低溫物體的溫度升高了,它們的總體熱量是多少?孤立系統(tǒng),注意,沒有任何對(duì)外熱傳遞,所以熱量還是100,但由于這么一合,無論是高溫物體,還是低溫物體都沒了溫差,沒了溫差就不能利用這個(gè)熱量做功,而做功能力的損失,就是熵。也許你感覺這段文字比較晦澀,沒關(guān)系,通俗說,兩個(gè)聰明人的聰明才智由于“合作”,都用于內(nèi)耗上了,完了之后兩個(gè)人一樣是聰明人,但沒有“工作”的能力了,或效率低下。
這種事情了屢見不鮮了,例子我想我無須多舉,大家身邊比比皆是,只要你是做軟件開發(fā)的。也許你要問了,沒有合作,如何開發(fā)大型軟件?好問題,我也從事過大型軟件的開發(fā),但我現(xiàn)在回頭看看,那根本不是什么合作,而我當(dāng)時(shí)也不是一個(gè)真正意義上的“開發(fā)者”,我僅僅是個(gè)編碼者和單元測試者,我有設(shè)計(jì)這個(gè)軟件嗎?我有在軟件中體現(xiàn)出我的思想了嗎?甚至,問得殘酷點(diǎn),我有知道我在實(shí)現(xiàn)什么業(yè)務(wù)邏輯嗎?——答案全是No,這就是軟件外包的典范,別人把軟件設(shè)計(jì)好,詳細(xì)到偽碼級(jí)別了,我只是來做最低級(jí)的實(shí)現(xiàn)而已。也或許,這是一種“合作”的途徑,鐵打的營盤流水的兵,那些在底下干活的人永遠(yuǎn)不要問“為什么”,機(jī)械式的工作,流水線式的工作,這還需要有個(gè)前提,他們不能有太多的想法,比如我,實(shí)在是想法太多,那種地方自然就不歡迎我了,不久后卷鋪蓋走人。
我以前有個(gè)朋友無意中說了句話,他說:“公司本來就不需要那么多聰明人。”這話還真的如此,一帶多的“合作”模式是有的,就是一個(gè)牛人,帶著幾個(gè)小弟,完成某個(gè)項(xiàng)目,但我想真正的開發(fā)者,是那個(gè)牛人,幾個(gè)小弟可以做做外圍,周邊,比如機(jī)械式的測試,對(duì),測試是保證軟件質(zhì)量的重要手段,需要大量,反復(fù)。如果不幸的是這幾個(gè)小弟也是很聰明的人,那就比較難辦些,這個(gè)牛人就得很牛,以絕對(duì)的技術(shù)和人格魅力優(yōu)勢“壓倒”這幾個(gè)小弟,“折服”他們,這就是德能兼?zhèn)洌噯栠@種牛人多么?再說了,真有這種牛人的話,讓他獨(dú)自完成一個(gè)大的項(xiàng)目,我想更為可靠,而不是外加幾個(gè)搗蛋的聰明人。
熵,產(chǎn)生于艱難的內(nèi)部交流,產(chǎn)生于公司龐大而遲緩的官僚系統(tǒng),產(chǎn)生于自我獨(dú)大的個(gè)人思想,與其打破這些障礙,不如設(shè)法讓這些“合作”盡量減少?
當(dāng)我們還沒有適應(yīng)Visual Studio 2005的時(shí)候,Visual Studio 2008就出來了,版本眾多,讓我們有點(diǎn)無所適從,Visual Studio 2008還沒裝好的時(shí)候,Visual Studio 2010蓄勢待發(fā),一個(gè)比一個(gè)強(qiáng),利用個(gè)Wizard,圈圈點(diǎn)點(diǎn)幾下,一個(gè)外觀花哨的應(yīng)用程序就生成了,而且還貌似Outlook,抑或IE,隨便你,你一行代碼不用寫,這叫“先進(jìn)工具”,但提高了生產(chǎn)力了嗎?我想沒有,你能圈圈點(diǎn)點(diǎn)幾下生成的花哨程序,別人也行,程序雖然花哨,但換種角度說,其實(shí)你什么都沒干,軟件的靈魂在于設(shè)計(jì)者的思想,理解這個(gè)得費(fèi)點(diǎn)心思,或者這樣說吧,利用現(xiàn)在的技術(shù),你也可以輕松擁有一幅達(dá)芬奇的《蒙娜麗莎》的油畫,但這僅僅是個(gè)復(fù)制品,你能這樣,別人也行,你擁有的這幅畫沒有什么價(jià)值,而達(dá)芬奇的《蒙娜麗莎》的價(jià)值在于這位大師在這幅畫中融入的他的思想以及他的勞動(dòng),這是任何技術(shù),或“先進(jìn)工具”都無法替代的,永遠(yuǎn)無法替代。這段算是我講的一點(diǎn)題外話,和《人月神話》中“沒有銀彈”的觀點(diǎn)接近。
軟件開發(fā)是一項(xiàng)高度依賴腦力的勞動(dòng),開發(fā)者的思想融匯其中,是真正類似藝術(shù)創(chuàng)作的工作。考慮“合作”,不是不可以,但無非是這兩種情況:一是我技?jí)喝盒郏缘路耍?hào)令群英;二是把前一句的“我”換成別人,讓我心服口服當(dāng)他小兵。