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