注:沒有特別聲明,文中的“我”都指原作者 Camille Fournier
背景介紹
多年前,我成為技術(shù)負(fù)責(zé)人。在這之前我已經(jīng)晉升為高級工程師,和其他幾位高級工程師在一個(gè)小團(tuán)隊(duì)中工作。我對被提升為技術(shù)負(fù)責(zé)人有點(diǎn)令人驚訝,因?yàn)闊o論是頭銜還是年限,我都不是團(tuán)隊(duì)中最資深的人。
回想起來,我有一些優(yōu)勢。首先,我不僅僅是一名優(yōu)秀的工程師,還是一個(gè)很好的溝通者。我可以寫出清晰的文檔,我可以在思維不短路的情況下進(jìn)行演示,我可以與不同團(tuán)隊(duì)、不同角色的人交談并解釋發(fā)生了什么。
我也擅長優(yōu)先級排序。我渴望推進(jìn)工作并搞清楚下一步需要做什么。最后,我愿意收拾殘局,做能做的事情來取得進(jìn)展。我認(rèn)為,這種務(wù)實(shí)的緊迫性(pragmatic urgency)是決定性因素。畢竟,技術(shù)負(fù)責(zé)人是一個(gè)領(lǐng)導(dǎo)職位,即使它不是管理職位。
(譯者注:領(lǐng)導(dǎo)(lead)意味著需要做出關(guān)鍵性決策,對團(tuán)隊(duì)的業(yè)務(wù)發(fā)展負(fù)責(zé)。管理(manage)意味著塑造團(tuán)隊(duì),有權(quán)決定團(tuán)隊(duì)的構(gòu)成。一般而言,技術(shù)負(fù)責(zé)人是技術(shù)管理者與其他成員的橋梁。兩者的進(jìn)一步區(qū)別,可以參見本系列 tech lead 的第三部分。)
我見過技術(shù)負(fù)責(zé)人陷入困境。
一個(gè)印象深刻的案例:他是一位了不起的工程師,能編寫出色的代碼,但討厭與人交談,并且經(jīng)常被技術(shù)細(xì)節(jié)分心。我看著他一個(gè)接一個(gè)地陷入困境。與此同時(shí),產(chǎn)品經(jīng)理利用他的缺位,促使團(tuán)隊(duì)的其他成員將注意力集中在交付設(shè)計(jì)不佳又過于激進(jìn)的功能。
項(xiàng)目一團(tuán)糟,技術(shù)負(fù)責(zé)人在做什么?他追求下一次重構(gòu),因?yàn)樗_信問題完全出在代碼的結(jié)構(gòu)上。你可能熟悉這個(gè)故事,因?yàn)樗鼰o處不在。
這里存在一種誤區(qū):認(rèn)為技術(shù)負(fù)責(zé)人應(yīng)當(dāng)由這樣的人擔(dān)當(dāng),他們是最有經(jīng)驗(yàn)的工程師、能夠處理最復(fù)雜的功能或編寫最好的代碼的工程師。即使是有經(jīng)驗(yàn)的經(jīng)理也會(huì)犯這個(gè)錯(cuò)。專注于自己的代碼細(xì)節(jié)不是技術(shù)負(fù)責(zé)人的該做的事。
技術(shù)負(fù)責(zé)人的工作到底是什么?我們對這個(gè)人有什么期望?
什么是技術(shù)負(fù)責(zé)人
與軟件工程中的許多頭銜一樣,“技術(shù)負(fù)責(zé)人”缺乏一個(gè)統(tǒng)一的定義。我能做的最好的事情就是借鑒我自己的經(jīng)驗(yàn)和其他人的經(jīng)驗(yàn)。
作為技術(shù)負(fù)責(zé)人,我的工作是繼續(xù)編寫代碼,但要承擔(dān)額外的責(zé)任。即做好團(tuán)隊(duì)和管理者的銜接,審查我們的功能交付計(jì)劃、處理項(xiàng)目管理過程的諸多細(xì)節(jié)。
盡管我不是最資深的人,但我可以成為技術(shù)負(fù)責(zé)人,因?yàn)槲以敢獠⑶夷軌虺袚?dān)這個(gè)角色的責(zé)任,而團(tuán)隊(duì)的其他成員更感興趣的是專注于他們正在編寫的軟件。
當(dāng)我在 Rent the Runway (一家公司)的團(tuán)隊(duì)創(chuàng)建我們的工程職業(yè)發(fā)展路徑時(shí),我們有意識(shí)地選擇將技術(shù)負(fù)責(zé)人的角色定義為:工程師可以在職業(yè)生涯中的許多點(diǎn),而不是特定級別上承擔(dān)的事務(wù)。
我們采取這種策略是因?yàn)槲覀冋J(rèn)識(shí)到,隨著團(tuán)隊(duì)的變化和發(fā)展,技術(shù)負(fù)責(zé)人的角色可能由許多不同階段的工程師擔(dān)任,并且可能會(huì)從一個(gè)工程師傳遞到另一個(gè)工程師身上,無需任何一個(gè)人改變他的職能或工作級別。
技術(shù)負(fù)責(zé)人在公司與公司之間,甚至在公司內(nèi)部的團(tuán)隊(duì)與團(tuán)隊(duì)之間可能并不完全相同。我們從標(biāo)題中知道,它既是技術(shù)職位又是領(lǐng)導(dǎo)角色。它通常是臨時(shí)的職責(zé),而不是一個(gè)永久的頭銜。
所以,綜上所述:什么是技術(shù)負(fù)責(zé)人?這是我們在 Rent the Runway 的口徑:
Rent the Runway 關(guān)于技術(shù)負(fù)責(zé)人的描述
技術(shù)負(fù)責(zé)人不是職級上的一個(gè)點(diǎn),而是任何工程師在達(dá)到高級水平后都可能承擔(dān)的一系列職責(zé)。
這個(gè)角色可能包括也可能不包括人員管理,但如果包括,技術(shù)負(fù)責(zé)人應(yīng)該按照 RTR 原則管理這些團(tuán)隊(duì)成員。這些標(biāo)準(zhǔn)包括:
? 定期(每周)1-1 接觸 ? 關(guān)于職業(yè)發(fā)展、目標(biāo)進(jìn)展的定期反饋:需要改進(jìn)的地方,并根據(jù)表現(xiàn)進(jìn)行表揚(yáng) ? 在各種信息中確定成員的發(fā)展方向,通過特定項(xiàng)目、外部學(xué)習(xí)或額外指導(dǎo)幫助他們在這些領(lǐng)域成長
如果技術(shù)負(fù)責(zé)人不直接管理,他們?nèi)匀恍枰獮閳F(tuán)隊(duì)的其他成員提供指導(dǎo)和幫助。
技術(shù)負(fù)責(zé)人如何成為一名強(qiáng)大的技術(shù)項(xiàng)目經(jīng)理?他們通過有效委派而非微操管理來實(shí)現(xiàn)這一目標(biāo)。
他們關(guān)注整個(gè)團(tuán)隊(duì)的生產(chǎn)力,努力增加團(tuán)隊(duì)產(chǎn)出產(chǎn)品的影響力。他們有權(quán)為團(tuán)隊(duì)做出獨(dú)立決策,并正在學(xué)習(xí)如何處理麻煩的管理和領(lǐng)導(dǎo)情景。他們還在學(xué)習(xí)如何有效地與產(chǎn)品、分析以及其他業(yè)務(wù)領(lǐng)域的同事合作。
技術(shù)負(fù)責(zé)人還寫代碼嗎
正如 Patrick Kua 在他的書《Talking with Tech Leads》中的描述:負(fù)責(zé)(軟件)開發(fā)團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人,至少花費(fèi) 30% 的時(shí)間與團(tuán)隊(duì)一起編寫代碼。
技術(shù)負(fù)責(zé)人的位置更像是技術(shù)型的項(xiàng)目經(jīng)理,需要在更大范圍內(nèi)利用他們的專業(yè)知識(shí),促使整個(gè)團(tuán)隊(duì)變得更好。他們可以做出獨(dú)立的決策,并在團(tuán)隊(duì)與其他非技術(shù)團(tuán)隊(duì)的協(xié)調(diào)方面發(fā)揮重要作用。你會(huì)注意到這里沒有特定的技術(shù)向工作。這是一個(gè)高級工程師職位,但將技術(shù)負(fù)責(zé)人等同于團(tuán)隊(duì)中最優(yōu)秀或最有經(jīng)驗(yàn)的工程師是錯(cuò)誤的。
沒有其他人的參與,你就無法領(lǐng)導(dǎo)。人際交往能力是我們要求新的技術(shù)負(fù)責(zé)人需要強(qiáng)化的地方,甚至優(yōu)先于技術(shù)專長。與此同時(shí),技術(shù)負(fù)責(zé)人將致力于一項(xiàng)新技術(shù)技能學(xué)習(xí):項(xiàng)目管理。分解項(xiàng)目的工作與設(shè)計(jì)系統(tǒng)的工作有很多相似之處,即使對于不想管理他人的工程師來說,學(xué)習(xí)這項(xiàng)技能也很有價(jià)值。
如果你發(fā)現(xiàn)自己處于技術(shù)負(fù)責(zé)人的位置,那么恭喜你!有人認(rèn)為你具備成為團(tuán)隊(duì)關(guān)鍵人物的條件?,F(xiàn)在是學(xué)習(xí)一些新技能的時(shí)候了!
成為技術(shù)負(fù)責(zé)人
技術(shù)負(fù)責(zé)人是一種在未授權(quán)狀態(tài)下,練習(xí)影響力的機(jī)會(huì)。作為技術(shù)負(fù)責(zé)人,我正在領(lǐng)導(dǎo)一個(gè)團(tuán)隊(duì),但我們都向同一個(gè)技術(shù)經(jīng)理匯報(bào)。因此,我不僅要影響我的同事,還要影響我的經(jīng)理,以確保我們優(yōu)先聚焦正確的工作。
在我成為技術(shù)負(fù)責(zé)人后,需要扮演的第一個(gè)角色是:停止當(dāng)前所有功能開發(fā)并專注于技術(shù)債務(wù)。這頗具挑戰(zhàn)。我很清楚,“技術(shù)債務(wù)”已經(jīng)拖了太久了。部署新代碼很困難,維護(hù)現(xiàn)有的服務(wù)成本昂貴,隨時(shí)需要待命的 on call 令人難受。
我相信我們需要慢下來才能在未來走得快。然而,這對于想要編寫有趣新功能的其他開發(fā)人員,或我的經(jīng)理來說并不容易,他們有來自業(yè)務(wù)方不斷的需求。
我通過聚焦不同成員的不同利益點(diǎn)來推銷這個(gè)想法。對于一些團(tuán)隊(duì)成員來說,它是為了提供更可靠的服務(wù);對于另一些人來說說,它能改進(jìn)迭代速度;而對于其他人來說,它是為了減少隨叫隨到的負(fù)擔(dān),以便他們可以睡個(gè)好覺。
在與我的經(jīng)理交談時(shí),我強(qiáng)調(diào)它減少了維護(hù)開銷。這意味著我們在未來可以上線更多的功能。
技術(shù)負(fù)責(zé)人需要改變關(guān)注點(diǎn)
現(xiàn)在工作不再是關(guān)于我的。不再是聚焦于最具技術(shù)挑戰(zhàn)性的想法或最有趣的項(xiàng)目;相反,需要更關(guān)注我的團(tuán)隊(duì)。我如何賦予他們權(quán)力?我如何消除阻礙他們前進(jìn)的障礙?
進(jìn)行重構(gòu)或?qū)懸恍┬碌牧钊伺d奮的功能能彰顯我的技術(shù)實(shí)力,也會(huì)更有趣。但當(dāng)時(shí)團(tuán)隊(duì)需要的是解決技術(shù)債務(wù)以提高維護(hù)效率。
最終,該計(jì)劃取得了令人難以置信的成功。團(tuán)隊(duì)將 on call 警報(bào)的數(shù)量減少了 50%。在接下來的一個(gè)季度中,我們能夠完成的上線功能幾乎翻了一番。
優(yōu)秀技術(shù)負(fù)責(zé)人都知道的技巧
你是技術(shù)負(fù)責(zé)人意味著你對軟件有所了解,并且你的經(jīng)理認(rèn)為你足夠成熟,可以承擔(dān)更大的項(xiàng)目責(zé)任。成為一名優(yōu)秀技術(shù)負(fù)責(zé)人的最大訣竅在于:愿意擺脫代碼并弄清楚如何平衡你的技術(shù)和團(tuán)隊(duì)所需。你必須停止依賴你的舊技能,開始學(xué)習(xí)一些新技能:學(xué)習(xí)平衡的藝術(shù)。
從現(xiàn)在開始,無論你在職業(yè)生涯中走到哪里,平衡都可能成為你的核心挑戰(zhàn)之一。如果你想對你的工作有自主權(quán),如果你想自由選擇你什么時(shí)候工作,你必須掌握你的時(shí)間和掌握如何使用它。
糟糕的是,你經(jīng)常需要在擅長且喜歡(例如編寫代碼)與不擅長事務(wù)之間取得平衡。人類更喜歡他們已經(jīng)掌握的活動(dòng),所以當(dāng)你不得不花更少的時(shí)間在熟悉的活動(dòng)上,轉(zhuǎn)而需要學(xué)習(xí)新事物時(shí),你會(huì)感覺很不舒服。
在項(xiàng)目管理和技術(shù)交付之間取得平衡是非常困難的。有些時(shí)候你是安排事務(wù)的人,有些時(shí)候你是被安排的人。通過反復(fù)嘗試,你需要學(xué)會(huì)如何管理你的時(shí)間,為自己提供適當(dāng)大小的工作窗口。
最糟糕的情況是讓自己被隨機(jī)拉進(jìn)會(huì)議。如果你每小時(shí)都被會(huì)議打斷,那么很難進(jìn)入編寫代碼的最佳狀態(tài)。即使經(jīng)過精心安排,你也很少會(huì)有時(shí)間花幾天時(shí)間專注于編碼問題。
希望你之前已經(jīng)學(xué)會(huì)了一些技巧來幫助你分解你自己的工作,這樣你就不需要花費(fèi)多天的精力來完成技術(shù)任務(wù)。
你還知道,給你的團(tuán)隊(duì)制定一個(gè)時(shí)間表很重要。讓他們能夠長時(shí)間專注于開發(fā),他們需要花幾天時(shí)間專注于編碼解決問題。領(lǐng)導(dǎo)力的一部分是協(xié)調(diào)其他利益相關(guān)者,比如你的上級和產(chǎn)品經(jīng)理尊重團(tuán)隊(duì)的重點(diǎn),并設(shè)置對團(tuán)隊(duì)成員來說不會(huì)過于緊湊的會(huì)面。
技術(shù)負(fù)責(zé)人入門
假設(shè)你正與一名產(chǎn)品經(jīng)理以及其他四名工程師組成的團(tuán)隊(duì)合作,進(jìn)行為期數(shù)周的大型工作以發(fā)布新特性。技術(shù)負(fù)責(zé)人在此場景中承擔(dān)多項(xiàng)職責(zé),具體取決于你在項(xiàng)目生命周期中的位置。當(dāng)然,你需要編寫一些代碼并做出一些技術(shù)決策。但這只是你將扮演的角色之一,甚至可能不是最重要的角色。
技術(shù)負(fù)責(zé)人的主要角色
作為技術(shù)負(fù)責(zé)人,你的首要任務(wù)是對工作有一個(gè)寬泛的認(rèn)知,以便你保持項(xiàng)目的進(jìn)展。從組織和規(guī)劃需要自己編寫的代碼,到組織和領(lǐng)導(dǎo)整個(gè)項(xiàng)目,該如何進(jìn)行?
系統(tǒng)架構(gòu)師和業(yè)務(wù)分析師
在系統(tǒng)架構(gòu)和業(yè)務(wù)分析的角色中,你識(shí)別并確定關(guān)鍵系統(tǒng)需要做的轉(zhuǎn)變,以及需要構(gòu)建的關(guān)鍵功能,以便能夠交付即將開展的項(xiàng)目。這里的目標(biāo)是為估算工作量和排序工作優(yōu)先級提供一些參考。
你不需要完美地識(shí)別項(xiàng)目的每一個(gè)元素,但花時(shí)間思考與項(xiàng)目相關(guān)的外部因素以及可能的問題是很有價(jià)值的。
這個(gè)角色要求你對系統(tǒng)的整體架構(gòu)有很好的了解,并對如何設(shè)計(jì)復(fù)雜的軟件有深刻的理解。它可能還要求你能夠理解業(yè)務(wù)需求并將其轉(zhuǎn)化為代碼。
項(xiàng)目規(guī)劃師
項(xiàng)目規(guī)劃師將工作分解為粗略的可交付成果。戴上這頂帽子,你需要找到分解工作的有效方法,以便團(tuán)隊(duì)可以高效工作。這里的部分挑戰(zhàn)是盡可能多地并行完成富有成效的工作。
這可能很困難,因?yàn)槟憧赡芰?xí)慣于只考慮自己的工作,而不是一群人的工作。找到工作中能夠抽象出來打上勾的活動(dòng),是實(shí)現(xiàn)并行工作的地方是關(guān)鍵。在這個(gè)階段,你需要收集團(tuán)隊(duì)專家的意見,并與深入了解軟件受影響部分的人交談,以便他們可以在此處提供詳細(xì)信息。
作為此過程的一部分,你還需要確定優(yōu)先級。哪些部分是關(guān)鍵的,哪些是優(yōu)先級沒那么高的?重要部分如何盡早處理?
軟件開發(fā)人員和團(tuán)隊(duì)負(fù)責(zé)人
軟件開發(fā)人員和團(tuán)隊(duì)負(fù)責(zé)人編寫代碼、交流遇到的挑戰(zhàn),進(jìn)行相應(yīng)工作的委派。
隨著項(xiàng)目的推進(jìn),其他人那里出現(xiàn)了意想不到的問題。有時(shí),技術(shù)負(fù)責(zé)人很想勇敢地自己克服這些障礙,加班加點(diǎn)以完成所有工作。作為技術(shù)負(fù)責(zé)人,你應(yīng)該繼續(xù)編寫代碼,但不要寫太多。即使你很想自己解決這個(gè)問題,你也應(yīng)當(dāng)先和團(tuán)隊(duì)溝通。
你的產(chǎn)品經(jīng)理應(yīng)該盡早了解任何可能的風(fēng)險(xiǎn)。如果有必要,也可以尋求上級經(jīng)理的幫助。在一個(gè)健康的組織中,盡早提出問題并不是可恥的事或有負(fù)面反饋的事。
團(tuán)隊(duì)經(jīng)常出現(xiàn)問題,因?yàn)樗麄冊诋a(chǎn)品經(jīng)理愿意妥協(xié)的功能上過度開發(fā)。隨著大型項(xiàng)目接近交付日期,功能將有所妥協(xié)。
尋找委派工作的可能,特別是你自己沒時(shí)間處理它們。
從這些描述中可以看出,在成為技術(shù)負(fù)責(zé)人的過程中,你必須扮演軟件開發(fā)人員、系統(tǒng)架構(gòu)師、業(yè)務(wù)分析師和團(tuán)隊(duì)領(lǐng)導(dǎo)者的角色。
他們知道什么時(shí)候該單槍匹馬,什么時(shí)候?qū)⒐ぷ魑山o他人。
幸運(yùn)的是,你不必一次完成所有這些任務(wù)。一開始可能會(huì)不舒服,但你會(huì)在時(shí)間和練習(xí)之間找到平衡。
Ask CTO
Q:
我認(rèn)為成為一名技術(shù)負(fù)責(zé)人會(huì)很棒,但我的經(jīng)理希望我追蹤有關(guān)項(xiàng)目狀態(tài)的所有細(xì)節(jié),并告訴她什么時(shí)候要做什么事。我真的很討厭這個(gè)狀態(tài),為什么沒有人告訴我技術(shù)負(fù)責(zé)人職位如此糟糕?
A:
我知道,所有這些新的事物都很難。我喜歡稱這個(gè)問題為“成功的考驗(yàn)”。雖然在軟件開發(fā)職業(yè)的許多階段都是如此,但技術(shù)負(fù)責(zé)人階段無疑是考驗(yàn)最大的。很少有技術(shù)負(fù)責(zé)人獲得加薪或職位提升,而且第一次擔(dān)任技術(shù)負(fù)責(zé)人通常不知道這個(gè)位置有多難。
正如我在職位定義中提到的,許多公司認(rèn)為這更像是一個(gè)臨時(shí)頭銜,是你在職業(yè)生涯中可能多次承擔(dān)和擺脫的職責(zé)。它可能是晉升到更高級別所必需的墊腳石,但它通常不是一個(gè)能帶來即時(shí)、有形獎(jiǎng)勵(lì)的里程碑。
為什么技術(shù)負(fù)責(zé)人角色的挑戰(zhàn)這么大?
技術(shù)負(fù)責(zé)人的職責(zé)范圍比個(gè)人開發(fā)職位的高級工程師要廣泛得多。技術(shù)負(fù)責(zé)人被要求幫助構(gòu)建一個(gè)項(xiàng)目,然后完成實(shí)際規(guī)劃工作的步驟。技術(shù)負(fù)責(zé)人應(yīng)確保團(tuán)隊(duì)完全理解項(xiàng)目要求。工作被拆解且計(jì)劃得當(dāng),團(tuán)隊(duì)有效且表現(xiàn)良好。所有這些都不一定有過管理授權(quán),通常也無任何培訓(xùn)。
而且,實(shí)際上,大多數(shù)經(jīng)理都希望他們的技術(shù)負(fù)責(zé)人繼續(xù)編寫幾乎與他們擔(dān)任領(lǐng)導(dǎo)角色之前一樣多的代碼。這是職責(zé)和工作范圍的單向增加。如果你是第一次擔(dān)任技術(shù)負(fù)責(zé)人,那么你的確會(huì)很忙。
反過來想,他們給了你考驗(yàn)!好的消息是,承擔(dān)這種責(zé)任最終會(huì)讓你變得更強(qiáng)大,并為你提供在職業(yè)生涯中前進(jìn)所需的技能。它不會(huì)總是像現(xiàn)在看起來那么困難。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 sumchina520@foxmail.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。