你不是軟件工程師。你不是在建摩天大樓。你不是在建公路橋梁。
你是在從事園藝,培育花草。
你是一個(gè)軟件園丁。
你是否會(huì)在種下第一粒種子前就規(guī)劃你的花園,細(xì)節(jié)精確到定位每個(gè)葉子應(yīng)該長(zhǎng)在哪里?人們是否會(huì)期望能精確的估算出這一年會(huì)開(kāi)出多少花朵(或你的公司是否做出這樣的承諾?)?你的獎(jiǎng)金會(huì)跟此掛鉤嗎?這些事情對(duì)于規(guī)劃一個(gè)摩天大樓來(lái)說(shuō)完全合情合理的,可是當(dāng)你在園藝這樣的事情上談?wù)撨@些時(shí),就顯的有點(diǎn)荒謬了。
你有可能會(huì)對(duì)未來(lái)一周你的花園會(huì)變成什么樣有個(gè)很好的設(shè)想。你甚至可能會(huì)對(duì)一年后你的花園會(huì)變成什么樣子有個(gè)大概的估計(jì)。但你不可能知道今后一年里每個(gè)枝條,葉子,根莖和花朵會(huì)長(zhǎng)在哪里,如果你非要說(shuō)你知道,那你肯定是在亂猜。
如果你在建一座大橋,或一棟大樓,在動(dòng)工之前,你告訴我,你精確的知道在建成之后會(huì)是個(gè)什么樣子——我會(huì)相信你說(shuō)的。如果你說(shuō)你能——聽(tīng)起來(lái)有些瘋狂——精確的知道這個(gè)工程要用多少時(shí)間“完工”——我還是會(huì)相信你說(shuō)的。這就是工程師要干的事。但如果你在園藝這種事情上也對(duì)我這樣說(shuō),我會(huì)認(rèn)為這是屁話。如果你告訴我要多雇幾個(gè)園丁來(lái)讓花草長(zhǎng)得更快些,我會(huì)鄙視你。
為什么會(huì)有這么多的花園培植失敗,而卻有這么多的摩天大樓建設(shè)成功?很多出乎你的意料,新建摩天大樓的技術(shù)不論是在歐洲還是在新加坡都很相似。培植花園卻不是這樣。每個(gè)花園都不同,因?yàn)榛▓@所處的環(huán)境不同。即使一箭之地范圍外的花園也會(huì)具有十分不同的土壤構(gòu)成。這就是為什么即使最廉價(jià)的承包商也能建出跟最高報(bào)價(jià)的競(jìng)標(biāo)者同樣的大橋,但你的公司卻不能培育出跟Google的花園具有同樣品質(zhì)的花園。
是否記得曾經(jīng)公司里某人在實(shí)施敏捷(Agile)園藝方法沒(méi)有獲得成功時(shí),他會(huì)到處說(shuō),真是狗屎,根本不好用。的確,狗屎能用來(lái)培育花草,但這還不足以用來(lái)挽救你的花園。你的花園極有可能在你采取這些措施前就已經(jīng)死亡——成為你的公司氣候變化的犧牲品。你是否是試圖在荒漠上種植雨林?你不可能培育出跟Facebook,F(xiàn)lickr,Twitter一樣的植物,你不可能指望著在不考慮你的公司氣候條件和園丁的水平的情況下讓這些奇花異草在你的花園里生根。
跟摩天大樓不一樣,你的花園會(huì)長(zhǎng)雜草。你的花園永遠(yuǎn)沒(méi)有“完工”之日。并不是因?yàn)槟悴辉傩枰诨▓@上進(jìn)行投資,你的工程就完成了。如果你不堅(jiān)持除雜草,你的花園最終會(huì)被雜草淹沒(méi),很快你會(huì)發(fā)現(xiàn)全部砍到重新種植比修剪更容易;▓@周邊的環(huán)境同樣也在不停的變化,一個(gè)疏于管理的花園將變得越來(lái)越難以存活。
在大多數(shù)國(guó)家,工程師需要有許可證才能去建一座大橋。園丁沒(méi)有這種政府操作的質(zhì)量管理。不幸的是,園丁的技術(shù)水平是一個(gè)比其它因素更能對(duì)花園的好壞起影響作用的因素——所以,你最好要有能分辨魚(yú)目和珠子的能力。而只有有經(jīng)驗(yàn)的園丁才能在看到一個(gè)人時(shí)辨出他是不是個(gè)好園丁。一個(gè)沒(méi)有管理過(guò)園藝工程的人根本不會(huì)知道需要找什么樣的園丁(因?yàn)樗欢@些)。所以,如果你不是一個(gè)園丁,但卻想招募到好的園丁,你應(yīng)該讓一個(gè)你信任的有經(jīng)驗(yàn)的園丁去考察候選者。在教室里你是學(xué)不到園藝技術(shù)的,所以,要考察這些候選者以前曾經(jīng)培育過(guò)的花園,而不能只依據(jù)他們知道多少在學(xué)校里學(xué)到的園藝?yán)碚?這些東西幾乎完全不能用于你的花園所出的氣候環(huán)境中)。
所有人都應(yīng)該理解這里的這種技術(shù)上的比喻,而且它是如此的合適,但現(xiàn)在我只是想用它來(lái)幫助那些對(duì)軟件的實(shí)現(xiàn)懷有不現(xiàn)實(shí)想法的非技術(shù)人員。
我是軟件園丁。
你也是。
原文:http://www.aqee.net/2011/05/16/you-are-not-a-software-engineer/
本文鏈接:http://m.95time.cn/news/other/2011/8453.asp
出處:外刊IT評(píng)論
責(zé)任編輯:bluehearts
|