資深 Coder 的真心話:沒有人比我們更討厭「軟體」了!

《TO》導讀:本文是資深工程師、StackOverflow、Discourse 聯合創始人 Jeff Atwood部落格上發表的一篇文章。看看為什麼這位工程師大大會說「沒人比工程師更討厭軟體了」?

幾個月前,我們買了一台新的數碼相機(註:數位相機),為的是更好地記錄我們家小寶​​貝的成長過程。採購的事情由我太太負責。她小心地打開相機的包裝盒,給相機裝上電池,然後就開始了首次試拍。像很多電子產品一樣,隨相機附送的還有一張軟件光盤(註:軟體光碟)。於是,她不假思索地打開 DVD 光驅(祝:光碟機),然後把光盤放了進去。

我眼角的餘光碰巧注意到了這一切。說時遲,那時快,我瘋了似的從房間的另一頭衝過去,同時大叫:「不……要……啊……」——我不顧一切地試圖阻止她從那張光盤上安裝軟件(為了更好地理解當時的情景,你可以以誇張的慢動作來想像一下整個過程)。

還好,她停住了。

隨數碼相機附送的軟件其實沒啥問題。但真是這樣嗎?

● 這個軟件可能是不必要的。任何現代的操作系統(甚至是 Windows XP)都能瀏覽並且自動下載一台新數碼相機裡的照片。不需要什麼特別的軟件。但為了增加「價值」、與競爭對手形成差異化,相機公司的某些高管草率地採取了捆綁軟件的策略——隨機附帶一款具有一堆古怪而獨特功能的軟件——而這種做法是應該被質疑的。

● 硬件公司通常不擅長做軟件。數碼相機公司玩得好的是硬件製作,而軟件呢,充其量是事後才想起來要做的事,只是一件附屬品,在銷售人員眼裡也不過是錦上添花的玩意兒。

● 不明來源的軟件很可能是由爛程序員開發出來的。拋開別的不說,你即將安裝的這款無名軟件,它有用而且用戶體驗良好的概率是很低的。

  • 身為一個工程師,久了你會開始厭惡軟體

不幸的是,選擇以軟件開發作為自己的職業有很多副作用,其中之一便是,久而久之,你會變得厭惡軟件。我說的是真正的厭惡!一種強烈的厭惡之情!想像一下你碰到過的最憤怒的用戶,把他的情緒乘以 1000 倍也抵不過我們程序員對軟件的感受。沒人比程序員更討厭軟件。甚至此時此刻,我在說這個事的時候都感覺到自己的憤怒。

把開發軟件作為職業的人會有這種態度,這難道不奇怪嗎?我們每天寫著代碼,因此還得到報酬,怎麼還能有怨恨呢?

著名的加拿大軟體工程師 David Parnas 曾在一次採訪中這麼解釋道:

問:在軟件工程中,最常被忽視的風險是什麼?

無能的程序員。有人估計,美國需要超過 20 萬名程序員。這完全是誤導!這不是數量的問題,而是質量問題。一個爛程序員在一年裡可以輕易創造兩個新的就業機會。

僱用更多的爛程序員,只會加大我們對他們的需要。而如果我們有更多優秀的程序員,並且能夠讓他們脫穎而出,我們對於程序員的需求就會變少,而不是更多。

我怎麼如此肯定這世界到處都是無能的程序員呢?因為我就是其中之一。

我們都在香腸加工廠幹過活,因此我們知道那玩意兒是怎麼做出來的。這事不光彩!大多數軟件都是像我們這樣的爛程序員(有的比我們更爛)開發出來的。這意味著,大多數軟件都是爛貨

Scott Berkun 曾經寫過一篇文章,題為「Why Software Sucks 」(為什麼軟件叫人失望)。文中提到:

當人們說「這東西真爛」,他們的意思是下面的一條或幾條:

它非我所需;
我不知所措;
它沒必要這麼複雜難用;
它故障頻出;
它醜陋得讓人作嘔;
它與我的世界觀不相符;
它把我的精力浪費在工具上,而我更應該專注於我的工作。

你覺得與那台數碼相機捆綁的軟件符合上述幾條?我猜全部命中。這也是為什麼說,最好別用軟件。如若不然,你也要盡可能少用軟件,甚至於,只用那些有著良好聲譽的確實可靠的軟件。

延伸閱讀:除了讓工程師自學外,公司還能怎麼幫助工程師功力大增?

  • 恐懼、討厭軟體,對於工程師來說是自然而然生成的態度

我不喜歡安裝新軟件。恰恰相反,我對這事很恐懼!

我來講一個自己做了很多次的噩夢吧。在夢裡,我坐在一台電腦面前。這台機器啟動了,跑的是我自己開發的操作系統。然後,我打開一個網絡瀏覽器,它也是完完全全由我自己開發的。我訪問了一個網站,這個網站也是我自己搭建的。我在頁面上剛一點,結果藍屏(註:當機)了。藍屏程序本身也藍屏了,就這樣一發不可收拾,引起了一場大爆炸,把整個街區都毀了。

這個夢還算好的。更糟的時候只有尖叫。周圍一片漆黑。

總之,我討厭軟件。我討厭絕大部分軟件,尤其是我自己的,因為我知道做好一個軟件有多難!這聽起來有些奇怪,但對於軟件開發者來說,這卻是一種自然而健康的態度。你會發現,這是所有有能力的程序員的共識,也是成長的必經之路。

實際上,在面試的過程中,我覺得只要用一個簡單的問題,就能判斷出一個軟件開發者是否有能力:「近期你見過的最糟糕的代碼是什麼?」

如果他們沒有毫不猶豫地回答說「我自己的」,那麼你應該立即中止面試。朋友,對不住啦,你對軟件討厭得還不夠!過幾年再來吧,如果那時候你還在當程序員 … …

延伸閱讀:一篇文章讀懂小米用人之道:黎萬強說:「一個靠譜的工程師頂 100 個!」

(本文轉載自合作夥伴《碼農網》;譯者:呦呦鹿鳴 – 陸其明;圖片來源:Chrissy Downunder,CC Licensed)

 

雲端服務方便又充滿彈性,但要怎麼組合,才能兼顧便宜、高效?怎麼避免在訂購雲端主機服務時不小心 oversizing?怎麼善用工具加強 GPU、CPU、CDN,同時增強資安防禦能力?

IBM 了解你,9/1 (二)晚上 7:00,「雲端主機怎麼選? 開發者、遊戲業者必學聰明採購法則」與你相約在創夢市集 ,不只現場 Demo 給你看,更有僅此一場的「雲端主機設定檢測召集」活動。
不管你使用的是哪家的方案,現場雲端主機應用專家提供完整客製化雲端服務健檢,依照需求試算最佳雲端組合做法,讓你找到又便宜、又好用、又安全的雲端服務最佳採購解,名額有限,提前報名再送 500 美元試用 Coupon。!

備註:欲接受現場雲段服務組合檢測諮詢者,請在報名時註明,我們將為您優先安排。

報名網址:http://www.accupass.com/go/softlayer