「10 倍工程師」引爭議,程序員再被妖魔化?
【CSDN 編者按】前有「996」,後有「10倍工程師」——作為程序員的你感受到被支配的恐懼了嗎?
最近幾日,網上關於「10倍工程師」的討論絡繹不絕,各種觀點也是褒貶不一。有的人認為「這些程序員能夠以一當十」,也有人認為他們只是「沒有感情的編程工具」,但更多的人表示「這樣的10倍工程師是不存在的」、「這是對程序員的妖魔化」——無論是哪種,這些觀點都體現出了當前技術圈內病態的現象。
毋庸置疑的是,10倍工程師是出於對代碼的熱愛才會如此全神貫注,但是這樣的人真的存在嗎?
作者 | Jason Crawford
譯者 | 譚開朗,責編 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下為譯文:
今天我本想寫點別的,但Twitter上似乎每個人都在談論「10倍工程師」。真的存在所謂的「10倍工程師」嗎?這個詞到底是什麼意思?
這個話題引起了人們激烈的口水戰,因為它涉及到深刻的意識形態話題:是不是某些人比其他人更有才華?為什麼會這樣(這是與生俱來的還是後天學習的)?如此一來,我們應該如何對待他人?
社交媒體也因此爭論得熱火朝天:一方面,人們說的10倍工程師是一個神話,它完全基於刻板印象,而且不管怎麼樣,他難道沒有更重要的事情嗎?比如是否可以編寫文檔、指導其他工程師,或者只是做一個品德高尚的人?另一方面,有人犀利反駁道,當然有10倍工程師了,任何不承認這一明顯事實的人,肯定都是不想承認自己是低人一等的失敗者。
讓我們現實一點兒吧——首先,讓我們來做經驗分析。
關於「10倍工程師」應該知道些什麼?
Steve McConnell的文章《開發人員和團隊之間的生產力差異:10倍的起源》(https://www.construx.com/blog/productivity-variations-among-software-developers-and-teams-the-origin-of-10x/)對「10倍工程師」這一概念及其基礎做了很好的解釋。以下是了解「10倍工程師」的關鍵:
10倍指的是最好的開發人員和最差的開發人員之間的差異,而不是最好的開發人員與普通開發人員的差異。這是截然不同的。在我看來,最好的開發人員比普通開發人員的生產力要高3倍,而最差的開發人員的生產力要比普通開發人員低3倍,這樣就可以得到10倍的差距。(請注意,議論「0.5倍工程師」是沒有任何意義的,因為根據定義,最差的開發人員是1倍。)
也許我們應該將「x」重新定義為平均值,則稱最好的工程師為「3倍工程師」,然後結束這場爭論?
10倍的概念是建立在研究的基礎上的,但研究並不完美。在上一點提及的文章中,McConnell對此研究進行了說明。我們有理由對這些研究及與今天熱點相關的觀點提出批評:這些樣本量相對較小,而且並沒有受到很好的管控。其中一些還是幾十年前就完成的(第一個是1968年),當時的計算機、編程語言和開發項目與今天的大相徑庭。他們可能使用了不可靠的生產力指標,例如每天的代碼行數;但是他們也有較好的度量指標,比如完成時間。在某些情況下,並不是代碼行數越多,生產力就越高(對於給定的任務,行數越少越好)。
總的來說,研究足以表明,個人和團隊之間的生產率存在很大的差異。
10倍是一個粗略的平均數。不同的研究和評測得出了不同的範圍,一般在5倍至25倍之間。再加上剛剛討論的研究的局限性,意味著我們只能稱其為「大致數量級」。「10倍」並不精確,它只是一種簡潔的方式,以此來標柱生產率的差異是存在的,且差異巨大。
這些研究,只針對那些實際完成任務的開發人員。研究數據並沒有算到那些沒有完成任務的人(在一些研究中約佔10%)。他們也沒有考慮軟體的實際成本,這些軟體雖然名義上已經完成了,但往往漏洞百出或難以維護,不得不由其他人重寫。這甚至還沒有提到bug產生的成本,這些bug會影響公司的銷售,導致公司虧損甚至倒閉。不過,所有這些因素只會強化這一基本觀點。
10倍這一數字僅與工程生產率的具體衡量指標有關。它並不是為了全面考核工程師對組織的價值,但儘管如此,這些仍然是很重要且有意義的。
這些研究並沒有指出造成這些差異的原因。至少McConnell的研究沒有解決到一些重要的問題,比如:一個人的生產力水平是否能長久的保持穩定?這是否因環境而有差異?工作環境對生產力的影響有多大?它是否會隨任務的不同而隨機變化?它會隨著時間增長嗎?這是可以學會的嗎?(1968年的最初研究表明「程序員的經驗與代碼質量和生產力沒有任何聯繫」,但這並不意味著生產力不能隨著時間的推移而增長,只是它不一定會增長。)
我的觀點
基於研究與我個人的成長經歷與世界觀,提出以下看法:
生產率的差異是真實存在的,這種差異巨大且重要,而且很可能被低估了。如果差異不僅僅是「10倍」,就更足以證明其重要性。我之所以如此認為,部分原因可歸於研究,但更重要的是因為這種現象比軟體要廣泛得多。McConnell引用了Norm Augustine的一項研究「發現在各行各業中,作家、足球運動員、發明家或警察等——前20%的人產生了大約50%的輸出,無論輸出是觸地得分、專利、破案還是軟體。」
工作環境很重要。在現實世界中,工作環境對生產力的影響很大。工程師是否有明確的目標和優先順序?他們會買賬嗎?他們有動力嗎?他們彼此信任嗎?他們信任管理層嗎?他們可以集中注意力嗎?他們參加會議嗎?還是在生產環境中扮演「消防員」的角色?他們有良好的基礎設施和工具嗎......等等。
生產力是內在特質和後天技能的結合。也就是說,一定程度上,它是可以學習的。獲得的技能包括從特定的調試工具到一般的思維模式和解決問題的方法。這些固有特徵與智力和其他思維模式有很大關係,而我們無法(或還不知道如何)識別和傳授這些思維模式。
生產率與經驗並沒有很強的相關性。有很多高效的初級工程師,也有非常平庸(甚至更糟)的高級工程師。所以,即使生產力是可以學習的,學習也不會自動發生,甚至在我們的行業中也不會經常發生。很少有人傳授如何提高工作率,那些能夠獨立學習這些技能的人,也是那些一開始就很優秀的人。
10倍工程師這一爭議的意義何在?
10倍工程師這一爭議的意義何在?其意義在於對招聘、獎勵制度以及個人心理暗示等方面的影響。
以下是我的結論:
招聘事宜。努力吸引、發現和留住最優秀的人才。
環境很重要。努力創造一個良好的工作環境,如果你發現工作效率普遍存在問題,那可能是環境問題。
獎勵高效。創造越多的人賺得越多。
生產力不是與生俱來的。在一個環境中效率低下的人可能在另一個項目中或在另一個團隊或公司中效率更高。在你解僱這個人之前,先確認這個問題。
培訓工程師的工作技能。我還不確定這是否有效,但行業內甚至還沒有人在這領域作出嘗試(包括我自己在內)。
生產率不是不良行為的保護傘。這一點不言而喻,大家都心中有數。
而且也沒有什麼特別的技巧可以「發掘」一個10倍工程師(儘管引發當前討論的帖子很奇怪、很可笑)。他們不是仙女或妖精,你不能通過他們所用終端的顏色、鍵盤上的配飾或任何其他的刻板印象來識別他們。
這是我用了6年的鍵盤,我想我經常做的事情就是複製吧。我保證,它並不總是來自Stack Overflow。
原文:https://jasoncrawford.org/10x-engineers
本文為 CSDN 翻譯,轉載請註明來源出處。
【END】
※CSS 二十年發展簡史
※前端必會!四步帶你吃透瀏覽器渲染基本原理
TAG:CSDN |