標籤:
原文Jeff Atwood
幾個月前。我們買了一台新的數位相機,為的是更好地記錄我們家小寶貝的成長過程。採購的事情由我太太負責。
她小心地開啟相機的封裝盒,給相機裝上電池。然後就開始了首次試拍。
像非常多電子產品一樣,隨相機附送的另一張軟體光碟片。於是。她不假思索地開啟DVD光碟機,然後把光碟片放了進去。
我眼角的餘光碰巧注意到了這一切。
說時遲,那時快,我瘋了似的從房間的另一頭衝過去,同一時候大叫:“不……要……啊……”——我不顧一切地試圖阻止她從那張光碟片上安裝軟體(為了更好地理解當時的情景。你能夠以誇張的慢動作來想象一下整個過程)。
還好,她停住了,但我也差點兒驚走了一僅僅貓。
隨數位相機附送的軟體事實上沒啥問題。但真是這樣嗎?
- 這個軟體可能是不必要的。
不論什麼現代的作業系統(甚至是Windows XP)都能瀏覽而且自己主動下載一台新數位相機裡的照片。不須要什麼特別的軟體。
但為了添加“價值”、與競爭者形成差異化,相機公司的某些高管草率地採取了捆綁軟體的策略——隨機附帶一款具有一堆古怪而獨特功能的軟體——這樣的做法是應被質疑的。
- 硬體公司通常不擅長做軟體。數位相機公司玩得好的是硬體製作,而軟體呢,充其量是事後才想起來要做的事,僅僅是一件附屬品,在銷售人員眼裡也只是是錦上添花的玩意兒。
- 不明來源的軟體非常可能是由爛程式猿開發出來的。
拋開別的不說。你即將安裝的這款無名軟體,它實用而且使用者體驗良好的機率是非常低的。
不幸的是,選擇以軟體開發作為自己的職業有非常多副作用。當中之中的一個便是,久而久之,你會變得厭惡軟體。
我說的是真正的厭惡!
一種強烈的厭惡之情。想象一下你碰到過的最憤慨的使用者,把他的情緒乘以1000倍也抵只是我們程式猿對軟體的感受。
沒人比程式猿更討厭軟體。
甚至此時此刻,我在說這個事的時候都感覺到自己的憤慨。
把開發軟體作為職業的人會有這樣的態度,這難道不奇怪嗎?我們每天寫著代碼,因此還得到酬勞,怎麼還能有怨恨呢?
David Parnas在一次採訪中這麼解釋道:
問:在軟體project中。最常被忽視的風險是什嗎?
答:無能的程式猿。有人預計。美國須要超過20萬名程式猿。這全然是誤導!
這不是數量的問題。而是品質問題。
一個爛程式猿在一年裡能夠輕易創造兩個新的就業機會。僱用很多其它的爛程式猿。僅僅會加大我們對他們的須要。
而假設我們有很多其它優秀的程式猿,而且能夠讓他們脫穎而出,我們對於程式猿的需求就會變少。而不是很多其它。
我怎麼如此肯定這世界到處都是無能的程式猿呢?由於我就是當中之中的一個。
我們都在香腸加工廠幹過活,因此我們知道那玩意兒是怎麼做出來的。
這事不光彩。大多數軟體都是像我們這樣的爛程式猿(有的比我們更爛)開發出來的。
這意味著,大多數軟體都是爛貨。ScottBerkun以前寫過一篇文章。題為“Why Software Sucks”(為什麼軟體叫人失望)。文中提到:
當人們說“這東西真爛”,他們的意思是以下的一條或幾條:
- 它非我所需;
- 我不知所措;
- 它不是必需這麼複雜難用。
- 它故障頻出。
- 它醜陋得讓人作嘔;
- 它與我的世界觀不相符;
- 它把我的精力浪費在工具上,而我更應該專註於我的工作。
你認為與那台數位相機捆綁的軟體符合上述幾條?我猜所有命中。這也是為什麼說,最好別用軟體。如若不然,你也要儘可能少用軟體,甚至於,僅僅用那些有著良好聲譽的確實可靠的軟體。
我不喜歡安裝新軟體。恰恰相反,我對這事非常恐懼!
我來講一個自己做了非常多次的噩夢吧。
在夢裡,我坐在一台電腦面前。
這台機器啟動了,跑的是我自己開發的作業系統。然後,我開啟一個網路瀏覽器,它也是完全然全由我自己開發的。
我訪問了一個網站,這個網站也是我自己搭建的。我在頁面上剛一點。結果藍屏了。藍屏程式本身也藍屏了,就這樣一發不可收拾,引起了一場大爆炸,把整個街區都毀了。
這個夢還算好的。更糟的時候僅僅有尖叫。周圍一片漆黑。
總之,我討厭軟體。
我討厭絕大部分軟體,尤其是我自己的,由於我知道做好一個軟體有多難!這聽起來有些奇怪,但對於軟體開發人員來說,這卻是一種自然而健康的態度。你會發現,這是所有有能力的程式猿的共識。也是成長的必經之路。
實際上,在面試的過程中。我認為僅僅要用一個簡單的問題。就能推斷出一個軟體開發人員是否有能力:“最近你見過的最糟糕的代碼是什嗎?”
假設他們沒有毫不猶豫地回答說“我自己的”。那麼你應該馬上中止面試。朋友,對不住啦,你對軟體討厭得還不夠。過幾年再來吧,假設那時候你還在當程式猿……
推薦閱讀:程式猿的八種境地
沒人比程式猿更討厭軟體