選單

打破10倍速軟體工程師神話

作者 | Ari-Pekka Koponen

譯者 | 彎月

出品 | CSDN(ID:CSDNnews)

領導們常常為高效的員工而感到自豪。實際上,從長遠來看,軟體組織中擁有“10 倍速工程師”可能意味著該組織註定要走向失敗。

工程領導很容易將注意力集中在組織中表現良好的少數人身上,並圍繞這些人開展工作。畢竟,這些是最聰明、最可靠的人,他們能夠在最短時間內建立最佳解決方案。

相信每一位軟體工程領域的從業者都見過這樣的“大神”,他們總是能夠完成其他人完成不了的工作。即便達不到“10 倍速”之高,至少也是“5倍”或者“3倍”工程師。只要看看日常工作資訊,就可以發現似乎有些工程師天生就比其他人更高效。

然而,“10 倍速工程師”背後並沒有可靠的科學依據。有關該主題最常見的研究是在幾十年前完成的,當時的環境與如今完全不同,更重要的是,這項研究的樣本數量非常小。最近的一項有趣的研究得出了截然不同的結論(參考連結:https://ieeexplore。ieee。org/document/8804291)。

在嚴格控制的環境內,大多數軟體工程師之間的差異非常小。同一個人在多項任務中的表現也存在著明顯的差異。某個人可能在某項任務中的表現超過了其他人,但在另一項任務中的表現就可能平平無奇。“總而言之,雖然程式設計師中某些人的表現確實比其他人更好和/或更快,但這種重要性和規模被誇大了。”

10倍速工程師的神話是一種工作中的確認偏差。

打破10倍速軟體工程師神話

如果不僅僅是個人能力,那該如何解釋生產力的差異?

當我們考慮到周圍環境(即整個組織)時,很容易發現除了個人能力之外,還有多種因素會影響到績效。兩位工程師對目前使用的技術擁有相同的經驗嗎?他們熟悉正在使用的系統嗎?他們是否擁有相同的能力,能夠在忙碌之中做出決定?他們能否獲得幫助?

下面,我們一邊在腦海中考慮這些因素,一邊再來看看某位“優秀的工程師”。你會發現他們會變得很平凡。人們喜歡英雄主義,喜歡與“最優秀”的人一起共事。這是一個令人欣慰的現實。坦誠面對組織中的挑戰和現實是一件好事。程式設計師的表現會受到某些因素的制約,而且往往是很難(甚至無法)改變的因素。

舉一個真實的例子,我曾經在一家公司工作,該公司的領導認為某位開發人員的表現遠勝其他人。公司的 CEO 會走進開發人員的辦公室,公開表揚(甚至當著外人的面):“有時我感覺X是唯一能夠勝任所有工作的開發人員。”這位開發人員肯定感到特別自豪,而其他人則一臉失望。

沒有人提到這位開發人員在過去的 15 年裡一直在開發同一個系統,而且前 5 年幾乎是獨自一個人。而他本人也沉浸在“最優秀員工”的讚美中,十分享受。他在多達 5000 行的程式碼中添加了一些晦澀難懂的邏輯,而且也不願意積極地與同事分享知識。多年以來,曾有一些非常有能力的開發人員加入了公司。但絕大多數人還是離職了。剩下的人樂得混日子,把所有英雄事蹟都留給“10 倍速工程師”。後來,該公司在嘗試擴大開發規模時,遇到了極大的阻力。

當然,這是一個非常極端的例子,但很好地說明了問題。擁有一小部分高績效的工程師往往是大組織問題的表徵,比如孤立、權力和責任的不平衡。這種狀況與事物的自然秩序相違背,而與自然秩序對抗註定會走向失敗。

制定更好的戰略企業才能取得成功

從長遠來看,僅憑几位 10 倍速的獨角獸開發人員無法決定企業整體的成敗。成功的關鍵因素在於提高公司每個人的平均績效。從統計學的角度來看,這才是一種更可行的策略。

那些獨角獸開發人員在公司工作的時間超過 5~10 年的可能性非常低——除非你有一家非凡的公司。即使他們留下來,也有可能會換團隊,而且每一個圍繞他們的行為建立的團隊最後都會落得一地雞毛。這會損害公司執行業務目標的整體能力。

相反,改善組織,提高員工的生產力才能獲得最大收益。這種方法可以讓工程組織中的更多員工取得成功。“在公司能有一番作為”的員工越多,組織取得成功的可能性就越大。這種認識能夠讓我們著眼於整體,將我們的注意力從個人轉移到人群:團隊、部門乃至整個組織。

這是個好訊息。關於軟體團隊績效有很多出色的研究。如果團隊面臨生產中存在太多 bug,或者無法快速交付,則可以參考 DORA 指標(https://cloud。google。com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance)。如果團隊無法展開良好的協作,或團隊成員沒有主人翁意識,則需要學習如何培養心理安全。如果想了解開發人員生產力的整體狀況,可以參考 SPACE 框架(https://queue。acm。org/detail。cfm?id=3454124)。

無論採取何種措施,成功的關鍵在於瞭解團隊的瓶頸,並與團隊共同採取行動來改善這種情況。有些問題需要一次性改變,而有些則需要逐漸習慣。所有的團隊習慣都應該記錄在一個共同的工作協議中,每個人都應該知曉和遵守。好的習慣會隨著時間的推移而不斷積累,並建立高績效的團隊和組織。

總結

對於大多數公司來說,尋找 10 倍速的獨角獸工程師,努力招攬“頂級”工程師並不是最佳策略。相反,我們應該確保可以招聘並留住普通、有能力的工程師,並讓他們發揮出最佳水平。能夠將普通團隊轉變為高績效團隊的組織,才是真正的贏家,當然對於工程師來說,進入這樣的組織也是一件幸事。

參考連結:

https://www。swarmia。com/blog/busting-the-10x-software-engineer-myth

10 月 23-24 日,“長沙·中國 1024 程式設計師節”重磅來襲。嶽麓對話、技術英雄會、主題論壇演講、第 16 屆中國 Linux 核心開發者大會( CLK )、第 13 屆中國開源駭客松等多場硬核技術競賽紛紛亮相。此外,還有程式設計師吐槽大會、創新產品展與現場體驗等諸多特色活動,邀你一起體驗一年一度、專屬程式設計師的盛大嘉年華!