算起來軟體工程師大概是全世界最特別的一種職業,因為一個最好的programmer和一個最爛的programmer,生產力相差至少10倍,有時候甚至可以高達100倍。這在其他的職業幾乎是沒聽過的像Jordan(麥可喬丹)這樣強的籃球員,平均一場比賽的生產力,頂多也只是菜鳥板凳的10倍。即使是其他腦力、創意密集的行業,例如:IC設計、建築、商品設計等等,生產力的差別也都是在10倍的這個級距,很少達到100倍的。

但又為什麼,當Jordan的薪水是NBA菜鳥的100倍,一流建築師的費用是菜鳥的1000倍時,最好的軟體工程師,他們所賺得的卻往往連新人的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會說:我們在找的是「人」,而不是技術。

本文獲「MR. JAMIE」授權轉載