為什么程序員得到的報酬與他們的生產(chǎn)力不成正比
最高產(chǎn)程序員的生產(chǎn)力是普通程序員的好幾倍。但是在任何公司,薪水通常在相當小的范圍內變動。即使在整個行業(yè),工資也相差不是很大。如果一些程序員的產(chǎn)量是別人的十幾倍,那為什么得到的薪水不是別人的十幾倍呢?
對這個問題,JoelSpolsky在他的播客中給出了兩個解釋。第一,整個行業(yè)中,程序員的生產(chǎn)力可能大不相同,但在同一個公司內部,這種差別卻不大。那些比他的同事多產(chǎn)十幾倍的程序員有可能離開公司,或者與其他很有才華的程序員共事,或者自立門戶;第二,極端的多產(chǎn)可能不明顯。這條播客詳細說明第二個原因。
如果一個程序員的生產(chǎn)力比他同事高十幾倍,他怎么會不被注意到呢?在一些職業(yè)這樣的差別可能會很明顯。銷售量是同事十幾倍的銷售員會受到關注,并會得到相應的報酬。銷售量是容易衡量的,而且一些銷售比其他人多賺成倍的錢。
如果一位磚瓦匠比同事有十幾倍的能干,這也會很明顯,但是這并沒有發(fā)生:最好的磚瓦匠也不能比普通的磚瓦匠多壘十幾倍的磚。軟件的產(chǎn)出不像美元和磚那樣容易衡量。最優(yōu)秀的程序員也不能編寫十幾倍于他人的代碼,而且工作時間也達不到他人的十幾倍。(編注: “一個優(yōu)秀程序員的效率會是一個普通程序員的十倍之上”,參見《一些鮮為人知的編程真相》。)
當程序員不用寫代碼時是他們最有效率的時候。他們可能發(fā)現(xiàn),待解決的問題根本不需要解決,因為用戶所要求的實際上并非用戶想要的。他們可能知道在哪里找到能解決問題的可復用代碼或重新編輯的代碼。他們可能會使用現(xiàn)成的代碼。
但是,就在他們編寫代碼最富有成效的時候,也沒有人說:“哇!比起用那種困難的方式去解決,你高效100多倍。你理應加薪。”他們最多會說:“好主意!”然后繼續(xù)工作。這可能需要花費一小段時間去認識到一些人照例地提出這種節(jié)省時間的意見?;蛘呦麡O的說,要認清一些人編程過程中動作很大,但辦不了什么實事兒可能需要花費一段時間。
頂級程序員的完美形象是,Ta在開發(fā)項目時,打開編輯器(Emacs),像機關槍一樣快速編寫代碼,從零開始最終給出一個完美的產(chǎn)品。一個更為精確的形象是,Ta靜靜地凝視空白處,幾分鐘然后說:“嗯,我想我曾經(jīng)看過與這類似的。”
譯文鏈接:http://www.jobbole.com/entry.php/558
英文原文:http://www.johndcook.com/blog/2009/12/23/why-programmers-are-not-paid-in-proportion-to-their-productivity/
【編輯推薦】