在一些互聯(lián)網(wǎng)公司里,常常有些人擁有唬人的頭銜,拿著高昂的薪水,甚至有些大權(quán)在握,但他們并不勝任他們的工作——那么,優(yōu)秀的軟件團(tuán)隊(duì)如何才能避免腐朽?
作者 |Erik Dietrich譯者 |蘇本如責(zé)編 | 郭芮出品 | CSDN(ID:CSDNnews)
以下為譯文:
我最近發(fā)表了一篇很受歡迎的文章,叫做“如何留住最好的開發(fā)人員”。我在文章中提到了最能干的開發(fā)人員在工作中想要什么,以及為什么他們無法滿足的時(shí)候,他們就會選擇離開。今天,我想寫一篇文章,重點(diǎn)關(guān)注軟件開發(fā)團(tuán)隊(duì),而不是單個(gè)開發(fā)人員在組織內(nèi)部或組織之間的個(gè)人旅程。
在我的前一篇文章中,我提到了布魯斯·韋伯斯特的“死海效應(yīng)”這篇文章,它描述了一種趨勢,即最有才華的開發(fā)人員往往是最有可能獲得其他機(jī)會的人,因此當(dāng)他們稍不如意時(shí),就最有可能選擇離開。另一方面,最沒有才華的開發(fā)人員更可能留下來,因?yàn)樗麄兒茈y說服其他公司雇用他們。這提供了一個(gè)視角讓我們能夠理解為什么在公司里常常有些人擁有唬人的頭銜,拿著高昂的薪水,甚至有些大權(quán)在握,但他們并不勝任他們的工作。但這個(gè)視角還是把注意力關(guān)注在個(gè)體層面,這不是“死海效應(yīng)”的關(guān)鍵,只有當(dāng)一個(gè)團(tuán)隊(duì)不斷制造出這樣的“渣子”成員(或者更糟,所有有才華的成員都被趕走,最后只留下這些“渣子”成員),這才是“死海效應(yīng)”的真正含義。
我相信任何一個(gè)軟件團(tuán)隊(duì)的腐壞并導(dǎo)致有才華的人員流失都有一些獨(dú)特的群體動力,不能完全歸結(jié)為糟糕的外部決策。毫無疑問,布魯斯·韋伯斯特的“死海效應(yīng)”既是這種群體動力的催化劑,也是這種群體動力的必然結(jié)果。我相信,外部的愚蠢決策要想搞壞一個(gè)軟件團(tuán)隊(duì)讓“渣子”成員充斥,必須要有團(tuán)隊(duì)內(nèi)部的“巫術(shù)”相配合。這篇文章中,我將描述團(tuán)隊(duì)中的個(gè)體如何通過選擇終身平庸為自己獲得回報(bào)鋪平道路。
學(xué)打保齡球
在開始之前,我想請你一起回顧我打保齡球的歷史。是的,我是認(rèn)真的。
我是一個(gè)相當(dāng)有運(yùn)動天賦的人。從小到大,無論玩什么運(yùn)動或者參加什么比賽,我總是至少能比2/3以上的人出色。但是我總是博而不精,沒有哪一項(xiàng)能拔尖。這給了我一種錯(cuò)覺,就是我能不費(fèi)吹灰之力地掌握任何一項(xiàng)技能,當(dāng)我開始練習(xí)保齡球時(shí)就有這種錯(cuò)覺。
大多數(shù)打保齡球的人都會把拇指和兩個(gè)手指放進(jìn)球里,并小心地訓(xùn)練投擲方式讓球先從邊上開始滾動再轉(zhuǎn)向中間。我沒有耐心去練習(xí)這個(gè)動作,我發(fā)現(xiàn)我可以不把手指和拇指放進(jìn)球里,但是我假裝這樣做,然后稍微扭動我的肘部,把球投擲到球道上。這種投擲方式雖不漂亮,但很管用。
事實(shí)上,我打保齡球的次數(shù)越多,效果就越好。當(dāng)我為了玩得更開心,參加了一個(gè)業(yè)余聯(lián)盟后,我的平均得分開始上升。我并不是這個(gè)聯(lián)盟中最好的球員,有幾個(gè)保齡球手,包括我的前經(jīng)理,他們的平均得分在170到200之間,而我在聯(lián)盟中玩了幾個(gè)月后,我的平均得分從130到140之間迅速提高到160分左右——這個(gè)分?jǐn)?shù)不算太寒酸。
但自那之后就奇怪了,我的得分不再提高了,最高分就停在了160分左右。我問我的老經(jīng)理我需要做些什么才能繼續(xù)提高,他對我說了一些非常有趣的話。大意如下:
如果你一直這樣打保齡球,你就沒有可能提高了,你已經(jīng)達(dá)到了你的極限。如果你想做得更好,你就得學(xué)會正確地打保齡球。你需要一個(gè)不同的球,一種不同的投擲方式,你需要像個(gè)大男孩一樣把手指放進(jìn)去。最糟糕的是,在你獲得改進(jìn)之前,你的得分會比現(xiàn)在更差,而你想恢復(fù)并超過目前的平均水平,需要不少的時(shí)間。
我抵觸了一段時(shí)間,不想改變,但我又對自己止步不前感到厭煩(這是我個(gè)人的一個(gè)特點(diǎn):我必須要成為最頂尖的,否則我會發(fā)瘋),所以我還是開始了艱難練習(xí)。我買了一個(gè)保齡球,把它按照我的手指定制鉆了孔,并開始按照正確的方式練習(xí)投擲。具有諷刺意味的是,我在做了那件事之后,幾乎馬上就離開了那份工作,而且在那之后的幾年里,我大概只打了8次保齡球,生活就是這樣。但是我想,下次我去的時(shí)候,我就不再需要租保齡球鞋,也不需要在球館里挑選適合我手指的球了。
德萊弗斯模型:快速回報(bào),發(fā)展受阻
20世紀(jì)80年代,一對姓德萊弗斯的兄弟提出了一個(gè)技能獲取模型,對學(xué)習(xí)、過程和實(shí)踐的討論產(chǎn)生了相當(dāng)大的影響。后來,他們出版了一本基于這個(gè)模型的書,在那本書中,他們將把模型改進(jìn)成現(xiàn)在維基百科中看到的形式。
該模型列出了技能獲取的五個(gè)階段:新手、高級新手、勝任者、精通者和專家。顯然,這本書有很多內(nèi)容,因?yàn)樗枰徽緯鴣砻枋?,但其要點(diǎn)是技能獲取者從“生搬硬套和缺乏大局”向“直觀超越規(guī)則和全面理解大局”的方向轉(zhuǎn)變。
通常情況下,人們會假設(shè)在各個(gè)階段所取得的進(jìn)步都是自然的和線性的,就像空手道腰帶的獲取或者企業(yè)界金錢的賺取。但在實(shí)際情況下,它會因?yàn)槿说奈蛐院蛻B(tài)度而不同。當(dāng)一個(gè)人開始學(xué)習(xí)一項(xiàng)技能的時(shí)候,他是完全不勝任的,這會導(dǎo)致最初的一段挫折期,這時(shí)候他會陷入困境,只能等待有人(比如指導(dǎo)老師)來向他填鴨式地灌輸需要的知識(或者,像德萊弗斯們所說,他們“像個(gè)嬰兒,通過模仿和掙扎撿起東西”)。然而,在一個(gè)相對較短的完全的啟動階段之后,這個(gè)人就到達(dá)了這樣的階段,通過一些練習(xí)就能掌握技能。并且如果選擇“低掛果實(shí)”的話,一個(gè)充滿活力的學(xué)習(xí)者就能獲得相當(dāng)快地提高。然而,一旦所有“低掛果實(shí)”被摘下,這種不可持續(xù)的快速進(jìn)步的速度會有所下降。從那以后,進(jìn)一步的熟練就變得相對困難了。
我畫了一個(gè)圖表來描述這個(gè)過程(實(shí)際上花了我很長時(shí)間,因?yàn)槲襾y七八糟地畫了帶一個(gè)自變量的logistic 1/(1 + e^-x)回歸函數(shù),而不是像普通人一樣在Paint中畫一條線)。
事實(shí)上,我的保齡球技能的獲取正是遵循這樣的路線,從完全不會,到具備某種程度的技能,再到迅速地提高到勝任的程度,然后就停滯不前了。在我的例子中,技能的提高達(dá)到了局部的最高點(diǎn),然后就不再提高了,因?yàn)樘?,所以我無法繼續(xù)按既定路線提高,也無法將我的調(diào)整進(jìn)行到底。在這篇文章中,我把這種情況稱之為“發(fā)展受阻”。這個(gè)詞是一個(gè)心理學(xué)術(shù)語,但是為了本文的目的,請忘記這個(gè)心理學(xué)的定義。
從技能獲取的觀點(diǎn)來看,一個(gè)人到達(dá)“發(fā)展受阻”階段,技能水平就不再提高,是因?yàn)橐韵聝蓚€(gè)原因之一:一是天資受限,二是沒有意愿去作有意義的改進(jìn)。
在本篇文章中,我們不討論第一種原因(因?yàn)榇蠖鄶?shù)專業(yè)的程序員都不會天資低下到不能獲取最基本的技能的程度),我們討論第二個(gè)原因的一個(gè)有趣的具體實(shí)例:即自愿停止改進(jìn),因?yàn)橄嘈抛约旱募寄芤呀?jīng)達(dá)到了專家水平,所以進(jìn)一步改進(jìn)不太可能了 。這種不確定的平庸?fàn)顟B(tài)是進(jìn)入技能獲取的快速階段的入口,我將它稱之為“專家新手”。
當(dāng)你考慮德萊弗斯模型時(shí),你會注意到隨著時(shí)間的推移,技能獲取者有一種從“嚴(yán)格的規(guī)則導(dǎo)向和對大局不甚了解“到“非常直觀和完全把握大局”轉(zhuǎn)化的趨勢。高級新手階段是技能獲取者對大局不甚了解的最后一個(gè)階段,因此,這是技能獲取者可能把自己誤以為是專家的最后一個(gè)階段。一個(gè)稱職的人把握大局的能力很強(qiáng),所以不會把自己與專家混淆:他知道自己缺失什么技能。而這是高級新手不具備的,因?yàn)楦呒壭率终幱卩噷?克魯格效應(yīng)的“非熟練”階段,并且傾向于認(rèn)為“如果我不理解一件事,那它一定很容易?!?/p>
因此,高級新手可以用下面兩種方式之一獲得進(jìn)步:第一種是了解自己的位置,學(xué)會把握大局,并向稱職者轉(zhuǎn)化;第二種是通過假設(shè)他們已經(jīng)畢業(yè)成為專家而“畢業(yè)”成為專家新手。這并不像聽起來那么荒謬。
讓我們回到我以前的保齡球生涯,想象一下如果我是球場上唯一的或最好的保齡球手,會發(fā)生什么。我應(yīng)該會一開始打得很不好,然后很快就摘下技能獲取的“低掛果實(shí)”,迅速提高我的保齡球技術(shù)。根據(jù)鄧寧·克魯格效應(yīng),我可以合理地認(rèn)為:我對打保齡球很有天賦,因?yàn)槲业募夹g(shù)水平提高得很快。我也可以得出一些理性的(而不是傲慢的)結(jié)論,我的保齡球技術(shù)不能再提高了,因?yàn)槲乙呀?jīng)達(dá)到了技術(shù)頂峰。畢竟周圍已經(jīng)沒有比我技術(shù)更好的人,而且一定有人掌握了某種程度的技術(shù),所以我想我應(yīng)該就到了專家新手這個(gè)階段。
真正讓人尷尬的是,一些不完全理性的推理使我產(chǎn)生了一種錯(cuò)誤的成就感,導(dǎo)致我放棄進(jìn)一步的改進(jìn)。隨著我保齡球生涯的繼續(xù),我從樂觀的自我評估變成了邏輯上的謬論:“我知道我的打法很對。因?yàn)槲沂菍<?,所以我做的每件事都正確?!保▽τ谶壿嬛囌搻酆谜邅碚f,這是循環(huán)論證,即用未經(jīng)證明的假定來論證)。查看上面的圖形會注意到它描述了德雷福斯模型的狀態(tài)機(jī),正如你所期望的那樣。在每一個(gè)階段,你要么前進(jìn)到下一個(gè)階段,要么停留在當(dāng)前階段(除了新手或高級新手,我覺得他們不能真正停留在那個(gè)階段而繼續(xù)從事某個(gè)工作)。不同的是,我已經(jīng)將專家新手添加到了圖表中。
專家新手知道他們想繼續(xù)進(jìn)步的話,需要付出很多努力,而且沒有現(xiàn)成的路徑可走。你會注意到,專家新手介于高級新手和勝任者之間。這是因?yàn)樗麤]有足夠的能力去把握大局,認(rèn)識到自己處境的尷尬,但他比高級新手略勝一籌,主要是因?yàn)樗鳛橐粋€(gè)新手進(jìn)行了大量的練習(xí)。如果你聽過“十年的經(jīng)驗(yàn)不等于一年的經(jīng)驗(yàn)用十年”這句格言,那么“專家新手”就是后者的縮影。專家新手通過一周又一周地重復(fù)練習(xí)來完善保齡球技術(shù),而不會偏離常規(guī)打法或嘗試新的打法,以確保獲得總分300分中的160分。依據(jù)他們所獲得的得分,他們相信160分是他們的最好分?jǐn)?shù)。
軟件開發(fā)中的專家新手
毫無疑問,軟件開發(fā)不像打保齡球。保齡球運(yùn)動的反饋周期是以分鐘為單位的,而軟件開發(fā)的反饋周期則往往是以月或年為單位的。這里所指的軟件開發(fā)不是指編譯、運(yùn)行或單元測試這些環(huán)節(jié),它們的反饋周期是以分鐘或秒來計(jì)的。這里我所說的軟件開發(fā)是指整個(gè)項(xiàng)目周期。在項(xiàng)目的整個(gè)生命周期中,開發(fā)人員經(jīng)歷了編寫代碼、源代碼控制、修改代碼、測試代碼以及在維護(hù)階段遵循以前的架構(gòu)和設(shè)計(jì)這些過程,并從中獲取了相應(yīng)的經(jīng)驗(yàn)。
開發(fā)人員如果運(yùn)氣好的話,可以在6個(gè)月的時(shí)間內(nèi)將我上面所說的過程都嘗試一遍。這就意味著,當(dāng)他在從事軟件開發(fā)工作5年后,他可能經(jīng)歷10次這樣的過程。(這是平均值——有些人會一直停留在某一個(gè)單一的過程上,而另一些人可能會經(jīng)歷幾十次這樣的過程。)
這意味著軟件開發(fā)人員的快速獲取技能階段(高級新手階段)將持續(xù)數(shù)年而不是數(shù)周。在這數(shù)年里,軟件開發(fā)人員會跳槽并獲得晉升,尤其是在現(xiàn)在這樣的市場環(huán)境里。當(dāng)他們輕而易舉地獲取技能后,他們也就輕而易舉地獲得諸如“一級軟件工程師”和“二級軟件工程師”這樣的頭銜,然后可能升級到“助理工程師”和“高級工程師”,最后可能是“主管工程師”,“架構(gòu)師”和“首席工程師”。因此,處在鄧寧·克魯格效應(yīng)困境中的高級新手們,會被授予專家頭銜,并被招聘人員恭維為“搖滾明星”或“忍者”等等。這種情形在當(dāng)今的經(jīng)濟(jì)形勢下尤其嚴(yán)重。唯一讓高級新手們認(rèn)識到他們沒有進(jìn)入專家新手階段的是同行評審和與整個(gè)開發(fā)社區(qū)的交流。
但是,當(dāng)高級新手不太關(guān)心與更廣泛的社區(qū)進(jìn)行互動,并且無論出于何種原因與同行沒有太多互動時(shí),會發(fā)生什么?The Daily WTF網(wǎng)站上這樣的例子隨處可見。他們會失敗,但是他們相信他們的失敗是其他人的錯(cuò)。因?yàn)橛螒虻谋举|(zhì)是這樣的:責(zé)備他人很容易,也很容易緩解任何認(rèn)知失調(diào)。他們認(rèn)為他們很快就成為專家并且沒有提升的空間了。他們已經(jīng)正式成為專業(yè)新手,而且已經(jīng)準(zhǔn)備好在公司里鞏固自己的地位并享受高昂的薪水。他們周圍的所有人,包括他們自己,都沒有意識到他們可以做得更好。
譯者注:鄧寧-克魯格效應(yīng)(Dunning-Kruger effect)。它是一種認(rèn)知偏差現(xiàn)象,指的是能力欠缺的人在自己欠考慮的決定的基礎(chǔ)上得出錯(cuò)誤結(jié)論,但是無法正確認(rèn)識到自身的不足,辨別錯(cuò)誤行為。這些能力欠缺者們沉浸在自我營造的虛幻的優(yōu)勢之中,常常高估自己的能力水平,卻無法客觀評價(jià)他人的能力。
-
軟件開發(fā)
+關(guān)注
關(guān)注
0文章
645瀏覽量
28687 -
源代碼
+關(guān)注
關(guān)注
96文章
2953瀏覽量
68402
原文標(biāo)題:軟件開發(fā)團(tuán)隊(duì)中,憑什么新手當(dāng)?shù)溃?/p>
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
知識分享 | 敏捷方法在基于模型的軟件開發(fā)項(xiàng)目中的應(yīng)用

什么是STM32? STM32與ARM有什么關(guān)系? STM32能做什么?
找電機(jī)控制軟件開發(fā)兼職
噪聲與ADC的范圍和位數(shù)是什么關(guān)系呢?怎樣選用和匹配?
我國軟件開發(fā)者數(shù)量超過940萬
Labview上位機(jī)軟件開發(fā)
北京軟件開發(fā)公司有那些?做軟件的公司有哪些?
TMS320C6201 DSP軟件開發(fā)技術(shù)

PGA450-Q1軟件開發(fā)指南

ECU電控軟件開發(fā)及測試介紹

對于差分輸入電路,差分輸入信號的地和給運(yùn)放供電的電源地有什么關(guān)系,是必須共地呢還是不需要共地呢?
嵌入式軟件開發(fā)與AI整合

評論