我們為什么仍然要雇用效率低下的程序員?
英文原文:Why Bad Programmers Still Get Hired
有的程序員工作效率很高,一個頂十個,那么回過頭來想想,為什么我們還要聘用那些效率低下的程序員呢?
我最近拜讀了 Troy Hunt 再版的《Measuring code quality with NDepend》一文。在具體講述關于 Ndepend 的細節之前,Troy Hunt 分享了一個關于專業差異的現象。
軟件行業之所以常常讓我覺得與眾不同,是因為它和其他領域存在著巨大的不同之處。例如醫藥和航空,它們的專業門檻要求非常高,而軟件開發對于從業者 的經驗和專業等要求相對就低多了。當然我承認上述論斷并非絕對——偶爾也會有醫療事故或者飛機失事出現——但是我們只要想到,在軟件開發中會出現劣質的代 碼的頻率是那么的高,相對而言,醫療事故和飛機失事的概率就微不足道了。
讀完這篇文章,我不由地思考起了軟件行業的專業性以及效率低下的程序員之所以仍能被聘用不被炒魷魚的問題。經過深思熟慮之后,我終于得出結論:之所以光憑能力、效率、專業性不能決定一個程序員去留,主要有以下 3 個原因。
- 任何公司都需要采用營銷和技術手段,來生產和推廣產品,代碼質量并非成功的唯一因素。
- 外行人看不出代碼質量。一個漂亮的用戶界面,哪怕后面的代碼亂七八糟也沒關系,Who knows?
- 是否專業化要經過 10 多年的維護之后才看得出來,大浪淘沙,歷時彌久。
產品理念、市場營銷和技術能力之間的關系
現在凡是在 IT 界赫赫有名的公司(蘋果、谷歌),都有屬于自己的產品理念、龐大的市場和卓越的技術能力。但是如果一家公司想要取得成功,這 3 個條件中只要滿足 2 個就足夠了。擁有一個超棒的產品理念和正確的營銷策略,其技術水平達到一個差不多的水準就 ok 了。
2000 年的時候,我曾就職于 CeBIT 公司,這家公司搗鼓出了一個在技術層面上堪稱劃時代的 Web 發布系統,但是可惜的是由于營銷策略不當,這樣一個產品竟然無法進入公眾的視線。我們的旁邊還有一家公司,員工總是衣著得體,善于與人溝通交涉,產品還算 可以(雖然我的同事曾經嘲笑其為“好像我大學實驗室隨便做做的圖像處理軟件”)。現在那家公司已經是移動成像軟件上的執牛耳者了,而我的老東家還是一家小 公司,苦苦經營。
外行人看不出代碼質量
我不知道那個圖像處理軟件的代碼是怎么樣的,使用這個產品的外行人也一無所知。但是我可以肯定,其用戶界面的設計肯定是一流的。好吧,軟件的外 觀(即用戶界面)和代碼質量之間幾乎毫不相關。與此相比,建筑業則完全不同(例如特洛伊遺址),我們仔細看湊近看,還是能對建筑質量品評一二的。但是如果 是個門外漢看代碼,要是一點也不懂編程和軟件設計,那就跟看天書一樣,質量如何根本無從談起。
大浪淘沙,歷時彌久
對于一個軟件,外行人所能看到的只有程序何時更新、是否好用、以及界面外觀是否漂亮。其真正的質量如何還是需要靠時間來檢驗。差不多經過 10 年左右的有效維護,取其精華、去其糟粕,才能最終出來一個設計精巧的成果。但是不幸的是,在這 10 年時間里,那些效率低下的程序員已經寫了不計其數的劣質代碼。而且時間已經過去那么久,要想再追究也毫無意義。即便辭退他們,他們也能根據以往參與過的項 目經歷,炫耀那些迷人的用戶界面而隱藏起背后的雜亂無章,通過復制粘貼代碼,輕輕松松在網上找到一份好工作。
譯文鏈接:http://news.html5tricks.com/why-bad-programmers-still-get-hired.html
翻譯作者:IT 新聞 – 蔣麗麗