軟件業(yè)總是充滿了形形色色的隱喻。比如說(shuō),把程序中的問(wèn)題稱為bug;把互聯(lián)網(wǎng)上傳播的病毒叫做蠕蟲;
把軟件開(kāi)發(fā)的過(guò)程比作造房子......這些都是我們這個(gè)行業(yè)中流行的隱喻,以至于它們已經(jīng)成為軟件開(kāi)
發(fā)者文化中一個(gè)特有的組成部分。
在這里,我想要說(shuō)的是一個(gè)特別具有“中國(guó)特色”的隱喻:我稱之為武俠隱喻。
毋庸我多做解釋,可能很多程序員看到這個(gè)詞就足以勾起豐富的想象。我們中的很多人喜歡把自己所崇敬
和佩服的、軟件界有影響力的人稱之為大俠,并幻想自己有朝一日能夠達(dá)到他們的境界。(跑題一下,
這個(gè)稱謂現(xiàn)在似乎有了一個(gè)比較草根的、或者說(shuō)比較Web2.0的版本——叫做牛人)上個(gè)世紀(jì)那個(gè)個(gè)人
英雄主義的年代,曾經(jīng)涌現(xiàn)出一大批這樣的人物,現(xiàn)在很多人仍然習(xí)慣稱他們?yōu)椤按髠b”——這其
中包括求伯君、王志東、鮑岳橋、朱崇君...
除此之外,我們還喜歡將重量級(jí)的出版物稱之為武林秘籍;把軟件開(kāi)發(fā)的組織團(tuán)體比作江湖幫派;
要形容軟件開(kāi)發(fā)的理想境界,也常會(huì)搬出“飛花摘葉俱可傷人”或“無(wú)劍勝有劍”這樣的句子。所有這些
都或多或少的表明:武俠深深影響了大量的程序員,他們非常喜歡用武俠中的理念來(lái)比喻軟件開(kāi)發(fā)過(guò)程中
的現(xiàn)象。或許,也是因?yàn)槌绦騿T0和1的生活太過(guò)枯燥,需要文化來(lái)加一點(diǎn)味道,而他們自覺(jué)不自覺(jué)的
選擇了武俠。這就是所謂的中國(guó)特色吧。
我必須老實(shí)的承認(rèn):我自己就曾經(jīng)深受武俠的影響,過(guò)去也一直沒(méi)有感到有什么不妥。但是,
在前幾天看過(guò)網(wǎng)上的某些回帖中一些充滿武俠隱喻味道的文字,突然覺(jué)得有些不是滋味。
我開(kāi)始思考:對(duì)于軟件開(kāi)發(fā)來(lái)說(shuō),武俠是不是一個(gè)好的隱喻?結(jié)論:不是不好,而是非常的
糟。武俠和軟件開(kāi)發(fā)根本沒(méi)有什么共同點(diǎn),甚至可以說(shuō)是水火不容的。
為什么說(shuō)武俠和軟件開(kāi)發(fā)沒(méi)有共同點(diǎn)?武俠講的是破壞的藝術(shù)。太史公說(shuō)“俠以武犯禁”。
武俠的意義,在最好的情況下,也僅僅是殺富濟(jì)貧、除暴安良,是對(duì)舊有秩序的破壞。
問(wèn)題在于:破壞是痛快愜意的,但破而不立就是純粹的破壞,沒(méi)有任何積極意義。
破壞以后新的秩序如何建立呢?沒(méi)有哪一個(gè)武俠故事為此做出答案,
也沒(méi)有一個(gè)俠客操心這種事。他們?cè)诤醯氖恰笆綒⒁蝗耍Ю锊涣粜巍钡母呤中蜗螅?br />至于走了以后爛攤子誰(shuí)來(lái)收拾?那本大俠可就管不著了。
軟件開(kāi)發(fā)是建設(shè),而不是
破壞。即使舊的系統(tǒng)非常糟糕,我們也沒(méi)有理由將其付之一炬——這就是為什么現(xiàn)代的敏捷
開(kāi)發(fā)者非常強(qiáng)調(diào)重構(gòu)的原因。構(gòu)造新的代碼固然是極具創(chuàng)造快感的工作,但是軟件開(kāi)發(fā)過(guò)
程中還有成打的“骯臟”工作:需求分析,設(shè)計(jì),文檔,調(diào)試,維護(hù)......這些工作繁冗
而瑣碎,但卻是整個(gè)開(kāi)發(fā)過(guò)程中必不可少的組成部分。想瀟灑一下就拍拍屁股走人的
程序員沒(méi)有什么職業(yè)素質(zhì)可言。
武俠中的高手是什么形象?天馬行空,獨(dú)往獨(dú)來(lái),神出鬼沒(méi)。這樣的人看起來(lái)很有性格,
但在現(xiàn)代企業(yè)中恰恰是最忌諱的。而正正經(jīng)經(jīng)提倡Team Work的團(tuán)隊(duì)反倒在武俠中常常成為
譏刺的對(duì)象——你不妨看看少林或全真這樣的大型團(tuán)隊(duì)在金庸小說(shuō)中被丑化成了什么地步。
武俠所描繪的是農(nóng)業(yè)社會(huì)的典型情況。一位高手通常只會(huì)把自己的技藝傳授給至親和少數(shù)幾個(gè)
信得過(guò)的弟子;弟子亦然。這種結(jié)構(gòu)非常脆弱:一旦出現(xiàn)任何問(wèn)題,這門技藝很容易就失傳了。
武俠中的秘籍是這樣一種東西:你得到它以后,最好藏之名山,偷偷修煉。一旦泄漏,只會(huì)給你
帶來(lái)殺身之禍。和師徒授受的問(wèn)題相同,這樣只會(huì)讓最好的技藝在歷史長(zhǎng)河中漸漸湮滅。現(xiàn)代社會(huì)和開(kāi)放
源代碼運(yùn)動(dòng)則顯示了相反的情況:知識(shí)可以由任何人獲取與學(xué)習(xí),而不分門派貴賤。與別人分享
知識(shí)也不會(huì)給你帶來(lái)任何壞處。
武俠成為隱喻帶來(lái)的惡果就是,程序員以成為“高手”為榮,以炫耀技巧為樂(lè);無(wú)視風(fēng)險(xiǎn)
大量采用一些看上去比較炫的新技術(shù);憤世嫉俗以為天下只有自己懷才未遇;不會(huì)與人
溝通,罔顧客戶需求,把不懂技術(shù)的用戶當(dāng)白癡;不會(huì)開(kāi)誠(chéng)布公,總是自己偷偷留一手;
凡此種種,不能說(shuō)都是因?yàn)槲鋫b流毒。但是在程序員中造成了不好的風(fēng)氣,武俠的影響
是不可忽視的。
武俠是成年人的童話,但軟件開(kāi)發(fā)不是童話。軟件開(kāi)發(fā)要的是腳踏實(shí)地,而不是快意恩仇。
還在做俠客夢(mèng)的程序員,愿你們?cè)琰c(diǎn)醒來(lái)。
?