注:沒有特別聲明,文中的“我”都指原作者 Camille Fournier

背景介紹

多年前,我成為技術負責人。在這之前我已經晉升為高級工程師,和其他幾位高級工程師在一個小團隊中工作。我對被提升為技術負責人有點令人驚訝,因為無論是頭銜還是年限,我都不是團隊中最資深的人。

回想起來,我有一些優(yōu)勢。首先,我不僅僅是一名優(yōu)秀的工程師,還是一個很好的溝通者。我可以寫出清晰的文檔,我可以在思維不短路的情況下進行演示,我可以與不同團隊、不同角色的人交談并解釋發(fā)生了什么。

我也擅長優(yōu)先級排序。我渴望推進工作并搞清楚下一步需要做什么。最后,我愿意收拾殘局,做能做的事情來取得進展。我認為,這種務實的緊迫性(pragmatic urgency)是決定性因素。畢竟,技術負責人是一個領導職位,即使它不是管理職位。

(譯者注:領導(lead)意味著需要做出關鍵性決策,對團隊的業(yè)務發(fā)展負責。管理(manage)意味著塑造團隊,有權決定團隊的構成。一般而言,技術負責人是技術管理者與其他成員的橋梁。兩者的進一步區(qū)別,可以參見本系列 tech lead 的第三部分。)

我見過技術負責人陷入困境。

項目負責人和項目技術負責人的區(qū)別現場帶班記錄,項目部負責人帶班記錄?

一個印象深刻的案例:他是一位了不起的工程師,能編寫出色的代碼,但討厭與人交談,并且經常被技術細節(jié)分心。我看著他一個接一個地陷入困境。與此同時,產品經理利用他的缺位,促使團隊的其他成員將注意力集中在交付設計不佳又過于激進的功能。

項目一團糟,技術負責人在做什么?他追求下一次重構,因為他確信問題完全出在代碼的結構上。你可能熟悉這個故事,因為它無處不在。

這里存在一種誤區(qū):認為技術負責人應當由這樣的人擔當,他們是最有經驗的工程師、能夠處理最復雜的功能或編寫最好的代碼的工程師。即使是有經驗的經理也會犯這個錯。專注于自己的代碼細節(jié)不是技術負責人的該做的事。

技術負責人的工作到底是什么?我們對這個人有什么期望?

什么是技術負責人

與軟件工程中的許多頭銜一樣,“技術負責人”缺乏一個統(tǒng)一的定義。我能做的最好的事情就是借鑒我自己的經驗和其他人的經驗。

作為技術負責人,我的工作是繼續(xù)編寫代碼,但要承擔額外的責任。即做好團隊和管理者的銜接,審查我們的功能交付計劃、處理項目管理過程的諸多細節(jié)。

盡管我不是最資深的人,但我可以成為技術負責人,因為我愿意并且能夠承擔這個角色的責任,而團隊的其他成員更感興趣的是專注于他們正在編寫的軟件。

當我在 Rent the Runway (一家公司)的團隊創(chuàng)建我們的工程職業(yè)發(fā)展路徑時,我們有意識地選擇將技術負責人的角色定義為:工程師可以在職業(yè)生涯中的許多點,而不是特定級別上承擔的事務

我們采取這種策略是因為我們認識到,隨著團隊的變化和發(fā)展,技術負責人的角色可能由許多不同階段的工程師擔任,并且可能會從一個工程師傳遞到另一個工程師身上,無需任何一個人改變他的職能或工作級別。

技術負責人在公司與公司之間,甚至在公司內部的團隊與團隊之間可能并不完全相同。我們從標題中知道,它既是技術職位又是領導角色。它通常是臨時的職責,而不是一個永久的頭銜。

所以,綜上所述:什么是技術負責人?這是我們在 Rent the Runway 的口徑:

Rent the Runway 關于技術負責人的描述

技術負責人不是職級上的一個點,而是任何工程師在達到高級水平后都可能承擔的一系列職責。

這個角色可能包括也可能不包括人員管理,但如果包括,技術負責人應該按照 RTR 原則管理這些團隊成員。這些標準包括:

? 定期(每周)1-1 接觸 ? 關于職業(yè)發(fā)展、目標進展的定期反饋:需要改進的地方,并根據表現進行表揚 ? 在各種信息中確定成員的發(fā)展方向,通過特定項目、外部學習或額外指導幫助他們在這些領域成長

如果技術負責人不直接管理,他們仍然需要為團隊的其他成員提供指導和幫助。

技術負責人如何成為一名強大的技術項目經理?他們通過有效委派而非微操管理來實現這一目標

他們關注整個團隊的生產力,努力增加團隊產出產品的影響力。他們有權為團隊做出獨立決策,并正在學習如何處理麻煩的管理和領導情景。他們還在學習如何有效地與產品、分析以及其他業(yè)務領域的同事合作。

技術負責人還寫代碼嗎

正如 Patrick Kua 在他的書《Talking with Tech Leads》中的描述:負責(軟件)開發(fā)團隊的技術負責人,至少花費 30% 的時間與團隊一起編寫代碼。

