|
文/Mr. Jamie
算起來軟件工程師大概是全世界最特別的一種職業,因為一個最好的 programmer 和一個最爛的 programmer,生產力相差至少 10 倍,有時候甚至可以高達 100 倍。這在其他的職業幾乎是沒聽過的——像 Jordan (麥可?喬丹)這樣強的籃球運動員,平均一場比賽的生產力,頂多也只是菜鳥板凳的 10 倍。即使是其他腦力、創意密集的行業,例如:IC 設計、建筑、商品設計等等,生產力的差別也都是在 10 倍的這個級別,很少達到 100 倍的。
但又為什么,當 Jordan 的薪水是 NBA 菜鳥的 100 倍,一流建筑師的費用是菜鳥的 1,000 倍時,最好的軟件工程師,他們所賺得的卻往往連新人的 5 倍都不到?這個問題我一直想不透。它也不是壞事,因為很久以前當我第一次發現了這個現象后,我就學會要花 3 倍的價錢去雇一個 10 倍強的工程師——多么劃算的一個買賣啊!只是這件事情發生的原因,讓我非常的困擾。第一,它一點都不符合經濟學上「邊際效應遞減」的原則,你看其他職業,例如上面提到的 NBA,當你要雇用一個生產力 10 倍的球員,你必須付出 100 倍的成本。更重要的是,它一點都不公平,生產力 10 倍的人,就算沒有拿 100 倍的薪水,少說也應該要拿 10 倍的薪水。
直到昨天,讀了 John D. Cook (強?庫克)的這篇文章:「Why programmers are not paid in proportion to their productivity」,才給我了一個天大的啟發。
原來,這個發生的原因主要有兩個——John 其實也是引述 Joel Spolsky(喬?史波斯基,有名的 Joel on Software 作者)的說法:
第一,雖然全世界的工程師優劣差很多,但是同一家公司的工程師優劣卻是差不多的,因為一流的工程師不可能長期忍受跟一群蠢蛋一起工作,所以遲早會離去,于是久而久之這家公司的工程師品質就會趨向一致——這也就是為什么你必須要花很多力氣在團隊上面。
而另一個更重要的原因,是一個好工程師的生產力,其實很難被察覺。如果你要判斷一個業務好不好,那很簡單,看看他的業績就行了。你要看一個建筑工人的生產力,那也很簡單,看看他多快把房子蓋好就行了。以此類推,如果你要知道到一個軟件工程師的生產力,就看看他寫了幾行程序…
大錯特錯!!
一個軟件工程師生產力最高的時候,是當他可以少寫幾行程序的時候。當他可以用一些現成的東西,在很短的時間內拼湊出你需要的產品、解決方案的時候;當他可以跟你明確的溝通,不會浪費時間在開發錯誤的東西上的時候;當他可以正確的解讀數據,然后快速的修正產品的時候。這些…
通通不是用幾行程序代碼去衡量的!!
問題是當一個優秀的工程師,快速的把產品湊出來,或者是很有效率的溝通時,老板的反應是什麼?99.9%都沒有辦法聯想到這就是極致生產力的表現,然后說:「嘿!我應該幫他加薪 10 倍!」所以,難怪好的工程師往往沒辦法獲得合理的報酬。
因此,如果你是創業團隊,該怎么做?當然是用力的利用這個市場不平衡,把優秀的、在大公司郁郁不得志的工程師,通通都吸收到你的團隊來。而這也就剛好解釋了為什么 EZTABLE 會說:我們在找的是「人」,而不是技術。
PS. 意猶未盡的人,這里有一篇 Hackers vs. Coders 的故事。
PPS. 我超喜歡下面的討論,比文章本身還精彩,大家千萬不要錯過。
(Image via scobleizer, CC license)
it知識庫:為什么軟件工程師的薪水和生產力如此不成比例,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。