
整理|冬梅
從 Meta 離職、加入 Anthropic,這個(gè)決定在今天看來并不意外,但在當(dāng)時(shí)卻并非順?biāo)浦邸?/p>
對 Claude Code 創(chuàng)建者 Boris Cherny 來說,這并不是一次普通的職業(yè)跳槽,而是一種價(jià)值判斷:當(dāng)大模型從“工具”逐步演化為具備自主生成與推理能力的系統(tǒng),工程師究竟應(yīng)該站在什么位置?是把它當(dāng)作效率插件,還是把它視為一種需要被認(rèn)真約束、引導(dǎo)和共同演化的新型技術(shù)力量?
近日,Boris Cherny 做客一檔名為《The Peterman Pod》的訪談欄目,主持人 Ryan Peterman 與 Boris 圍繞這一系列問題展開了長達(dá)一個(gè)半小時(shí)的深度對話。
訪談的前半部分,Boris 回溯了自己從 Meta 轉(zhuǎn)向 Anthropic 的動(dòng)機(jī)。他并未從公司前景或個(gè)人發(fā)展談起,而是從第一次使用 ChatGPT 的震撼說起。在他看來,大語言模型并不只是“更聰明的軟件”,而更像一種尚處在早期階段的“新生命形態(tài)”——它的能力增長呈指數(shù)級(jí),影響范圍遠(yuǎn)超工程本身,最終會(huì)重塑社會(huì)運(yùn)行方式。正因?yàn)槿绱耍x擇加入一個(gè)將安全、對齊與長期風(fēng)險(xiǎn)置于核心位置的研究機(jī)構(gòu),而不是繼續(xù)在以產(chǎn)品速度和規(guī)模為優(yōu)先目標(biāo)的大廠體系內(nèi)工作。
這種價(jià)值取向,也直接塑造了 Anthropic 內(nèi)部截然不同的工程文化。在鮑里斯的描述中,Anthropic 依然保留著創(chuàng)業(yè)公司式的“常識(shí)感”:工程決策不需要層層說服,安全不被視為拖慢產(chǎn)品的負(fù)擔(dān),而是與模型能力同步演進(jìn)的前提條件。隨著模型能力提升,風(fēng)險(xiǎn)不再只是內(nèi)容失誤或選舉操縱,而是逐步逼近生物安全、社會(huì)系統(tǒng)性破壞等更高等級(jí)的問題。這并非科幻設(shè)想,而是工程師當(dāng)下必須正視的現(xiàn)實(shí)邊界。
在此背景下,Claude Code 的誕生與演進(jìn),成為這次訪談的另一條主線。Boris 坦言,Claude Code 在相當(dāng)長時(shí)間里并不是一款“好用的產(chǎn)品”。它之所以最終跑出來,并非因?yàn)樵缙隗w驗(yàn)領(lǐng)先,而是因?yàn)閳F(tuán)隊(duì)在一開始就選擇“為未來六個(gè)月后的模型能力而設(shè)計(jì)”,而不是圍繞當(dāng)下模型的短板打補(bǔ)丁。
隨著 Sonnet 和 Opus 4 等模型上線,Claude Code 從輔助工具迅速躍遷為主力生產(chǎn)方式,在 Anthropic 內(nèi)部,大量代碼已經(jīng)由模型生成,工程師的角色也隨之發(fā)生變化。
但這并不意味著“氛圍編碼”可以無條件替代人類判斷。Boris 反復(fù)強(qiáng)調(diào),模型生成的代碼與人寫的代碼必須接受同一套質(zhì)量標(biāo)準(zhǔn):不合格就不合并。不同任務(wù)對應(yīng)不同協(xié)作方式——原型、臨時(shí)代碼可以交給模型快速推進(jìn),而核心邏輯仍需要工程師逐行審視。這不是“人被 AI 取代”,而是人類工程師與模型之間形成一種新的協(xié)同分工。
更重要的是,Claude Code 的使用場景正在溢出傳統(tǒng)的軟件工程邊界。數(shù)據(jù)科學(xué)家、分析師、甚至銷售團(tuán)隊(duì),都在把它當(dāng)作通用的工作執(zhí)行工具,連接數(shù)據(jù)庫、業(yè)務(wù)系統(tǒng)和數(shù)據(jù)源完成實(shí)際任務(wù)。這種擴(kuò)散并非最初的產(chǎn)品設(shè)計(jì)目標(biāo),卻揭示了一個(gè)趨勢:當(dāng)“寫代碼”本身變得門檻更低,軟件能力正在被重新分配到更多角色手中。
貫穿整場對話的,是一個(gè)清晰卻并不輕松的判斷:軟件工程正在經(jīng)歷一次結(jié)構(gòu)性重寫。工程師不再只是代碼的直接生產(chǎn)者,而正在成為“智能體系統(tǒng)”的設(shè)計(jì)者、管理者和最后的責(zé)任人。Claude Code 只是一個(gè)具體案例,但它所揭示的,是一個(gè)更大的變化——當(dāng)模型能力以指數(shù)級(jí)提升,工程文化、工作方式乃至風(fēng)險(xiǎn)邊界,都必須隨之重構(gòu)。
以下為訪談實(shí)錄,經(jīng)由 InfoQ 翻譯及整理:
1 Claude Code 創(chuàng)建者,職業(yè)生涯起步于 Facebook
Ryan:我想從你晉升為 Meta 高級(jí)工程師開始講起你的故事。你晉升的那些項(xiàng)目背后有什么故事?當(dāng)時(shí)你在哪里?
Boris:如果我沒記錯(cuò)的話,這個(gè)項(xiàng)目叫做“群組聊天”,目的是為了讓 Messenger 和 Facebook 之間的聯(lián)系更加緊密。
我在 Meta 參與的最初幾個(gè)項(xiàng)目都與 Messenger 和 Facebook 有關(guān)。第一個(gè)項(xiàng)目是扎克伯格提出的將 Messenger 聊天記錄和 Facebook 群組同步的想法。當(dāng)時(shí)有幾個(gè)項(xiàng)目旨在拉近 Messenger 和 Facebook 之間的距離。
最初的動(dòng)機(jī)是,我們感覺公共空間社交產(chǎn)品正在消失,而人們的注意力更多地轉(zhuǎn)移到聊天和更隨意的實(shí)時(shí)空間。我們嘗試了幾個(gè)產(chǎn)品版本,最終“聊天和群組”版本取得了成功。
我記得當(dāng)時(shí)應(yīng)該是第三個(gè)或第四個(gè)項(xiàng)目。那時(shí)我在 Facebook Groups 部門,主要負(fù)責(zé) Messenger 的相關(guān)工作,但 Messenger 的組織架構(gòu)和我們離得很遠(yuǎn)。這個(gè)想法是當(dāng)時(shí)的 PM Steve 提出的。我聽了之后覺得,好啊,太棒了!就這么辦!我就開始著手開發(fā)。很快有了進(jìn)展,于是我申請了更多工程師,有三位工程師加入了。
我們獲得了一些數(shù)據(jù)科學(xué)和設(shè)計(jì)方面的支持。項(xiàng)目最初在網(wǎng)頁端啟動(dòng),后來也稍微拓展到了移動(dòng)端。我們驗(yàn)證了在 Facebook 群組內(nèi)進(jìn)行聊天的想法,并證明了這類產(chǎn)品是可行的。當(dāng)然,也有很多方面最終都失敗了。
以現(xiàn)在的產(chǎn)品標(biāo)準(zhǔn)來看,當(dāng)時(shí)的體驗(yàn)簡直糟透了。那時(shí)候,大家都在用 Web 開發(fā),各種各樣的 bug 都完全可以接受。但現(xiàn)在,視覺效果和質(zhì)量標(biāo)準(zhǔn)要高得多。產(chǎn)品不斷發(fā)展壯大,而我們團(tuán)隊(duì)很小,所以每個(gè)人都得包攬所有工作。
我記得當(dāng)時(shí)我們沒有用戶研究員,所以我會(huì)在午餐時(shí)間去食堂。我們會(huì)推出一個(gè)新功能,然后向食堂工作人員展示,問他們能不能找到打開聊天窗口的方法。有時(shí)候他們能找到,有時(shí)候找不到。
這是一項(xiàng)觀察性用戶研究。你可以觀察人們在特定情況下如何完成任務(wù),而無需過多提示,從而了解他們在哪些方面遇到困難,以及最終取得了哪些成果。我教會(huì)了團(tuán)隊(duì)如何進(jìn)行這項(xiàng)研究,很快我們就會(huì)利用午餐時(shí)間去食堂,詢問食堂工作人員(作為用戶的代表)這種方法是否合理。
Ryan:有趣的是,你當(dāng)時(shí)所處的早期 Facebook 文化允許工程師們在代碼之外做很多事情。例如,你當(dāng)時(shí)在做用戶體驗(yàn)研究。我記得在你的經(jīng)歷中,你也做過一些設(shè)計(jì)工作,并且指導(dǎo)過其他人進(jìn)行設(shè)計(jì)。我認(rèn)為這在 Facebook 的企業(yè)文化中是一個(gè)非常有趣且獨(dú)特的事情。對嗎?
Boris:我覺得這一點(diǎn)非常重要。直到今天,在我所在的 Claude 團(tuán)隊(duì)中,我們?nèi)匀环浅V匾曂ú判腿瞬?/strong>。
我喜歡和通才共事。如果你是一位既會(huì)寫代碼又能做產(chǎn)品開發(fā)、設(shè)計(jì),并且具備產(chǎn)品意識(shí)的工程師,那么你肯定想和用戶交流。我非常喜歡和這樣的工程師一起工作。現(xiàn)在我們所有職位都是這樣招聘的:我們的產(chǎn)品經(jīng)理會(huì)寫代碼,我們的數(shù)據(jù)科學(xué)家會(huì)寫代碼,我們的用戶研究員也會(huì)寫一點(diǎn)代碼。
我非常喜歡這些通才。我的成長經(jīng)歷也是如此。從 18 歲創(chuàng)辦第一家公司開始,我就得事事親力親為。在加入 Facebook 之前,我也一直在一些規(guī)模較小的公司工作,那里也一樣,什么都得做。在大公司里,你可能會(huì)被安排在某個(gè)特定領(lǐng)域,但這其實(shí)只是個(gè)形式。工程技能的范圍很廣,除了編寫代碼,完成整個(gè)流程還有很多其他方面需要考慮。當(dāng)時(shí)能在一家真正重視這種能力的公司工作,感覺真的很棒。
我覺得在那半年結(jié)束時(shí),我得到了晉升,然后我覺得在那半年結(jié)束后,所有的工程師也都得到了晉升。
Ryan:在那些早期產(chǎn)品中,存在著你多次提到的“潛在需求”概念,這正是許多產(chǎn)品方向的推動(dòng)力。你能解釋一下“潛在需求”嗎?
Boris:潛在需求是產(chǎn)品設(shè)計(jì)中最重要的原則。縱觀 Facebook 的成功產(chǎn)品,每一款都蘊(yùn)含著潛在需求的元素。
例如,Marketplace 的誕生源于一項(xiàng)觀察:當(dāng)時(shí) Facebook 群組中 40% 的帖子都是關(guān)于買賣物品的。Facebook 群組最初并非為商業(yè)用途而設(shè)計(jì),但人們卻用它來做這件事。你設(shè)計(jì)的產(chǎn)品要具有一定的可擴(kuò)展性和易用性(即使被“濫用”)。然后,你分析數(shù)據(jù),看看用戶是如何“濫用”的,并以此為基礎(chǔ)開發(fā)新的產(chǎn)品功能。
先是出現(xiàn)了 Facebook 群組,然后是買賣群組。買賣群組之所以發(fā)展迅速,是因?yàn)槿藗儽緛砭拖朐?Facebook 群組里進(jìn)行商業(yè)活動(dòng)。接下來是 Marketplace,它只是人們這種意圖的自然延伸。Facebook Dating 的發(fā)展也與之類似。觀察發(fā)現(xiàn),大約 60% 的個(gè)人資料瀏覽量來自互不相識(shí)的異性用戶。這種傳統(tǒng)的互相“窺探”行為證明了這種方法的有效性。
產(chǎn)品設(shè)計(jì)的核心原則是:你永遠(yuǎn)無法強(qiáng)迫人們?nèi)プ鏊麄冊静粫?huì)做的事情。但你可以找到他們的潛在意圖,并引導(dǎo)他們更好地利用這種意圖,從而更輕松地實(shí)現(xiàn)目標(biāo)。
2 “跨部門工作簡直是一場噩夢”
Ryan:在你的敘述中,你提到你曾跨部門工作,因?yàn)槟阖?fù)責(zé)彌合 Messenger 和 Groups 工程團(tuán)隊(duì)之間的鴻溝。你說存在一些明顯的文化差異,這很困難。對于在文化差異很大的組織之間工作,你有什么建議嗎?
Boris:我的天哪,說困難都太輕描淡寫了。簡直是一場噩夢。當(dāng)時(shí) Facebook 的目標(biāo)是盡快推出優(yōu)秀的產(chǎn)品。而 Messenger 則完全專注于可靠性和性能,他們只關(guān)心這些。這完全是截然相反的價(jià)值觀。
這不僅僅是文化差異或工程師之間的問題。那個(gè)團(tuán)隊(duì)的工程師對我們抱有戒心,因?yàn)槲覀兊墓ぷ骺赡軙?huì)影響他們的績效指標(biāo)。他們的組織目標(biāo)是穩(wěn)扎穩(wěn)打,在不影響核心指標(biāo)的前提下穩(wěn)步推進(jìn)產(chǎn)品發(fā)布;而我們的組織目標(biāo)是快速發(fā)布。
目標(biāo)完全不同。他們關(guān)注的是服務(wù)級(jí)別協(xié)議規(guī)定的正常運(yùn)行時(shí)間,而我們只關(guān)注日活躍用戶數(shù)和用戶參與度。這些文化價(jià)值觀根深蒂固,不僅體現(xiàn)在人們的言談中,更體現(xiàn)在組織架構(gòu)、目標(biāo)設(shè)定等各個(gè)環(huán)節(jié)。
那個(gè)項(xiàng)目最終能部分成功,克服了價(jià)值觀差異,關(guān)鍵在于:如果你想讓價(jià)值觀截然不同的團(tuán)隊(duì)成功合作,就必須找到某種共同的目標(biāo)、共同的興趣或共同的信念。讓他們能夠一起驗(yàn)證某個(gè)假設(shè),并且如果驗(yàn)證成功,對雙方都有益處。
Facebook 的“聊天和群組”功能很酷,但很多功能在 Messenger 上實(shí)現(xiàn)時(shí)卻不太理想,原因就在于此。
Ryan:既然你現(xiàn)在知道了這些,你會(huì)如何改變現(xiàn)狀?
Boris:我可能會(huì)去找高層(比如扎克伯格),然后說,如果你真的對這件事很認(rèn)真,我們應(yīng)該把 Messenger 并入 Facebook 的組織架構(gòu)下。我覺得這件事后來確實(shí)以某種形式發(fā)生了。Messenger 最初在公司里,后來搬了出去,然后又搬了進(jìn)來,之后又搬了出去。公司這么大,這種情況難免發(fā)生。
但我認(rèn)為,從根本上來說,這類事情要想成功,不能只靠普通經(jīng)理去協(xié)調(diào)。可能需要更高層的介入,調(diào)整組織架構(gòu),讓它們更具合作性。
Ryan:在你職業(yè)生涯的這個(gè)階段,我看到你做了很多非常有趣的副業(yè)項(xiàng)目,我很好奇這些項(xiàng)目會(huì)產(chǎn)生怎樣的蝴蝶效應(yīng)。例如,在你加入 Meta 之前,你曾參與過 Undux 的開發(fā),這是一個(gè) React 的狀態(tài)管理框架。我很好奇這段經(jīng)歷對你的職業(yè)生涯產(chǎn)生了怎樣的影響?
Boris:對我來說,支線任務(wù)非常重要。我招聘工程師時(shí),這絕對是我會(huì)考慮的因素之一。我想要那些有副業(yè)項(xiàng)目的人,比如周末可以做一些有趣的事情。甚至包括那些對制作康普茶充滿熱情的人。你需要的是那些對工作以外的事物充滿好奇心和興趣的人。這些人全面發(fā)展,我喜歡和他們一起工作。我的很多成長都來自于參與這些副業(yè)項(xiàng)目。
說實(shí)話,像 Undux 這樣的工具,源于我覺得當(dāng)時(shí)用 React 管理狀態(tài)太復(fù)雜了。當(dāng)時(shí)最先進(jìn)的技術(shù)是 Flux,后來又出現(xiàn)了 Redux,但我完全搞不懂 Redux。我自認(rèn)為只是個(gè)水平一般的產(chǎn)品開發(fā)工程師,不是那種技術(shù)高超的系統(tǒng)工程師。Redux 的概念,比如 reducer,更新一個(gè)小小的狀態(tài)都需要非常復(fù)雜的流程,我理解不了。
所以我做了一個(gè)更簡單的版本,效果不錯(cuò)。當(dāng)時(shí)我在一家非營利組織做志愿者,他們開始使用這個(gè)版本,他們的工程師也很喜歡。加入 Facebook 后,我發(fā)現(xiàn)很多人在使用 Redux 時(shí)遇到困難,公司內(nèi)部有一個(gè) Redux 用戶群,里面有很多問題,和我當(dāng)初問的都一樣。
當(dāng)你作為工程師遇到問題時(shí),有時(shí)可能只有你一個(gè)人遇到;但很多時(shí)候,其他人也會(huì)遇到同樣的問題。培養(yǎng)一種“直覺”,能夠預(yù)判其他人可能也遇到的類似問題,這非常重要。我遇到的這個(gè)問題顯然是其他人也遇到的,我在用戶支持帖子里也看到了。
我在公司內(nèi)部推出了 Undux。它還不錯(cuò);雖然算不上很棒的產(chǎn)品,但比 Redux 簡單。在 Facebook 的時(shí)候,我不知道該如何推廣它,所以我就發(fā)帖宣傳了一下。結(jié)果有幾個(gè)人開始用了。我記得通知團(tuán)隊(duì)的 Jeff Case 是這項(xiàng)功能的早期積極使用者,我們因此熬了好幾個(gè)通宵,調(diào)試一些棘手的通知相關(guān) bug。
為了推廣這項(xiàng)功能,我寫了個(gè)小腳本,抓取了提交問題的用戶群體,并按團(tuán)隊(duì)進(jìn)行了統(tǒng)計(jì)。我通過聊天工具聯(lián)系了每個(gè)團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人和經(jīng)理,并為每個(gè)團(tuán)隊(duì)安排了一場技術(shù)講座。在幾周的時(shí)間里,我大概做了二三十場,甚至四五十場技術(shù)講座。我記得當(dāng)時(shí)騎著自行車在 Meta 園區(qū)里四處演講,感覺特別棒,因?yàn)榇蠹叶己芡度耄埠芘d奮有人關(guān)心這個(gè)問題并想解決它。
曾經(jīng),Undux 是 Facebook 最流行的狀態(tài)管理框架之一。但很快它就被 Recoil 和其他更現(xiàn)代的方案取代了。如今,Relay 之類的框架又開始流行。
Ryan:這種副業(yè)項(xiàng)目會(huì)出現(xiàn)在你的績效考核中嗎?或者對你有什么幫助?
Boris:我覺得它應(yīng)該寫在我的績效考核里了。按 Meta 的標(biāo)準(zhǔn)來說,這算是錦上添花。它本身并不能讓你直接晉升到下一個(gè)級(jí)別。那段時(shí)間我還有很多其他的支線任務(wù)。
后來,我突然對 TypeScript 非常著迷。這是我之前在一家公司用過的。當(dāng)時(shí)相關(guān)的資源不多,所以我開始寫一本關(guān)于它的書,因?yàn)榭偟糜腥俗鲞@件事。這門語言太棒了,設(shè)計(jì)非常出色,包含了很多當(dāng)時(shí)其他語言不具備的理念,像條件類型、字面量類型、映射類型之類的,簡直太瘋狂了。即使是最資深的 Haskell 程序員也會(huì)驚嘆,但之前卻沒有人系統(tǒng)性地寫過這些內(nèi)容。
我當(dāng)時(shí)完全沉迷其中,寫了這本書,幾乎耗盡了我整整一年的業(yè)余時(shí)間。我不推薦別人也這樣做,但深入研究的過程真的很有趣。當(dāng)時(shí)我還在舊金山創(chuàng)辦了世界上最大的 TypeScript 聚會(huì)。能見到 Node.js 的創(chuàng)始人 Ryan Dahl 以及其他這些著名的 JavaScript 大咖,真是太棒了。這讓我意識(shí)到,他們也只是普通人;每個(gè)人都能創(chuàng)造出很酷的東西。
Ryan:后來你在 Meta 工作期間,或者甚至在 Anthropic 工作期間,最終有沒有大量使用 TypeScript 或達(dá)到那種技術(shù)深度?
Boris:是啊,說起來挺有意思的;我以前其實(shí)對編程語言本身一點(diǎn)興趣都沒有。大概十年前,我騎摩托車的時(shí)候出了一場很嚴(yán)重的車禍,雙臂都骨折了,身上綁著兩個(gè)吊帶。
Ryan:我的天哪。你是怎么寫出代碼的?
Boris:那才是最難的部分。我整整一個(gè)月都不能寫代碼,而且我的手現(xiàn)在還有點(diǎn)疼。我寫不了 JavaScript(按鍵多),所以我不得不學(xué)習(xí)其他按鍵次數(shù)更少的語言。我一開始學(xué)的是 CoffeeScript,因?yàn)樗睦ㄌ?hào)比較少。這門語言現(xiàn)在應(yīng)該已經(jīng)沒什么人用了。我也是通過 CoffeeScript 接觸到 Haskell 和函數(shù)式編程的。你可以用更少的擊鍵次數(shù)完成同樣的事情,這正是我當(dāng)時(shí)的動(dòng)力。
在加入 Facebook 之前,我在一家對沖基金工作,我的同事 Rick 對 Scala 非常著迷。他帶我入門,也讓我接觸到了函數(shù)式編程。如果讓我推薦一本對我的工程師生涯影響最大的技術(shù)書籍,我會(huì)毫不猶豫地推薦《Scala 函數(shù)式編程》。你可能永遠(yuǎn)不會(huì)每天都用 Scala,但它教你思考編程問題的方式,與大多數(shù)人在學(xué)校或?qū)嵺`中接觸的方式截然不同,這徹底改變了我的編碼方式。
對我來說,Scala 和 Haskell、CoffeeScript 一樣,是少數(shù)幾種改變我思維的語言。第一步是 CoffeeScript,然后是 Scala,再然后是 TypeScript。這改變了我的思維方式,因?yàn)楝F(xiàn)在我編碼時(shí)會(huì)用類型來思考。代碼中最重要的就是類型簽名,這比代碼本身更重要。做好這一點(diǎn)能寫出非常簡潔、健壯的代碼。
即使在 Facebook,我主要用 Flow 和 Hack,后來在 Instagram 用 Python,這種思維方式也很有幫助。在 Anthropic,我主要用 TypeScript 和 Python,所以這一點(diǎn)仍然非常重要。更重要的教訓(xùn)就是要學(xué)會(huì)用類型來思考。
Ryan:在你職業(yè)生涯的這個(gè)階段,你提到你剛?cè)肼殨r(shí)級(jí)別偏低,只是個(gè)中級(jí)工程師,盡管你經(jīng)驗(yàn)豐富。你說現(xiàn)在回想起來,當(dāng)時(shí)級(jí)別低反而是件好事。我很好奇你當(dāng)時(shí)是怎么想的。
Boris:在大公司里,對于項(xiàng)目影響和人員影響方面都有很多期望,具體標(biāo)準(zhǔn)因公司而異。很多事情要么關(guān)乎項(xiàng)目的影響,要么就是為了完成一堆任務(wù),而這一切都非常耗時(shí)。剛開始的時(shí)候等級(jí)不夠,反而給了我探索的空間,讓我可以純粹為了創(chuàng)造而創(chuàng)造,沒有太多績效壓力。
Ryan:沒錯(cuò)。我很好奇這是否也有助于積累勢頭。如果你以中級(jí)級(jí)別加入,然后表現(xiàn)出色,所有人都會(huì)說“Boris 太棒了”。這很不可思議。而如果你以更高預(yù)期級(jí)別加入,表現(xiàn)平平,情況就完全不同了。當(dāng)你一加入就讓所有人眼前一亮?xí)r,會(huì)產(chǎn)生一種奇妙的效果,你會(huì)給人留下非常深刻的第一印象。我認(rèn)為這有助于建立良好的聲譽(yù),從而在未來獲得更多的信任、更多的項(xiàng)目等等。
Boris:是的,我覺得完全正確。這對于任何公司來說都是很好的建議。很多時(shí)候,工程師跳槽的時(shí)候會(huì)非常積極地爭取更高級(jí)別,比如“我想去另一家公司,我想升一級(jí)”之類的。這樣做有很多弊端。
Ryan:接下來我想問一下是什么讓你在 Meta 晉升為資深工程師(E6)。我很好奇你當(dāng)時(shí)的職位,以及是什么推動(dòng)你晉升到這個(gè)更高層級(jí)的領(lǐng)導(dǎo)崗位。
Boris:當(dāng)時(shí)的情況是,F(xiàn)acebook 推出了群組聊天功能,并且有一個(gè)團(tuán)隊(duì)負(fù)責(zé)開發(fā)。在加入 Facebook 之前,我寫過很多 JavaScript,但在 Facebook 內(nèi)部,我之前從未真正寫過 JavaScript,因?yàn)楫?dāng)時(shí)主要用 PHP。我真的很想寫 JavaScript。
我們當(dāng)時(shí)專門為 Facebook 群組開發(fā)了一個(gè)網(wǎng)頁界面。很多人使用網(wǎng)頁版而不是手機(jī)版,因?yàn)槿航M管理員在電腦上用鍵盤操作起來更方便。但當(dāng)時(shí)這個(gè)網(wǎng)站真的很糟糕,它是一個(gè)靜態(tài)網(wǎng)站,完全用 PHP 編寫,只是在不同的地方零散地注入了一些 JavaScript 代碼,結(jié)果導(dǎo)致了各種不一致的狀態(tài)和問題,用戶體驗(yàn)很差。
我當(dāng)時(shí)想用 JavaScript 重寫整個(gè)界面,但遭到了公司內(nèi)部的強(qiáng)烈反對,主要原因是我們已有的基礎(chǔ)設(shè)施還沒準(zhǔn)備好。幸運(yùn)的是,與此同時(shí),Comet 項(xiàng)目啟動(dòng)了,該項(xiàng)目旨在重寫 facebook.com 的桌面版。
當(dāng)時(shí)有很多核心成員在做這個(gè)項(xiàng)目,我真的很想?yún)⑴c。我主動(dòng)聯(lián)系他們,詢問我能如何幫忙,并提議先在 Facebook 群組里進(jìn)行測試和探索。我?guī)缀跏菦]問任何人就直接開始做了。
后來,我跟 Facebook 群組部門的領(lǐng)導(dǎo)們說:“嘿,Comet 項(xiàng)目馬上就要全面推行了。這會(huì)是一項(xiàng)艱巨的工作。但我們可以提前做好準(zhǔn)備,為所有其他團(tuán)隊(duì)樹立一個(gè)遷移標(biāo)準(zhǔn),并與其他團(tuán)隊(duì)建立聯(lián)系。”我仍然遇到了阻力,比如他們說“你不能安排 20 個(gè)工程師來做這件事”。經(jīng)過多次討論和討價(jià)還價(jià),我們最終組建了大約 12 名工程師的團(tuán)隊(duì),因?yàn)檫@是一個(gè)相當(dāng)大的遷移項(xiàng)目,大約需要一年時(shí)間。
“群組”是 Facebook 所有產(chǎn)品中規(guī)模最大的一個(gè),這有點(diǎn)出乎意料。這次遷移很成功。除了與這個(gè)基礎(chǔ)架構(gòu)團(tuán)隊(duì)建立聯(lián)系和友誼之外,有趣的是,我們因此有機(jī)會(huì)影響 Comet 項(xiàng)目的發(fā)展方向。對于基礎(chǔ)設(shè)施項(xiàng)目而言,產(chǎn)品團(tuán)隊(duì)通常無法左右項(xiàng)目方向,他們更像是客戶。但在這個(gè)項(xiàng)目中,由于我們早期深度參與,我們創(chuàng)建了許多抽象概念,后來被其他基于 Comet 進(jìn)行開發(fā)的團(tuán)隊(duì)所使用。
舉一個(gè)具體的例子,比如“中繼變更”。你需要發(fā)送 API 請求,并且需要某種狀態(tài)一致性。之前存在一個(gè) bug:假設(shè)有一個(gè)按鈕,每次按下它都會(huì)發(fā)送一個(gè) POST 請求。為了良好的用戶體驗(yàn),你希望在按下按鈕后,按鈕的狀態(tài)立刻切換,這需要使用樂觀更新。當(dāng)網(wǎng)絡(luò)請求返回時(shí),你還需要更新本地緩存以確保一致性。但如果你連續(xù)快速點(diǎn)擊按鈕,響應(yīng)可能會(huì)亂序到達(dá),最終得到的狀態(tài)可能與用戶界面上顯示的狀態(tài)不同。
我寫了一個(gè)系統(tǒng)來排隊(duì)處理這些變更,這樣雖然保證了一致性,但犧牲了一點(diǎn)即時(shí)性。在當(dāng)時(shí)這是一個(gè)合理的權(quán)衡,這個(gè)方案最終被廣泛采用。我就是在這個(gè)過程中認(rèn)識(shí)了 Joseph 和 Relay 團(tuán)隊(duì)里負(fù)責(zé)數(shù)據(jù)存儲(chǔ)的其他人。這段經(jīng)歷真的很有趣。每當(dāng)我看到工程師深入鉆研,努力弄明白復(fù)雜系統(tǒng)到底發(fā)生了什么時(shí),我都很欣賞。產(chǎn)品工程師并不意味著你不能構(gòu)建基礎(chǔ)設(shè)施,基礎(chǔ)設(shè)施工程師也不意味著你不能和用戶交流。對技術(shù)棧的其他部分保持好奇心就好。
3 成功搞定大項(xiàng)目后,才有更多話語權(quán)
Ryan:當(dāng)然。你搶先一步進(jìn)行 Comet 遷移和大規(guī)模的 JavaScript 重寫,正如你提到的,這實(shí)際上讓你擁有了更大的影響力和話語權(quán)。你所說的機(jī)會(huì),是指構(gòu)建這些對所有使用新平臺(tái)的人都至關(guān)重要的基礎(chǔ)產(chǎn)品架構(gòu)嗎?
Boris:是的,這就是一個(gè)例子。另一個(gè)例子是,Comet 的質(zhì)量比之前的版本高得多,因?yàn)樗且粋€(gè)單頁 Web 應(yīng)用,所以感覺更加流暢和完善。但我們當(dāng)時(shí)還沒有完全弄清楚“產(chǎn)品層面的質(zhì)量”究竟意味著什么。我寫了很多筆記試圖定義它,也做了很多演講,向其他團(tuán)隊(duì)的成員講解我們對質(zhì)量的理解,并就此展開討論,共同塑造標(biāo)準(zhǔn)。
Ryan:您提到遷移到 Comet 需要大量人手。我很想知道,如果現(xiàn)在有了 Claude Code、Codex 等新的 AI 編碼工具,情況會(huì)是怎樣的。以您現(xiàn)在對 Claude Code 的了解,如果您負(fù)責(zé)評(píng)估這項(xiàng)工作,您認(rèn)為現(xiàn)在需要多少工程師才能完成原本需要 12 名工程師花費(fèi)一年才能完成的工作?
Boris:為了遷移 Facebook 群組,最初是 12 位工程師,但最后可能動(dòng)用了 20 到 30 位工程師,持續(xù)了大約兩年時(shí)間,最終變成了一個(gè)相當(dāng)大的項(xiàng)目。現(xiàn)在來看,可能只需要 5 位工程師,耗時(shí)六個(gè)月左右就夠了。
Ryan:也就是說,只需要四分之一的時(shí)間,以及不到一半的工程師?
Boris:是的,因?yàn)楝F(xiàn)在你可以讓 AI 并行工作。你讓它運(yùn)行幾個(gè)小時(shí),它就能生成一個(gè)可用的 PR。你甚至可以給它裝上 Puppeteer 之類的工具,讓它能看到 UI 并進(jìn)行視覺調(diào)整。大概就是這樣。現(xiàn)在,從編碼的角度來看,環(huán)境已經(jīng)截然不同了,因?yàn)槟P透碌炝恕H绻闳齻€(gè)月或六個(gè)月后再問我這個(gè)問題,我的答案肯定會(huì)完全不同。六個(gè)月后,答案可能就變成了:這實(shí)際上只需要一個(gè)工程師就能完成。現(xiàn)在的變化實(shí)在太快了,很難做出準(zhǔn)確的估算,也很難預(yù)測它們未來會(huì)如何演變。
Ryan:在你職業(yè)生涯的這個(gè)階段,你曾提到過一件事,也許是半開玩笑地說,那時(shí)你學(xué)會(huì)了在向副總裁評(píng)審提案時(shí),總是提出三個(gè)選項(xiàng)。因?yàn)?80% 的情況下他們只會(huì)選擇中間的那個(gè)。你這么做的想法是什么?
Boris:這話雖然有點(diǎn)諷刺,但或許當(dāng)時(shí)在 Meta 公司那種特定環(huán)境下有點(diǎn)道理。那些遠(yuǎn)離一線具體工作的決策者,他們想知道你是否認(rèn)真研究過各種方案和權(quán)衡利弊,是否真的做了充分的工作。但同時(shí),他們也想以某種方式參與決策。提供一個(gè)“折中”選項(xiàng),對他們來說比較容易理解和接受。我這么說確實(shí)帶有諷刺意味,因?yàn)椴⒎撬蓄I(lǐng)導(dǎo)者都這樣。很多領(lǐng)導(dǎo)者會(huì)親自深入?yún)⑴c決策,他們或多或少信任自己的團(tuán)隊(duì)。管理風(fēng)格有很多種。我記得當(dāng)時(shí)我們有一位技術(shù)水平可能不那么深入細(xì)節(jié)的領(lǐng)導(dǎo),而這種方法算是幫助她進(jìn)行決策的一種溝通方式。
Ryan:在你職業(yè)生涯的這個(gè)階段,你與高層管理人員的接觸最為密切。你提到你曾向一位高級(jí)總監(jiān)匯報(bào)工作,并且參與了很多重要的項(xiàng)目規(guī)劃討論。我很好奇,向這樣一位資深人士匯報(bào)工作,對你后續(xù)的成長產(chǎn)生了哪些影響?
Boris:是的,我覺得這很大程度上取決于工程師個(gè)人和公司文化。比如,我現(xiàn)在在 Anthropic,我覺得在 Anthropic,你向哪個(gè)層級(jí)匯報(bào)并不重要。公司里一些最資深的員工也是向部門經(jīng)理匯報(bào)的。很多部門經(jīng)理本身就是前首席技術(shù)官或非常資深的人士,所以實(shí)際上這并不構(gòu)成障礙。
我認(rèn)為向高級(jí)別匯報(bào)帶來的壓力,在某種程度上是 Meta 公司特有的文化現(xiàn)象。我覺得這里存在兩種情況。一是,在 Meta,你需要非常主動(dòng)地找到自己的發(fā)展方向和上升路徑。有些機(jī)會(huì)你可以自己發(fā)現(xiàn),有些則需要你的經(jīng)理或技術(shù)領(lǐng)導(dǎo)幫你識(shí)別和引薦。
Meta 的 PSC(績效評(píng)估)流程出了名的嚴(yán)苛,你必須不斷地強(qiáng)調(diào)和證明你的影響力。而“職責(zé)范圍”是造成這種嚴(yán)苛體驗(yàn)的最大因素。如果你有足夠大的職責(zé)范圍,并且執(zhí)行得當(dāng),就能產(chǎn)生顯著的影響力。這就是秘訣。
我覺得在 Meta,另一個(gè)特點(diǎn)是大家都沒有很花哨的頭銜。即使是最資深的工程師,頭銜也只是“軟件工程師”,我非常喜歡這一點(diǎn)。貝爾實(shí)驗(yàn)室的技術(shù)人員也是如此,Anthropic 也是如此,但我們在這里更進(jìn)一步:所有人的頭銜都是“技術(shù)人員”。不管你是工程師、項(xiàng)目經(jīng)理還是設(shè)計(jì)師,頭銜都一樣。我其實(shí)很喜歡這樣,因?yàn)檫@樣一來,你就可以跳出自己被默認(rèn)設(shè)定的職責(zé)范圍,去做那些你認(rèn)為正確和必要的事情,而不用過分在意別人期望你做什么。我認(rèn)為這種文化正是促成這種靈活性的原因。
Ryan:我看到了不設(shè)復(fù)雜頭銜的很多好處。但我也能想到一種情況,也許這只適用于大公司:當(dāng)你聯(lián)系公司里的某個(gè)人,說“嘿,我想?yún)⑴c這個(gè)合作”,如果你的頭銜是“總監(jiān)”之類的,這就能讓他們更容易理解你的層級(jí)、影響力和協(xié)作方式。如果你是設(shè)計(jì)師或其他職位,在 Anthropic 規(guī)模擴(kuò)大了一些的現(xiàn)在,你感受到這一點(diǎn)了嗎?也許因?yàn)榇蠹椰F(xiàn)在都認(rèn)識(shí)你,所以你沒怎么感受到。
Boris:是的,這絕對是一個(gè)潛在的缺點(diǎn)。但我認(rèn)為優(yōu)點(diǎn)大于缺點(diǎn)。那就是你必須努力爭取,用實(shí)力和貢獻(xiàn)贏得尊重。我覺得這條原則無論在哪家公司都適用。僅僅因?yàn)槟阋郧白鲞^一件很棒的事,并不意味著你在新的環(huán)境里就理應(yīng)自動(dòng)獲得權(quán)力和尊重。當(dāng)然,每個(gè)人都應(yīng)該得到基本尊重;但這不意味著你在一家新公司、一個(gè)新項(xiàng)目中就理應(yīng)擁有決策權(quán)。即使是那些一開始就擁有“經(jīng)理”頭銜的人,也需要努力爭取團(tuán)隊(duì)的信任。在某種程度上,擁有經(jīng)理頭銜反而可能讓贏得這種信任變得更難。作為獨(dú)立貢獻(xiàn)者,無論如何你都必須用行動(dòng)證明自己。我認(rèn)為,正是因?yàn)闆]有那些預(yù)設(shè)的、等級(jí)森嚴(yán)的頭銜,才使得這一切變得稍微容易一些,更注重實(shí)際貢獻(xiàn)。
4 如何從技術(shù)人轉(zhuǎn)型為高管
Ryan:在你職業(yè)生涯的這個(gè)階段,你逐漸轉(zhuǎn)型為技術(shù)主管或高級(jí)技術(shù)主管,我記得你講過一些為數(shù)百名工程師制定工作計(jì)劃的故事。你是怎么做到的?如果工作量如此龐大,而你又只有一個(gè)人,你是如何向領(lǐng)導(dǎo)層提出如此大規(guī)模的工作計(jì)劃請求的?
Boris:是的,那段時(shí)間真是太瘋狂了。我當(dāng)時(shí)和蒂娜·薩奇曼共事很多,她現(xiàn)在在微軟,但當(dāng)時(shí)是我的經(jīng)理。然后是我的上級(jí)伊芙。當(dāng)時(shí)公司決定對 Facebook 群組投入更多資源。我剛加入的時(shí)候,群組部門大概只有 150 到 200 人,等我離開去 Instagram 的時(shí)候,好像已經(jīng)有 600 到 800 人了。扎克伯格一直覺得 Facebook 應(yīng)用的核心應(yīng)該是社群,他希望我們加快速度,把這個(gè)想法變成現(xiàn)實(shí)。
作為高管,最重要的就是讓合適的人負(fù)責(zé)決策,然后給他們提供資源。在 Meta,資源主要就是工程師。我們向扎克伯格推介了這個(gè)名為“社區(qū)即新組織”的內(nèi)部項(xiàng)目。他為此投入了一大批人手,我們只需要弄清楚這些人具體要做什么。對他來說,如果事情很重要,就得投入大量人力。事后看來,我會(huì)采取不同的做法,大幅減少初期投入的人員,因?yàn)檎嬲匾氖墙鉀Q用戶的問題,打造出色的產(chǎn)品,這必須自下而上地進(jìn)行,需要隨著新產(chǎn)品線找到市場契合點(diǎn)而逐步推進(jìn),不能一口氣做完所有事情。
但當(dāng)時(shí),我們必須先把所有事情都規(guī)劃好。有好幾個(gè)星期,我都要寫一份龐大的規(guī)劃文檔,內(nèi)容大致是:“好,我們要安排 30 個(gè)工程師負(fù)責(zé) A 項(xiàng)目。這里有三個(gè)技術(shù)方案,我們選方案二。下一個(gè) B 項(xiàng)目,我們要安排 20 個(gè)工程師。這里有三個(gè)方案,我們選方案一。”就這樣一遍又一遍地重復(fù),才能確保這個(gè)龐大的項(xiàng)目計(jì)劃不是完全異想天開。我們進(jìn)行了一些基礎(chǔ)的技術(shù)范圍界定,大致估算了每個(gè)子項(xiàng)目需要的工程師人數(shù)。
其中有些事情很有意思。我記得我們曾經(jīng)嘗試合并 Facebook 群組和主頁的數(shù)據(jù)模型。那真是一次非常棘手的遷移。要徹底實(shí)現(xiàn)這一點(diǎn),需要很多年時(shí)間,可能還需要數(shù)百名工程師,因?yàn)楸仨毧鐢?shù)據(jù)模型、產(chǎn)品層、完整性系統(tǒng)和廣告系統(tǒng)進(jìn)行操作。當(dāng)時(shí),Yosef Carver 剛剛加入;我記得他之前在 Profile 或 Events 部門工作,這兩個(gè)部門與 Groups 部門合作推進(jìn)這項(xiàng)工作。他當(dāng)時(shí)正在研究這個(gè)問題,但還在猶豫不決,無法就數(shù)據(jù)模型做出最終決定。
于是我召集了一群人,說:“好了,公司所有相關(guān)的技術(shù)主管都來了,我們今天花三個(gè)小時(shí),像玩游戲一樣,來討論一下架構(gòu)設(shè)計(jì)。”我把大家分成兩隊(duì),好像是藍(lán)隊(duì)和綠隊(duì)(記不清了)。我們給每個(gè)人布置了同一個(gè)問題:如何合并這些數(shù)據(jù)模型,并給出了具體的要求。每個(gè)人都有三個(gè)小時(shí)的時(shí)間在白板上設(shè)計(jì)方案。
最酷的是,一開始我們都覺得這個(gè)問題棘手,不知道該怎么做。但最后,我們兩隊(duì)得到的兩個(gè)方案竟然有 80% 的相似度!我們可以采取的行動(dòng)變得非常明確,而那 20% 的差異也清楚地揭示了風(fēng)險(xiǎn)所在。我們可以通過一些技術(shù)性操作來預(yù)先承擔(dān)一部分風(fēng)險(xiǎn),但我們也清楚地知道可以立即開始執(zhí)行哪些部分。
Ryan:是啊,我覺得這個(gè)形式很有意思:就像一個(gè)技術(shù)設(shè)計(jì)競賽,所有資深工程師都參與其中,分成幾個(gè)小組,在不同房間里同步進(jìn)行設(shè)計(jì)。我以前從沒聽說過這種形式。你當(dāng)初在公司內(nèi)部提出這個(gè)設(shè)計(jì)競賽的想法時(shí),大家是覺得很興奮,還是覺得這有點(diǎn)異想天開?
Boris:是有點(diǎn)非常規(guī)。這種事,你只能硬著頭皮去做,靠行動(dòng)推動(dòng)。我直接跟所有相關(guān)的人說:“嘿,我們要這么做了”,然后就把會(huì)議日期記在了每個(gè)人的日歷上。感覺挺有意思的;作為工程師,你肯定也想?yún)⑴c這種創(chuàng)造性的解決問題的過程。但有時(shí)候你需要漫長的過程來達(dá)成共識(shí),有時(shí)候你則需要快速行動(dòng)來打破僵局。
在這種情況下,由于技術(shù)方向不明朗,采取行動(dòng)至關(guān)重要。但同時(shí),我自己也不知道確切的最佳路徑,所以我們必須召集所有關(guān)鍵人員,通過這種高強(qiáng)度、高協(xié)作的方式快速達(dá)成共識(shí)。作為技術(shù)領(lǐng)導(dǎo)者,你總是需要在“推動(dòng)共識(shí)”和“果斷行動(dòng)”這兩件事之間尋求平衡。
Ryan:有了那次為數(shù)百名工程師規(guī)劃項(xiàng)目的經(jīng)歷,你對那些需要快速進(jìn)行項(xiàng)目范圍界定的技術(shù)主管有什么建議嗎?有什么對你來說行之有效的方法或原則?
Boris:我覺得我看到的最大問題是人們花費(fèi)的時(shí)間太長,而且過于糾結(jié)細(xì)節(jié)。細(xì)節(jié)總是無窮無盡的。最好從宏觀層面入手。大多數(shù)技術(shù)范圍界定都可以在 30 分鐘內(nèi)完成一個(gè)非常粗略的版本。
如果你不了解所涉及的系統(tǒng),現(xiàn)在你甚至可以讓 AI 來幫忙。你只需要在代碼庫中運(yùn)行一個(gè)查詢,或者直接問 AI:“要實(shí)現(xiàn) X 功能,會(huì)涉及代碼庫中的哪些系統(tǒng)和模塊?”它實(shí)際上可以幫你快速梳理出依賴關(guān)系。這真是個(gè)不可思議的改變。我以前做這些事情的時(shí)候,絕對想不到人工智能現(xiàn)在能幫我做到這些。
但回到一般性原則,我過去的建議是:設(shè)定嚴(yán)格的時(shí)間限制。用于初步范圍界定的會(huì)議最多花 30 分鐘。如果需要深入研究代碼,最多幾個(gè)小時(shí)。一定要聯(lián)系專家,并列出所有需要咨詢的專家名單。和他們所有人交流。但不要只是泛泛地征求他們的意見。給他們一個(gè)具體的假設(shè)或初步設(shè)計(jì)方案,這樣他們才能真正給你有建設(shè)性的反饋,你才能以此為依據(jù)進(jìn)行迭代和完善。
Ryan:繼續(xù)你的職業(yè)經(jīng)歷。你晉升到高級(jí)職位的關(guān)鍵,似乎和 Facebook 的“公共群組”項(xiàng)目有關(guān)。我很想了解這背后的故事,以及其中發(fā)生了什么有趣的事?
Boris:是的。“公共群組”項(xiàng)目源于我們想讓 Facebook 群組更開放。我們當(dāng)時(shí)想做一個(gè)看似簡單、但實(shí)際非常復(fù)雜的改動(dòng):讓用戶無需加入,就能查看和評(píng)論公開群組的內(nèi)容。
這聽起來像改一行代碼,但實(shí)現(xiàn)起來異常困難。因?yàn)樗|及了核心的數(shù)據(jù)模型問題:在數(shù)據(jù)庫里,一個(gè)發(fā)表評(píng)論但未“加入”的用戶,到底算不算“群組成員”?這引發(fā)了我們內(nèi)部激烈的技術(shù)討論。
過去的“加入”需要管理員批準(zhǔn),是一種信任投票。現(xiàn)在對于公開群組,行為變成了“關(guān)注”。那么,“關(guān)注”和“加入”在數(shù)據(jù)層面應(yīng)該是同一回事嗎?當(dāng)時(shí)公司里一位資深的元老級(jí)工程師鮑勃,強(qiáng)烈認(rèn)為這必須是兩件不同的事,并要求進(jìn)行大規(guī)模的數(shù)據(jù)遷移來區(qū)分它們。
這還引發(fā)了連鎖反應(yīng):如果任何人都能評(píng)論,垃圾信息怎么辦?我通過一個(gè)簡單的蒙特卡羅模擬,展示了潛在的垃圾信息風(fēng)險(xiǎn),最終成功說服了公司的誠信團(tuán)隊(duì)介入,幫助調(diào)整評(píng)論排名算法來應(yīng)對。
為了完成數(shù)據(jù)遷移等所有工作,我們組建了一個(gè)大團(tuán)隊(duì)。當(dāng)時(shí)我和其他幾位資深工程師同級(jí),都需要我來協(xié)調(diào)指導(dǎo),這讓我一度感到有些“冒名頂替”。但最終,正是因?yàn)槲彝品酥磅U勃關(guān)于數(shù)據(jù)遷移的決定,才促成了我后來的晉升。
我經(jīng)過審核發(fā)現(xiàn),最初的“成員”字段其實(shí)完全可以同時(shí)表示“關(guān)注者”和“群組成員”,強(qiáng)制區(qū)分只會(huì)讓后續(xù)所有開發(fā)變得復(fù)雜。我敦促負(fù)責(zé)的工程師撤銷了那次遷移。這個(gè)正確的技術(shù)判斷,反而讓鮑勃更認(rèn)可我作為技術(shù)領(lǐng)導(dǎo)的能力,因?yàn)槲夷芑谑聦?shí)對資深人士的決定提出異議。
Ryan:你和高級(jí)技術(shù)主管之間存在嚴(yán)重技術(shù)分歧,但結(jié)果反而加強(qiáng)了關(guān)系。對于如何處理這類分歧而不損害關(guān)系,你有什么建議?
5 要敢于挑戰(zhàn)權(quán)威
Boris:我認(rèn)為核心是贏得信任。在你擁有足夠的技術(shù)信任之前,很難去挑戰(zhàn)權(quán)威。一開始,可以更多地傾聽、執(zhí)行,表現(xiàn)出尊重和合作意愿。同時(shí),你必須通過實(shí)際行動(dòng)積累扎實(shí)的技術(shù)判斷力。在贏得信任后,你基于事實(shí)和專業(yè)提出的異議,才更容易被接受。
Ryan:關(guān)于“冒名頂替綜合癥”,以及領(lǐng)導(dǎo)那些和你同樣優(yōu)秀的工程師,你有什么建議?
Boris:別想太多。其實(shí)沒人真正知道自己在每個(gè)新層面上具體該做什么,大家都在摸索。這種感覺會(huì)隨著時(shí)間慢慢消失。某種程度上,始終保持一點(diǎn)點(diǎn)“冒名頂替”感是健康的,那說明你還在努力突破舒適區(qū)。
Ryan:在你職業(yè)生涯的這個(gè)階段,你更像技術(shù)主管,編碼減少。你曾提到,在 Meta,有時(shí)其他職能(如產(chǎn)品經(jīng)理)支持不足,你認(rèn)為這是讓工程師更多關(guān)注產(chǎn)品、甚至參與產(chǎn)品管理的機(jī)會(huì)。你如何決定何時(shí)該自己頂上,而不是反復(fù)要求更多支持?
Boris:關(guān)鍵在于理解利弊和背景。你需要從決策者的角度思考:他們關(guān)心什么?手頭有哪些項(xiàng)目?做這件事的代價(jià)是什么?是否能幫他們成功?有些組織可能確實(shí)資源緊張,或認(rèn)為你的項(xiàng)目優(yōu)先級(jí)不夠。有些組織則可能資源充沛。了解你所在的環(huán)境和決策者的處境,才能判斷是應(yīng)該自己主動(dòng)補(bǔ)位,還是能夠爭取到資源。
Ryan:你將自己的成功很大程度上歸功于“副業(yè)項(xiàng)目”。你對工程師如何尋找這樣的機(jī)會(huì)有什么建議?
Boris:我的很多想法來源于日常工作中那些重復(fù)、繁瑣的部分。工程師的超能力就是自動(dòng)化。我養(yǎng)成了一個(gè)習(xí)慣:在代碼審查中,如果我多次評(píng)論同一類問題,我就會(huì)寫一條規(guī)則來自動(dòng)化檢查它。很快,我?guī)缀踝詣?dòng)化了所有代碼審查。
這些“副業(yè)”往往就是去改進(jìn)那些拖慢日常開發(fā)速度的基礎(chǔ)設(shè)施或工具。這不僅能解放自己,也能惠及整個(gè)團(tuán)隊(duì)。一個(gè)核心原則是:如果你遇到了某個(gè)問題,很可能其他人也遇到了。為自己打造解決方案,往往就是為很多人打造解決方案。
6 為何從 Meta 轉(zhuǎn)向 Anthropic
Ryan:你從 Meta 離職加入 Anthropic,當(dāng)時(shí)是怎么做出這個(gè)決定的?
Boris:我第一次用到 ChatGPT,是它剛推出不久的時(shí)候。當(dāng)時(shí)我在日本,一個(gè)小地方,幾乎沒有人能和我討論技術(shù)。我每天刷 Hacker News,用到 ChatGPT 后的第一反應(yīng)是:這東西太不可思議了。
現(xiàn)在回頭看我們已經(jīng)習(xí)以為常,但當(dāng)時(shí)的大模型給我的感覺,更像是一種“新生命”。它不僅是一項(xiàng)技術(shù),而是一種可以被培育、被引導(dǎo)的存在。我本人很喜歡科幻小說,尤其是硬科幻,所以當(dāng)我意識(shí)到這類模型意味著什么時(shí),心里只有一個(gè)想法:我一定要參與其中。
后來我去了解哪些實(shí)驗(yàn)室在做這件事,也和一些在不同研究機(jī)構(gòu)工作的朋友聊過。第一次和 Anthropic 的創(chuàng)始團(tuán)隊(duì)吃飯時(shí),我隨口提到了一本科幻小說,結(jié)果發(fā)現(xiàn)桌上幾乎所有人都讀過,還能繼續(xù)討論別的作品。那一刻我意識(shí)到,這是一個(gè)真正認(rèn)真思考“這些技術(shù)會(huì)把世界帶向哪里”的地方。
人工智能正在改變社會(huì),而且是從工程領(lǐng)域開始,逐步擴(kuò)散到各個(gè)層面。我也很清楚,這項(xiàng)技術(shù)存在很多潛在風(fēng)險(xiǎn),甚至可能走向非常危險(xiǎn)的方向。對我來說,加入 Anthropic 幾乎是順理成章的選擇——如果我能做點(diǎn)什么,那就是站在一個(gè)真正把“安全”和“長期影響”當(dāng)回事的地方。
在 Meta,安全往往被當(dāng)成一種負(fù)擔(dān),是和產(chǎn)品對立的事情。但在 Anthropic 完全不同。我們在安全和對齊研究上投入了大量算力和人力,甚至因?yàn)椴淮_定模型是否足夠安全而推遲發(fā)布。隨著模型能力提升,風(fēng)險(xiǎn)也在快速上升,這已經(jīng)不是科幻,而是現(xiàn)實(shí)問題。我很慶幸自己能參與其中。
Ryan:加入 Anthropic 之后,你感受到的工程文化和以前最大的不同是什么?
Boris:有兩點(diǎn)特別明顯。第一,公司雖然已經(jīng)不小了,但仍然保留著創(chuàng)業(yè)公司的“常識(shí)感”。很多事情不需要復(fù)雜的流程去推動(dòng),大家天然會(huì)做正確的決定。這是大公司最容易丟失的東西。
第二,對我個(gè)人來說,最重要的是使命感。它讓我每天都愿意來上班,甚至周末也愿意寫代碼,不是因?yàn)?deadline,而是因?yàn)槲蚁脒@么做。我在 Facebook 群組項(xiàng)目里感受過類似的氛圍,但在 Anthropic,這種感覺更強(qiáng)烈,也更一致。
7 Claude Code 為什么能跑出來
Ryan:你是 Claude Code 的核心推動(dòng)者之一。當(dāng)初市面上也有不少類似工具,Claude Code 真正不同的地方在哪里?
Boris:一開始,大家對“AI 編程”的理解非常狹窄,基本等同于自動(dòng)補(bǔ)全。即便有一些智能體的概念,也更多是問答工具,而不是能真正參與編程。
坦白說,在很長一段時(shí)間里,Claude Code 本身也并不好用。即便在內(nèi)部,我可能只用它寫了不到 10% 的代碼。關(guān)鍵在于,我的主管一直提醒我:不要按“現(xiàn)在的模型能力”來設(shè)計(jì)產(chǎn)品,而要按“六個(gè)月后的模型能力”來設(shè)計(jì)。
后來 Sonnet 和 Opus 4 發(fā)布后,一切發(fā)生了變化。短短幾個(gè)月,我自己有一半以上的代碼都交給 Claude Code 來寫。現(xiàn)在在 Anthropic,很多團(tuán)隊(duì) 80% 到 90% 的代碼都是用 Claude Code 生成的。公司規(guī)模雖然擴(kuò)大了,但工程師的整體生產(chǎn)力反而顯著提升。
Ryan:有人擔(dān)心模型生成大量代碼,但質(zhì)量不穩(wěn)定、問題隱蔽,你怎么看?
Boris:AI 編程和任何工具一樣,是需要學(xué)習(xí)如何使用的。我們內(nèi)部的原則很簡單:不管代碼是人寫的還是模型生成的,標(biāo)準(zhǔn)完全一致。代碼不好,就不合并。
不同場景需要不同方式。原型、臨時(shí)代碼,可以更“感覺驅(qū)動(dòng)”;核心代碼,就必須逐行推敲。大多數(shù)時(shí)候,我是和模型一起寫代碼:先制定計(jì)劃,再讓模型生成,再不斷修改、清理。某些關(guān)鍵部分,我仍然堅(jiān)持手寫。
現(xiàn)在的模型編碼能力當(dāng)然還不完美,但已經(jīng)是“史上最差的一代”了。一年前還只是自動(dòng)補(bǔ)全,現(xiàn)在已經(jīng)是完全不同的世界。
Ryan:除了寫代碼,你覺得 Claude Code 還能用在哪些地方?
Boris:我們公司里的數(shù)據(jù)科學(xué)家、分析師,甚至銷售團(tuán)隊(duì)都在用它。有人用它寫 SQL、跑分析、搭數(shù)據(jù)管道;銷售團(tuán)隊(duì)把它接入 Salesforce,直接干活。這完全超出了我們最初的設(shè)計(jì)預(yù)期。
Ryan:你怎么看 Claude Code 和 Codex、OpenAI 之間的競爭?
Boris:說實(shí)話,我?guī)缀醪豢雌渌a(chǎn)品。過度關(guān)注競爭對手,很容易讓團(tuán)隊(duì)迷失方向。 我們只專注一件事:解決我們自己、Anthropic 研究人員以及用戶真正遇到的問題。
Ryan:你不是計(jì)算機(jī)科班出身,這對你有影響嗎?
Boris:幾乎沒有。我學(xué)的是經(jīng)濟(jì)學(xué),后來輟學(xué)創(chuàng)業(yè)。編程是一項(xiàng)高度實(shí)踐性的技能,最重要的是動(dòng)手做、做出產(chǎn)品。理論當(dāng)然有價(jià)值,但對我個(gè)人來說,從來不是關(guān)鍵。
Ryan:你效率很高,有什么秘訣?
Boris:現(xiàn)在我的答案只有一個(gè):學(xué)會(huì)用 Claude Code,而且是同時(shí)用多個(gè)。你不再是親自寫每一行代碼,而是在做統(tǒng)籌、調(diào)度和判斷。這就是工程的未來。
Ryan:你覺得工程師會(huì)不會(huì)越來越像管理者?
Boris:某種程度上是的。但我依然很享受安靜地寫代碼。現(xiàn)在我每天早上都會(huì)啟動(dòng)幾個(gè) Claude Code 代理,讓它們先跑起來,等我到電腦前再檢查、合并或修改。
這聽起來很瘋狂,但它確實(shí)有效。甚至一些多年不寫代碼的管理者,現(xiàn)在也能重新參與進(jìn)來。我們熟悉的“寫代碼”這件事,正在發(fā)生根本性的變化,而且正在變得對更多人開放。
https://www.youtube.com/watch?v=AmdLVWMdjOk
聲明:本文為 InfoQ 整理,不代表平臺(tái)觀點(diǎn),未經(jīng)許可禁止轉(zhuǎn)載。
會(huì)議推薦
InfoQ 2026 全年會(huì)議規(guī)劃已上線!從 AI Infra 到 Agentic AI,從 AI 工程化到產(chǎn)業(yè)落地,從技術(shù)前沿到行業(yè)應(yīng)用,全面覆蓋 AI 與軟件開發(fā)核心賽道!集結(jié)全球技術(shù)先鋒,拆解真實(shí)生產(chǎn)案例、深挖技術(shù)與產(chǎn)業(yè)落地痛點(diǎn),探索前沿領(lǐng)域、聚焦產(chǎn)業(yè)賦能,獲取實(shí)戰(zhàn)落地方案與前瞻產(chǎn)業(yè)洞察,高效實(shí)現(xiàn)技術(shù)價(jià)值轉(zhuǎn)化。把握行業(yè)變革關(guān)鍵節(jié)點(diǎn),搶占 2026 智能升級(jí)發(fā)展先機(jī)!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.