技術負責人的位置更像是技術型的項目經理,需要在更大范圍內利用他們的專業(yè)知識,促使整個團隊變得更好。他們可以做出獨立的決策,并在團隊與其他非技術團隊的協(xié)調方面發(fā)揮重要作用。你會注意到這里沒有特定的技術向工作。這是一個高級工程師職位,但將技術負責人等同于團隊中最優(yōu)秀或最有經驗的工程師是錯誤的。

沒有其他人的參與,你就無法領導。人際交往能力是我們要求新的技術負責人需要強化的地方,甚至優(yōu)先于技術專長。與此同時,技術負責人將致力于一項新技術技能學習:項目管理。分解項目的工作與設計系統(tǒng)的工作有很多相似之處,即使對于不想管理他人的工程師來說,學習這項技能也很有價值。

如果你發(fā)現自己處于技術負責人的位置,那么恭喜你!有人認為你具備成為團隊關鍵人物的條件。現在是學習一些新技能的時候了!

成為技術負責人

技術負責人是一種在未授權狀態(tài)下,練習影響力的機會。作為技術負責人,我正在領導一個團隊,但我們都向同一個技術經理匯報。因此,我不僅要影響我的同事,還要影響我的經理,以確保我們優(yōu)先聚焦正確的工作。

在我成為技術負責人后,需要扮演的第一個角色是:停止當前所有功能開發(fā)并專注于技術債務。這頗具挑戰(zhàn)。我很清楚,“技術債務”已經拖了太久了。部署新代碼很困難,維護現有的服務成本昂貴,隨時需要待命的 on call 令人難受。

我相信我們需要慢下來才能在未來走得快。然而,這對于想要編寫有趣新功能的其他開發(fā)人員,或我的經理來說并不容易,他們有來自業(yè)務方不斷的需求。

我通過聚焦不同成員的不同利益點來推銷這個想法。對于一些團隊成員來說,它是為了提供更可靠的服務;對于另一些人來說說,它能改進迭代速度;而對于其他人來說,它是為了減少隨叫隨到的負擔,以便他們可以睡個好覺。

在與我的經理交談時,我強調它減少了維護開銷。這意味著我們在未來可以上線更多的功能。

技術負責人需要改變關注點

現在工作不再是關于我的。不再是聚焦于最具技術挑戰(zhàn)性的想法或最有趣的項目;相反,需要更關注我的團隊。我如何賦予他們權力?我如何消除阻礙他們前進的障礙?

進行重構或寫一些新的令人興奮的功能能彰顯我的技術實力,也會更有趣。但當時團隊需要的是解決技術債務以提高維護效率。

最終,該計劃取得了令人難以置信的成功。團隊將 on call 警報的數量減少了 50%。在接下來的一個季度中,我們能夠完成的上線功能幾乎翻了一番。

優(yōu)秀技術負責人都知道的技巧

你是技術負責人意味著你對軟件有所了解,并且你的經理認為你足夠成熟,可以承擔更大的項目責任。成為一名優(yōu)秀技術負責人的最大訣竅在于:愿意擺脫代碼并弄清楚如何平衡你的技術和團隊所需。你必須停止依賴你的舊技能,開始學習一些新技能:學習平衡的藝術。

從現在開始,無論你在職業(yè)生涯中走到哪里,平衡都可能成為你的核心挑戰(zhàn)之一。如果你想對你的工作有自主權,如果你想自由選擇你什么時候工作,你必須掌握你的時間和掌握如何使用它。

糟糕的是,你經常需要在擅長且喜歡(例如編寫代碼)與不擅長事務之間取得平衡。人類更喜歡他們已經掌握的活動,所以當你不得不花更少的時間在熟悉的活動上,轉而需要學習新事物時,你會感覺很不舒服。

在項目管理和技術交付之間取得平衡是非常困難的。有些時候你是安排事務的人,有些時候你是被安排的人。通過反復嘗試,你需要學會如何管理你的時間,為自己提供適當大小的工作窗口。

最糟糕的情況是讓自己被隨機拉進會議。如果你每小時都被會議打斷,那么很難進入編寫代碼的最佳狀態(tài)。即使經過精心安排,你也很少會有時間花幾天時間專注于編碼問題。

希望你之前已經學會了一些技巧來幫助你分解你自己的工作,這樣你就不需要花費多天的精力來完成技術任務。

你還知道,給你的團隊制定一個時間表很重要。讓他們能夠長時間專注于開發(fā),他們需要花幾天時間專注于編碼解決問題。領導力的一部分是協(xié)調其他利益相關者,比如你的上級和產品經理尊重團隊的重點,并設置對團隊成員來說不會過于緊湊的會面。

技術負責人入門

假設你正與一名產品經理以及其他四名工程師組成的團隊合作,進行為期數周的大型工作以發(fā)布新特性。技術負責人在此場景中承擔多項職責,具體取決于你在項目生命周期中的位置。當然,你需要編寫一些代碼并做出一些技術決策。但這只是你將扮演的角色之一,甚至可能不是最重要的角色。

技術負責人的主要角色

