為什么沒人比程序員更討厭軟件
幾個月前,我們買了一臺新的數(shù)碼相機,為的是更好地記錄我們家小寶貝的成長過程。采購的事情由我太太負(fù)責(zé)。她小心地打開相機的包裝盒,給相機裝上電池,然后就開始了***試拍。像很多電子產(chǎn)品一樣,隨相機附送的還有一張軟件光盤。于是,她不假思索地打開DVD光驅(qū),然后把光盤放了進(jìn)去。
我眼角的余光碰巧注意到了這一切。說時遲,那時快,我瘋了似的從房間的另一頭沖過去,同時大叫:“不……要……啊……”——我不顧一切地試圖阻止她從那張光盤上安裝軟件(為了更好地理解當(dāng)時的情景,你可以以夸張的慢動作來想象一下整個過程)。還好,她停住了,但我也幾乎驚走了一只貓。
隨數(shù)碼相機附送的軟件其實沒啥問題。但真是這樣嗎?
- 這個軟件可能是不必要的。任何現(xiàn)代的操作系統(tǒng)(甚至是Windows XP)都能瀏覽并且自動下載一臺新數(shù)碼相機里的照片。不需要什么特別的軟件。但為了增加“價值”、與競爭對手形成差異化,相機公司的某些高管草率地采取了捆綁軟件的策略——隨機附帶一款具有一堆古怪而獨特功能的軟件——這種做法是應(yīng)被質(zhì)疑的。
- 硬件公司通常不擅長做軟件。數(shù)碼相機公司玩得好的是硬件制作,而軟件呢,充其量是事后才想起來要做的事,只是一件附屬品,在銷售人員眼里也不過是錦上添花的玩意兒。
- 不明來源的軟件很可能是由爛程序員開發(fā)出來的。拋開別的不說,你即將安裝的這款無名軟件,它有用而且用戶體驗良好的概率是很低的。
不幸的是,選擇以軟件開發(fā)作為自己的職業(yè)有很多副作用,其中之一便是,久而久之,你會變得厭惡軟件。我說的是真正的厭惡!一種強烈的厭惡之情!想象一下你碰到過的最憤怒的用戶,把他的情緒乘以1000倍也抵不過我們程序員對軟件的感受。沒人比程序員更討厭軟件。甚至此時此刻,我在說這個事的時候都感覺到自己的憤怒。
把開發(fā)軟件作為職業(yè)的人會有這種態(tài)度,這難道不奇怪嗎?我們每天寫著代碼,因此還得到報酬,怎么還能有怨恨呢?
David Parnas在一次采訪中這么解釋道:
問:在軟件工程中,最常被忽視的風(fēng)險是什么?
答:無能的程序員。有人估計,美國需要超過20萬名程序員。這完全是誤導(dǎo)!這不是數(shù)量的問題,而是質(zhì)量問題。一個爛程序員在一年里可以輕易創(chuàng)造兩個新的就業(yè)機會。雇用更多的爛程序員,只會加大我們對他們的需要。而如果我們有更多優(yōu)秀的程序員,并且能夠讓他們脫穎而出,我們對于程序員的需求就會變少,而不是更多。
我怎么如此肯定這世界到處都是無能的程序員呢?因為我就是其中之一。
我們都在香腸加工廠干過活,因此我們知道那玩意兒是怎么做出來的。這事不光彩!大多數(shù)軟件都是像我們這樣的爛程序員(有的比我們更爛)開發(fā)出來的。這意味著,大多數(shù)軟件都是爛貨。ScottBerkun曾經(jīng)寫過一篇文章,題為“Why Software Sucks”(為什么軟件叫人失望)。文中提到:
當(dāng)人們說“這東西真爛”,他們的意思是下面的一條或幾條:
- 它非我所需;
- 我不知所措;
- 它沒必要這么復(fù)雜難用;
- 它故障頻出;
- 它丑陋得讓人作嘔;
- 它與我的世界觀不相符;
- 它把我的精力浪費在工具上,而我更應(yīng)該專注于我的工作。
你覺得與那臺數(shù)碼相機捆綁的軟件符合上述幾條?我猜全部命中。這也是為什么說,***別用軟件。如若不然,你也要盡可能少用軟件,甚至于,只用那些有著良好聲譽的確實可靠的軟件。
我不喜歡安裝新軟件。恰恰相反,我對這事很恐懼!
我來講一個自己做了很多次的噩夢吧。在夢里,我坐在一臺電腦面前。這臺機器啟動了,跑的是我自己開發(fā)的操作系統(tǒng)。然后,我打開一個網(wǎng)絡(luò)瀏覽器,它也是完完全全由我自己開發(fā)的。我訪問了一個網(wǎng)站,這個網(wǎng)站也是我自己搭建的。我在頁面上剛一點,結(jié)果藍(lán)屏了。藍(lán)屏程序本身也藍(lán)屏了,就這樣一發(fā)不可收拾,引起了一場大爆炸,把整個街區(qū)都?xì)Я恕?/p>
這個夢還算好的。更糟的時候只有尖叫。周圍一片漆黑。
總之,我討厭軟件。我討厭絕大部分軟件,尤其是我自己的,因為我知道做好一個軟件有多難!這聽起來有些奇怪,但對于軟件開發(fā)者來說,這卻是一種自然而健康的態(tài)度。你會發(fā)現(xiàn),這是所有有能力的程序員的共識,也是成長的必經(jīng)之路。
實際上,在面試的過程中,我覺得只要用一個簡單的問題,就能判斷出一個軟件開發(fā)者是否有能力:“近期你見過的最糟糕的代碼是什么?”
如果他們沒有毫不猶豫地回答說“我自己的”,那么你應(yīng)該立即中止面試。朋友,對不住啦,你對軟件討厭得還不夠!過幾年再來吧,如果那時候你還在當(dāng)程序員……
原文鏈接:http://blog.csdn.net/happydeer/article/details/40181051