為什么還有人雇傭糟糕的程序員?
有一種言論是好的程序員的效率是差的程序員的10倍,那為什么那些差的程序員還能找到工作并且能一直做下去呢?
我最近閱讀了 DZone 上面的 Troy Hunt 的文章“Measuring code quality with NDepend” 。先不管 NDepend,Troy 分享了一個(gè)關(guān)于專業(yè)性的有趣的觀點(diǎn):
我一直想不通為什么軟件行業(yè)的專業(yè)性的差異會(huì)如此巨大。對(duì)比醫(yī)生或者飛行員,好的醫(yī)生和不好的醫(yī)生差別不會(huì)很大,而飛行員的差別應(yīng)該更小。當(dāng)然醫(yī)療事故和飛行事故也會(huì)發(fā)生,但那確實(shí)很偶然。但是軟件行業(yè)垃圾代碼,低質(zhì)量軟件的概率似乎要高很多很多。
Troy 的文章引起了我對(duì)專業(yè)性的思考,以及為啥不好的程序員也能找到工作并能一直做下去。我認(rèn)為有三個(gè)主要原因,可以解釋為啥競(jìng)爭(zhēng)力,效率和專業(yè)性不是程序員職業(yè)生涯的決定性因素。
- 明星公司通過(guò)市場(chǎng)營(yíng)銷和技術(shù)競(jìng)爭(zhēng)力創(chuàng)造偉大的產(chǎn)品。
- 外行無(wú)法分辨代碼好壞。在漂亮的 UI 下面可能是技術(shù)災(zāi)難。
- 代碼的好與壞可能需要10年的時(shí)間才能體現(xiàn)。
產(chǎn)品理念,市場(chǎng)營(yíng)銷,技術(shù)壁壘
像 Apple,Google 這樣的明星公司,他們有非常好的產(chǎn)品理念,市場(chǎng)營(yíng)銷以及技術(shù)壁壘。這三樣只要有其中兩樣就可以把產(chǎn)品做成功,例如好的產(chǎn)品理念和良好的市場(chǎng)營(yíng)銷加上一般般的技術(shù)水準(zhǔn)。
我記得在 2000 年的 CeBIT 會(huì)議上,我當(dāng)時(shí)所在的公司有一套非常好的網(wǎng)頁(yè)發(fā)布系統(tǒng),但是我們很難讓大家了解我們。但是我們隔壁的公司穿著西裝革履,非常健談,他們的產(chǎn)品也不錯(cuò)(雖然我同事常常嘲笑他們的圖像處理產(chǎn)品就像學(xué)校實(shí)驗(yàn)室的作業(yè))。那個(gè)圖像處理公司現(xiàn)在是移動(dòng)圖像軟件領(lǐng)域的主要玩家。而我的老東家還是一家很小的公司。
外行無(wú)法分辨代碼好壞
我不知道那家圖像處理公司的代碼如何,使用他們產(chǎn)品的用戶同樣不知道。但是我知道他們的用戶界面設(shè)計(jì)很好。一款軟件的界面與代碼質(zhì)量真的沒(méi)有什么關(guān)系。即使你把代碼給用戶看,他也看不出來(lái)啥。但是建筑行業(yè)就不一樣,大部分外行可以通過(guò)仔細(xì)查看外觀來(lái)判斷一棟樓的質(zhì)量。
10年見(jiàn)分曉
對(duì)于用戶來(lái)講,他關(guān)心的只是軟件是否***版本,是否好用,是否漂亮。代碼的質(zhì)量往往需要在使用很長(zhǎng)時(shí)間以后才能體現(xiàn)出來(lái)。一個(gè)軟件維護(hù)了十年以后,具有良好的設(shè)計(jì)和編碼的軟件將依然很好用,而不好的軟件可能已經(jīng)被拋棄。不幸的是,糟糕的程序員可能在這十年中寫(xiě)了很多爛代碼。時(shí)間會(huì)消磨一切,很多項(xiàng)目時(shí)間一長(zhǎng)大家都不在乎這些了。而這些糟糕的程序員依然可以拿他們?nèi)ツ甑钠另?xiàng)目出來(lái)找工作。
原文鏈接,OSChina.NET 編譯
本文鏈接:http://www.oschina.net/news/31817/why-bad-programmers-get-hired