最近關(guān)于 10 倍程序員的事又開始在各個社交平臺火了起來,CODING 作為國內(nèi)領(lǐng)先的一站式 DevOps 解決方案,今天也來討論一下 10 倍程序員到底存不存在和這個概念到底意味著什么。
這個話題之所以會時不時被拿出來討論,主要是因為它觸及了一個比較深的意識形態(tài)問題:有些人是否比其他人更有才華,以及為什么會這樣(這是天生還是后天可以改變的)。如果答案是肯定的,我們應(yīng)該如何正確對待這件事。
因此,在各個社交平臺的激烈討論主要分成了兩派,一邊認為 10 倍程序員只是一個傳說,是對程序員群體的刻板印象,而且比起討論這個問題還有更重要的事去做,比如好好寫文檔或者帶帶實習(xí)生。而另一邊則會翻個白眼告訴你 10 倍程序員當(dāng)然是存在的,那些不愿意承認的人都是被各種正義宣傳洗了腦,或者是一個不想承認自己的失敗的自卑者。
關(guān)于 10 倍程序員的傳說究竟如何,讓我們來稍微解密一下。
關(guān)于 10 倍程序員的研究
這次風(fēng)波的起因是在 7 月 11 日,Shekhar Kirani(在 Accel 印度的基金擔(dān)任合伙人職位)發(fā)了一條微博:
聲稱 10 倍程序員是一種稀有物種并建議創(chuàng)業(yè)公司的 CEO 尋覓這種罕見的程序員,如果能找到一個 10 倍程序員作為你初始團隊的前幾名程序員之一,可以顯著提高你的啟動成功幾率。并且還列舉了諸如“仇恨會議”,“高度不規(guī)則”的工作時間,“可以高效將想法轉(zhuǎn)化為他們心中的代碼”,知道已經(jīng)投入生產(chǎn)的“每行代碼”,筆記本電腦屏幕背景顏色是黑色的等幾條 10 倍程序員的特征。
我們暫且不討論他的論斷是否正確,其實在過去關(guān)于 10 倍程序員這個概念有著很多的討論,其中比較有名的是 Steve McConnell 在八十年做的研究:Productivity Variations Among Developers and Teams: The Origin of 10x。從中我們可以提取出幾個關(guān)鍵點:
1.10 倍程序員指的是最優(yōu)秀的程序員和最差的程序員之間的差距,而不是和平均相比
這樣其實更好讓人接受,在我看來,更容易相信最好的開發(fā)人員比平均水平高出 3 倍,而最差的開發(fā)人員的生產(chǎn)力要低 3 倍。這樣可以讓你達到 10 倍的整體差價。
也許我們應(yīng)該將“x”重新定義為平均值,稱之為“3 倍程序員”,這樣就不用吵來吵去了。
2. 10 倍程序員的概念的確是基于研究而來,但這并不代表研究是完美的
McConnell 在上面提到的文章中詳細總結(jié)了之前關(guān)于 10 倍程序員的研究,但是這些研究在今天看來都略顯過時并存在一定的缺陷,比如總樣本量相對較小,并且并沒有很好的把控變量。其中一些研究是在幾十年前(第一次是 1968 年)完成的,當(dāng)時計算機、編程語言和開發(fā)任務(wù)都和現(xiàn)在有很大不同。雖然他們采用了一些還不錯的度量方式,比如任務(wù)完成時間,但是大部分度量方式是值得商榷的,例如每天的代碼行數(shù),并且在某些情況下,他們認為代碼行數(shù)是負面影響因子(對于給定的任務(wù),更少的代碼量被認為是會更好)。
總的來說,雖然有些瑕疵,但還是有明顯的證據(jù)表明,個人之間的生產(chǎn)力差異很大。
3. 10 倍只是一個粗略估計
不同研究發(fā)現(xiàn)的生產(chǎn)力差距存在一定的范圍,通常在 5 至 25 倍之間。這與剛剛討論的研究的局限性相結(jié)合,意味著我們不能說“大致數(shù)量級”。“10 倍”并不準(zhǔn)確,它只是一種方便的方式來記住生產(chǎn)力的差異存在并且很大。
4.10 倍的數(shù)字僅僅是對代碼生產(chǎn)力的衡量
它并非旨在完全衡量程序員對組織的價值,也不能用于此目的。也就是說,這些仍然是有意義和重要的措施。
5.這些研究并沒有揭露造成差距的原因
據(jù)我所知,McConnell 的調(diào)查至少沒有解決重要的問題,例如:個人的生產(chǎn)力水平是否隨時間穩(wěn)定? 它是否因環(huán)境而異?工作環(huán)境對生產(chǎn)力的影響程度如何? 它會因為項目的不同或工作內(nèi)容的變化而變化嗎? 它會隨著經(jīng)驗而增長嗎? 可以通過學(xué)習(xí)進步嗎?(McConnell 表示最初 1968 年的研究“發(fā)現(xiàn)程序員的經(jīng)驗和代碼質(zhì)量或生產(chǎn)力之間沒有任何關(guān)系”,但這并不意味著生產(chǎn)力不會隨著時間的推移而增長,只是它不一定會這樣做)。
生產(chǎn)力的差距是確實存在的
以下四個想法不僅基于研究,而且基于我們?nèi)粘5挠^察:
1. 生產(chǎn)力的差異是真實的、重要的,并且可能被低估。
即使差異不是“十倍”,但是很多時候也會舉足輕重,而且我相信這個現(xiàn)象不僅僅存在于軟件行業(yè)。McConnell 本人就指出過這一點,引用 Norm Augustine 的一項研究:“在各種職業(yè),無論寫作,足球,發(fā)明,警察工作還是其他職業(yè),一定都是前 20% 的人產(chǎn)生了約 50% 的產(chǎn)出, 無論是橄欖球中的達陣還是專利,解決案例或軟件。”
2. 工作環(huán)境至關(guān)重要
在現(xiàn)實世界中,生產(chǎn)力其實很大程度是受工作環(huán)境制約的。程序員是否明確了目標(biāo)和優(yōu)先事項? 他們是否相信自己做的事情?他們有動力嗎?他們能否相互信任?他們可以集中注意力嗎?他們必須隨機參加會議嗎?他們有良好的基礎(chǔ)設(shè)施和工具嗎?等等。
3. 生產(chǎn)力是自身特征和后天技能的結(jié)合
也就是說,高生產(chǎn)力是可以通過學(xué)習(xí)來部分提高的。可獲得的技能包括從調(diào)試特定工具到思維模式和解決方式等,通過這些來提高自己的生產(chǎn)力。但是自身的特性暫時還是不能(或者說還不知道如何)有效的識別和通過學(xué)習(xí)來習(xí)得的,這與個人自身的智力和思維模式有很大關(guān)系。
4. 生產(chǎn)力并不和過往經(jīng)歷強相關(guān)
有非常高效的初級程序員,也有非常平庸(或更糟糕)的高級程序員。因此即使可以通過學(xué)習(xí)來提高自身的生產(chǎn)力,但是學(xué)習(xí)的過程也不會自動發(fā)生,固步不前的程序員在我們的行業(yè)中也是很常見的。
最終還是歸結(jié)到人與人之間的關(guān)系
關(guān)于 10 倍程序員的討論歸根結(jié)底是在討論如何雇傭、獎勵員工以及我們?nèi)绾螌Υ舜恕?/p>
所以我們總結(jié)出了如下的結(jié)論,希望對企業(yè)的研發(fā)團隊有些幫助:
招聘環(huán)節(jié)至關(guān)重要: 盡可能地花更多的心思和時間去尋找最優(yōu)秀的候選人。
創(chuàng)造良好的工作環(huán)境: 努力創(chuàng)造一個良好的工作環(huán)境,有很多生產(chǎn)力的問題都是由工作環(huán)境的問題造成的。
賞罰得當(dāng): 能正確地辨識工作的價值,讓創(chuàng)造更多價值的人獲得相應(yīng)的報酬。
不要認為生產(chǎn)力的原因僅僅在于人: 在一個環(huán)境中生產(chǎn)力不足的人可能在不同的項目或不同的團隊或公司中卓有成效。在解雇對方之前最好仔細分析一下問題所在。
即使是 10 倍程序員也不能放任自流: 這個應(yīng)該是原則問題,不言而喻。
另外,再說一下開頭提到的整場討論的起因——我們認為發(fā)現(xiàn) 10 倍程序員的規(guī)律或者特質(zhì)并不存在,他們不是什么特殊物種,不可能通過終端的顏色,鍵盤上的磨損,或任何其他刻板印象來識別它們。
責(zé)任編輯:wv
-
程序員
+關(guān)注
關(guān)注
4文章
956瀏覽量
30940
發(fā)布評論請先 登錄
電機抖動?電流咆哮?TMC2209-LA:不存在的!
程序員最常見謊言
飛凌嵌入式ElfBoard-標(biāo)準(zhǔn)IO接口之打開文件
奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官
開鴻智谷“以賽促學(xué)、以賽選才”|1024程序員節(jié)暨開源鴻蒙構(gòu)建大會圓滿落幕!
Redis緩存的經(jīng)典問題和解決方案
英偉達深夜發(fā)聲:我們的芯片不存在后門,如何自證呢?
英偉達:我們的芯片不存監(jiān)控軟件 NVIDIA官方發(fā)文 NVIDIA芯片不存在后門、終止開關(guān)和監(jiān)控軟件
突破瓶頸,EtherCAT轉(zhuǎn)CANopen網(wǎng)關(guān)轉(zhuǎn)換的亞毫秒級延遲已不存在
程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)
構(gòu)建大規(guī)模Simulink模型的標(biāo)準(zhǔn)化最佳實踐
10倍程序員到底存不存在
評論