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