神譯局是36氪旗下編譯團隊,關(guān)注科技、商業(yè)、職場、生活等領(lǐng)域,重點介紹國外的新技術(shù)、新觀點、新風(fēng)向。
編者按:人人都想要戰(zhàn)斗力超強的工程師,也就是所謂的10x工程師。但是究竟什么是10x工程師呢?是完成任何任務(wù)都比別人快10倍的工程師嗎?還是能讓10位隊友效率提高1倍的工程師?Ofer Karp根據(jù)自己管理團隊的經(jīng)驗,提出了兩種類型的10x工程師??纯催@是不是你們所需要的10x工程師。原文標(biāo)題是:Playmaker: The Reality of 10x Engineer
劃重點:
如果你想走得快。那么你就一個人走;如果你想走得遠。那么就一起走
完成任何任務(wù)都比別人快10倍的工程師是單打獨斗
能讓10位隊友效率提高1倍才能走得遠
有兩種類型的10x工程師,一種是"廣而淺",一種是"專且深"
10x工程師通過成為榜樣\標(biāo)準(zhǔn)并提供指導(dǎo)而產(chǎn)生巨大影響
“我們要踢得像個整體,我們要成為一支真正的團隊,要想走得遠,這是唯一的辦法”(弗朗西斯科·托蒂)
有時我挺為我們的招聘團隊感到遺憾的。他們花了很多年的時間想要找到搖滾明星式的開發(fā)者,到頭來才意識到自己應(yīng)該要找的開發(fā)者其實是忍者。當(dāng)他們終于找到忍者開發(fā)者住的地方并學(xué)會說忍者的語言時,他們的目標(biāo)又一次轉(zhuǎn)移了?,F(xiàn)在,他們的獵物是所謂的10x工程師。但是10x工程師究竟是什么?怎么才能認出這樣的人?
如果換個方向來看的話,作為軟件工程師,如果有那么多的雇主都在找10x工程師,而且有些人還愿意開出5倍甚至更高的薪水的話,自然誰都會想要成為其中的一員。但是10x工程師究竟需要具備什么呢?是不是有特定的技能集或者某種“10x標(biāo)準(zhǔn)”?
我是個10x工程師,x是指我原先的估計
如果你問獵頭公司10x工程師是什么意思,他們可能會說“生產(chǎn)力!10x是指完成任務(wù)比別人快10倍的工程師?!甭犉饋聿诲e,但是在支付5倍薪水之前,我有兩個簡單的問題想問一下:
當(dāng)我們說“快10倍”的時候,我們的基準(zhǔn)是什么?我們在跟誰進行比較?
這個“快10倍”是指團隊的任何任務(wù)呢,還是指特定任務(wù)?
不要誤會我的意思。我的確相信,會有能夠?qū)ξ覀兊漠a(chǎn)品、我們的團隊乃至于最終對我們的業(yè)務(wù)產(chǎn)生巨大影響的軟件工程師。在某些情況下,有沒有這么一個獨一無二、才華橫溢的工程師會是成敗的關(guān)鍵。我就看到過這種情況,我會在本文分享兩個例子。我也可以分享一下自己的經(jīng)歷,作為一名團隊規(guī)模頗大(目前在WalkMe,我們有200多名工程師)的工程經(jīng)理,我把大量的時間都用在尋找有才華的工程師,并幫助他們做出最佳的職業(yè)決策,也就是加入我們的團隊上面的故事。但是我要找的不是完成任何任務(wù)都比別人快10倍的工程師。我要找的是另一種魔法。
“媽媽說這是我的魔法鞋子,它們能帶我去任何地方”(《阿甘正傳》)
我的看法是,有兩種類型的10x工程師。我會解釋我的理論,而且更加深入地研究這兩種類型,我還會給出具體的例子,都來自我一起共事的人以及我?guī)ьI(lǐng)的團隊。
首先,我要說這兩種10x工程師都很有價值,大多數(shù)工程組織都需要這兩種人。要我說,在這兩種類型的10x工程師里面你會找一些共同的性格特征和行為模式。但是就他們卓越之處而言,這是兩種完全不同的類型。
類型#1:廣而淺:
讓我們回到2012年。當(dāng)時我還在HP工作,帶領(lǐng)研發(fā)小組進行一款名為UCMDB的產(chǎn)品的研發(fā)。這款產(chǎn)品的主要價值主張是為運營人員提供他們所維護的基礎(chǔ)設(shè)施以及應(yīng)用拓撲的近實時的畫像。
我們收集和存儲的數(shù)據(jù)非常有價值,唯一的問題是,要想讓這些數(shù)據(jù)真正發(fā)揮作用,用戶必須既是圖論專家,又要對我們專有的數(shù)據(jù)模型有深入的了解。實際上,這條學(xué)習(xí)曲線太陡峭了,以至于我們大多數(shù)的客戶最多都只有3個人懂得對這些數(shù)據(jù)進行查詢。所有其他潛在的數(shù)據(jù)用戶都必須“提交請求以獲取UCMDB視圖”,并等待那3位尊敬的管理員為他們做好準(zhǔn)備。對于使用實時數(shù)據(jù)來說,這可不算很有效的辦法。
UCMDB原先的查詢生成器
后來,我們試著對查詢語言進行簡化,并進行一系列外觀精美的UI更改,但這些變更嘗試都失敗了,最終也沒法讓更多的用戶熟悉這款非常高級的應(yīng)用的使用,于是我們決定換個方向:
我們現(xiàn)在的應(yīng)用過時、笨重(龐大的java applet),只能在性能強勁的桌面機器上使用,與其這樣,不如改成可以在任何設(shè)備(包括平板電腦和智能手機)上運行的現(xiàn)代的、輕量的Web應(yīng)用。
我們希望實現(xiàn)一種基于自然語言搜索的簡單查詢創(chuàng)建體驗,而不是基于有向圖模式匹配的那種超復(fù)雜的查詢創(chuàng)建體驗。
相對于原來有多個選項卡以及龐大結(jié)果表的老式的查詢結(jié)果使用界面,我們希望用一種更現(xiàn)代界面,只呈現(xiàn)重要的數(shù)據(jù)點,然后幫助用戶進行導(dǎo)航以及析取更多的信息。
我們希望能夠持續(xù)發(fā)布新功能并縮短反饋周期,而不是原來那種緩慢的發(fā)布周期(每6個月一個版本)。
UCMDB瀏覽器(又名“Mitzi”)
但是,怎么才能做到這些呢?我們的目標(biāo)不是向市場推出那種漸進式改進的產(chǎn)品,而是改變游戲規(guī)則的那種功能,這會讓我們的產(chǎn)品適應(yīng)新的用例和角色。顯然,這樣的計劃要想取得成功,我們就不能還采用在產(chǎn)品其他領(lǐng)域所采用的技術(shù)棧、體系結(jié)構(gòu)和開發(fā)方法。我們需要完全不一樣的東西。
這就是“廣而淺”的10x工程師大放異彩的地方。在組建一支全功能的團隊之前,我們給他分配了一項任務(wù),那就是搭建新應(yīng)用的框架?,F(xiàn)在我知道這聽起來會有些奇怪。一個人怎么能成為這么多領(lǐng)域的專家呢?但是實際上,大約4周后,我們就有了一個不錯的應(yīng)用框架,里面包含了一個搜索引擎,可以把自然語言的搜索詞轉(zhuǎn)換為現(xiàn)有的拓撲查詢,還有一個簡單的開放了RESTful API的后端,以及一個基本的Web前端(用GWT實現(xiàn),這在當(dāng)時還是很不錯的東西)。所有這些都用很好的CI / CD工具打包好,還有一個測試框架(單元測試,組件測試,E2E測試),基本上都是用適合我們持續(xù)交付要求的思路和工具搭建出來的。
由10x工程師搭建的此應(yīng)用框架還沒有為生產(chǎn)做好準(zhǔn)備。不應(yīng)該是這樣的。但這為整個功能開發(fā)團隊提供了一個很好的起點。搭建框架的10x工程師可不只是把東西丟給團隊就了事。相反,他之后便成為了團隊的一部分。此時,他的任務(wù)是提高不同團隊成員對他選定的技術(shù)棧和架構(gòu)的熟悉程度,讓他們成為專家和產(chǎn)品的主人。一般來說進行一對一的會議最好(這樣可以根據(jù)每個團隊成員的領(lǐng)域?qū)I(yè)知識和技能組合量身定制)。
我們在做UCMDB的時候,這種做法就非常有效。我們的團隊迅速成長起來。他們接受了應(yīng)用框架所采用的眾多想法和方向,同時也做出來一些改變。對于某些團隊成員而言,這是學(xué)習(xí)新技術(shù)的機會,而由一位經(jīng)驗豐富且充滿才華的工程師進行指導(dǎo)更為重要。經(jīng)過由8名工程師組成的團隊3個月的專心工作,我們面向市場推出了一款名為UCMDB Browser的新產(chǎn)品。無論是從業(yè)務(wù)角度還是從工程角度來看,這個產(chǎn)品都是一個巨大的成功。
類型2:專且深:
在眾多致力于成功產(chǎn)品和快速發(fā)展業(yè)務(wù)的工程團隊當(dāng)中,我發(fā)現(xiàn)他們都有一種共同的模式。這種模式很難解釋清楚,但通常的情況是,產(chǎn)品的某個領(lǐng)域曾經(jīng)是你的優(yōu)勢之一,甚至是跟競爭對手不同的核心差異化所在,但卻慢慢變得難以支撐和維護。在很多情況下,你很難識別出這種模式,并且承認這發(fā)生在你身上,尤其是對一直以來都是團隊一員的人來說。但是,當(dāng)在分析如何分配資源時,就會意識到團隊很大一部分人(開發(fā)人員、支持工程師、專業(yè)服務(wù)工程師)正在花費大部分時間去維持過去曾經(jīng)是核心產(chǎn)品優(yōu)勢的東西。
在我目前的WalkMe團隊里面也出現(xiàn)了這種模式。我們平臺的優(yōu)勢之一就是能夠以高效、可靠的方式識別托管應(yīng)用(運行WalkMe的應(yīng)用)的GUI元素。
成功就會壯大規(guī)模。更多的客戶、更多的數(shù)據(jù)、更多的用例。在GUI元素標(biāo)識領(lǐng)域,會增加復(fù)雜性的因素是支持新的UI技術(shù)(單頁面應(yīng)用、Shadow DOM等)的需求以及支持高度個性化應(yīng)用的要求,針對不同用戶展示的GUI可能因用戶的角色、所處的地理位置或偏好而有所不同。我們的“Find Element”模塊足夠靈活,可以滿足這些要求,但是讓這臺機器維持運轉(zhuǎn)所需的工作量正在逐漸(但不斷地)增加。
“也許時間給煤炭下的定義是鉆石”(紀伯倫)
識別出這種模式當(dāng)然很好,但是怎么搞定才是真正重要的事。我們知道,我們需要開發(fā)下一代的GUI元素標(biāo)識解決方案。主要目標(biāo)是提高元素識別的準(zhǔn)確性和健壯性。最重要的是,我們需要的解決方案不僅可以識別單個UI元素,還可以理解上下文并發(fā)現(xiàn)應(yīng)用的用戶流。就像在“泛而淺”的例子一樣,很明顯,這并不是對現(xiàn)有產(chǎn)品的漸進性改良,而是要完全替換掉我們產(chǎn)品的核心引擎之一。
但是,當(dāng)汽車在全速行駛的時候怎么才能更換發(fā)動機呢?這就是10x工程師可以發(fā)揮巨大作用的地方了。實際上,在我們的案例里,是2位10x工程師。這一切都始于我們對一家名為DeepUI的小公司的戰(zhàn)略性收購。被收購的這家公司并不是專門開發(fā)WalkMe所需的那種東西的,但是開發(fā)出DeepUI的2名工程師是用機器學(xué)習(xí)來理解GUI的頂級專家。
下一階段是研究。分析現(xiàn)有的解決方案,并了解其在不同用例下的表現(xiàn)。這是為了定義新的解決方案的“最低需求”,整個過程可能需要幾個月的時間,具體要取決于系統(tǒng)的復(fù)雜性。只有這樣,你才能設(shè)計出新的解決方案并開發(fā)初步原型。跟所有的“替換引擎”項目一樣,能夠在生產(chǎn)環(huán)境下基于實際數(shù)據(jù)跟現(xiàn)有解決方案并行運行的新解決方案具有巨大價值。這是驗證新解決方案的優(yōu)缺點的最佳辦法。顯然,開發(fā)出這樣的解決方案并不容易,但這正是你需要10x工程師的原因。
然后就進入到真正棘手的部分。你已經(jīng)成功對新解決方案進行了驗證,現(xiàn)在你希望把這個產(chǎn)品化,然后開始把客戶從舊解決方案遷移到新解決方案。為此,你必須搭建一支團隊。突然之間,十x工程師需要從研究人員和開發(fā)人員轉(zhuǎn)變?yōu)轭I(lǐng)導(dǎo)者。這可不僅是一般的領(lǐng)導(dǎo)者,得是超級領(lǐng)導(dǎo)者。在工程組織可能會參與到的所有類型的項目里,這是最復(fù)雜、風(fēng)險最高的項目類型了。要更換產(chǎn)品核心引擎?是的。引入新范式(ML)?是的。對公司多個團隊(研發(fā)、支持、服務(wù))的日常工作有影響嗎?是的。
怎么才能完成這種切換并建設(shè)這樣一支團隊呢?我認為不存在什么秘訣,而且找到能夠做到這一點的人真的很少。在我們這里行之有效的一件事是,讓負責(zé)舊解決方案團隊的人員進入開發(fā)新解決方案的新團隊。這之所以行得通,是因為這些人都是領(lǐng)域?qū)<?,并且他們了解新解決方案的巨大價值。他們也最清楚從舊解決方案遷移到新解決方案都需要些什么。最后,對于他們個人而言,這是跟能力很強的工程師合作并學(xué)習(xí)新技術(shù)的機會。歸根結(jié)底,這一切都與人和領(lǐng)導(dǎo)力有關(guān)。只有在他們設(shè)法組建起一支能夠確保新解決方案支撐規(guī)模生產(chǎn)環(huán)境的強大團隊時,做項目的工程師才會成為10x工程師。
在我們這里,這種組織機制工作得非常好,現(xiàn)在我們有一支由30名工程師組成的團隊在做DeepUI?,F(xiàn)在這個解決方案已投入生產(chǎn),我們正在努力利用它的潛力去開發(fā)其他用例。
“在研究人工智能之前,為什么不對天然愚蠢做點什么?” (Uny Splash )
盡管這兩種類型的10x工程師出色之處很不一樣,但他們有一個共同點:兩種類型的10x工程師對團隊的其他人都具有巨大影響。他們是這么做的:
榜樣:其他工程師都希望像他們一樣。當(dāng)然,首先是希望能拿到一樣的薪酬待遇,然后進一步發(fā)展到對技術(shù)決策的影響。10x工程師的存在證明了作為一名優(yōu)秀工程師,你不需要成為經(jīng)理也可以有另外一條晉升之路。
標(biāo)準(zhǔn):由于其他工程師也希望像他們一樣,所以會努力去復(fù)制10x工程師的專業(yè)知識并遵循他們設(shè)定的技術(shù)標(biāo)準(zhǔn)。你會發(fā)現(xiàn)大家其實是在跟隨他們的領(lǐng)導(dǎo),閱讀他們的代碼,采用跟他們一樣的設(shè)計模式,用相同的方式去寫測試,像他們一樣記錄和展示自己的工作,等等。
指導(dǎo):只有同類最理解彼此。10x工程師非常善于發(fā)現(xiàn)有成長潛力以及能夠成為專家的初級工程師。只需輕輕在后面推他們一把,每一位10x工程師都可以成為至少一為有才華的初級開發(fā)人員的出色導(dǎo)師。
“對我來說,在羅馬拿到一個聯(lián)賽冠軍比在尤文圖斯或者皇家馬德里拿到10個冠軍都要值得”(弗朗西斯科·托蒂 )
10x工程師在現(xiàn)實當(dāng)中確實存在。作為經(jīng)理,找到對你的團隊有十倍影響力的工程師需要時間和精力,但這是值得的投資。一個超級有才的工程師可以讓整個團隊變好10倍,這就像一位超級天才的中場組織者就能帶領(lǐng)一支水平一般的球隊拿到聯(lián)賽冠軍一樣(編者注:想想馬拉多納跟那不勒斯隊)。
作為一位工程師,成為10x工程師是有可能的。你可以走“泛而淺”的路徑,也可以走“專且深”的路徑。不管你走哪一條路,這都是一段漫長的歷程,所以,務(wù)必要選擇你真正喜歡的領(lǐng)域。最后但并非最不重要的一點是,始終都要記住,這不僅關(guān)乎你擁有多少知識,或者作為開發(fā)者的執(zhí)行技能如何。成為10x工程師還意味著領(lǐng)導(dǎo)其他工程師的能力,能讓他們變得更好的能力。
譯者:boxi。
本文來自翻譯, 如若轉(zhuǎn)載請注明出處。