作為技術負責人,你的首要任務是對工作有一個寬泛的認知,以便你保持項目的進展。從組織和規(guī)劃需要自己編寫的代碼,到組織和領導整個項目,該如何進行?

系統(tǒng)架構師和業(yè)務分析師

在系統(tǒng)架構和業(yè)務分析的角色中,你識別并確定關鍵系統(tǒng)需要做的轉變,以及需要構建的關鍵功能,以便能夠交付即將開展的項目。這里的目標是為估算工作量和排序工作優(yōu)先級提供一些參考。

你不需要完美地識別項目的每一個元素,但花時間思考與項目相關的外部因素以及可能的問題是很有價值的。

這個角色要求你對系統(tǒng)的整體架構有很好的了解,并對如何設計復雜的軟件有深刻的理解。它可能還要求你能夠理解業(yè)務需求并將其轉化為代碼。

項目規(guī)劃師

項目規(guī)劃師將工作分解為粗略的可交付成果。戴上這頂帽子,你需要找到分解工作的有效方法,以便團隊可以高效工作。這里的部分挑戰(zhàn)是盡可能多地并行完成富有成效的工作。

這可能很困難,因為你可能習慣于只考慮自己的工作,而不是一群人的工作。找到工作中能夠抽象出來打上勾的活動,是實現并行工作的地方是關鍵。在這個階段,你需要收集團隊專家的意見,并與深入了解軟件受影響部分的人交談,以便他們可以在此處提供詳細信息。

作為此過程的一部分,你還需要確定優(yōu)先級。哪些部分是關鍵的,哪些是優(yōu)先級沒那么高的?重要部分如何盡早處理?

軟件開發(fā)人員和團隊負責人

軟件開發(fā)人員和團隊負責人編寫代碼、交流遇到的挑戰(zhàn),進行相應工作的委派。

隨著項目的推進,其他人那里出現了意想不到的問題。有時,技術負責人很想勇敢地自己克服這些障礙,加班加點以完成所有工作。作為技術負責人,你應該繼續(xù)編寫代碼,但不要寫太多。即使你很想自己解決這個問題,你也應當先和團隊溝通。

你的產品經理應該盡早了解任何可能的風險。如果有必要,也可以尋求上級經理的幫助。在一個健康的組織中,盡早提出問題并不是可恥的事或有負面反饋的事。

團隊經常出現問題,因為他們在產品經理愿意妥協(xié)的功能上過度開發(fā)。隨著大型項目接近交付日期,功能將有所妥協(xié)。

尋找委派工作的可能,特別是你自己沒時間處理它們。


從這些描述中可以看出,在成為技術負責人的過程中,你必須扮演軟件開發(fā)人員、系統(tǒng)架構師、業(yè)務分析師和團隊領導者的角色。

他們知道什么時候該單槍匹馬,什么時候將工作委派給他人。

幸運的是,你不必一次完成所有這些任務。一開始可能會不舒服,但你會在時間和練習之間找到平衡。

Ask CTO

Q:

我認為成為一名技術負責人會很棒,但我的經理希望我追蹤有關項目狀態(tài)的所有細節(jié),并告訴她什么時候要做什么事。我真的很討厭這個狀態(tài),為什么沒有人告訴我技術負責人職位如此糟糕?

A:

我知道,所有這些新的事物都很難。我喜歡稱這個問題為“成功的考驗”。雖然在軟件開發(fā)職業(yè)的許多階段都是如此,但技術負責人階段無疑是考驗最大的。很少有技術負責人獲得加薪或職位提升,而且第一次擔任技術負責人通常不知道這個位置有多難。

正如我在職位定義中提到的,許多公司認為這更像是一個臨時頭銜,是你在職業(yè)生涯中可能多次承擔和擺脫的職責。它可能是晉升到更高級別所必需的墊腳石,但它通常不是一個能帶來即時、有形獎勵的里程碑。

為什么技術負責人角色的挑戰(zhàn)這么大?

技術負責人的職責范圍比個人開發(fā)職位的高級工程師要廣泛得多。技術負責人被要求幫助構建一個項目,然后完成實際規(guī)劃工作的步驟。技術負責人應確保團隊完全理解項目要求。工作被拆解且計劃得當,團隊有效且表現良好。所有這些都不一定有過管理授權,通常也無任何培訓。

而且,實際上,大多數經理都希望他們的技術負責人繼續(xù)編寫幾乎與他們擔任領導角色之前一樣多的代碼。這是職責和工作范圍的單向增加。如果你是第一次擔任技術負責人,那么你的確會很忙。

反過來想,他們給了你考驗!好的消息是,承擔這種責任最終會讓你變得更強大,并為你提供在職業(yè)生涯中前進所需的技能。它不會總是像現在看起來那么困難。

版權聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 sumchina520@foxmail.com 舉報,一經查實,本站將立刻刪除。

相關新聞

聯(lián)系我們

聯(lián)系我們

400-9010-860

在線咨詢:點擊這里給我發(fā)消息

微信:85018612

商夢建站客服

工作時間:周一至周六

9:00-18:30,節(jié)假日休息

關注微信
關注微信
分享本頁
返回頂部