晉陞工程經理幾個月後,我選擇退回編程崗位的起點
「當你是一名程序員時,你只有一個高於你職位的老闆給你任務。當你是一名經理時,你可以收到一個老闆和你下面的幾個人給你的任務。老闆可以從頂端扼殺你,而下面的人會從底部掐住你。」
從普通編程崗位到工程經理,同僚會賀一句晉陞之喜;放棄工程經理回歸程序員起點,總有人會疑惑「你是怎麼想的?」……Nick McHardy 在一篇博文中記述了自己的這場開發者體驗之旅,他在擔任工程經理幾個月後,選擇放棄繼續前進,其半路掉頭回歸的決定在開發者中也引發了不小的討論。
作者 |Nick McHardy
譯者 | 虎說
責編 |仲培藝
出品 |CSDN(ID:CSDNNews)
以下為譯文:
我擔任工程經理已經有幾個月時間了,現在應該是回顧整個過程的最佳時機。對於一些人來說,下面的一些觀點可能是顯而易見的,但也並非都適用於所有情況,我希望能夠準確地描述自己的觀點。
首先先介紹一下我工作的經歷,我工作的公司在過去幾年經歷了幾次重組,但最近的一次可能對我來說影響最大。這是我第一次有機會擔任工程經理,從事人員管理工作。
過去的幾年中,我在該公司擔任的大多數角色都是設計解決方案的設計師或架構師。我習慣於與許多不同的利益相關者群體進行溝通並提供技術領導,即使我沒有意識到這一點。我在過去四年間,一直致力於開發和支持各種在線和數字平台及產品,因此我所在部門的核心職責並沒有真正發生重大變化。
最近重組的一個關鍵要素是,不再以項目的形式持續投入資源,而是作為長壽命產品來運營。
簡單起見,任命了六名新工程經理,其中一半是代理職務,我便位列其中。較之我此前的職務,這是很大的晉陞。我想我應該試一試這個「角色」,尤其是在高級管理人員的大力支持下,我還有機會學習新的技能。
在我的組織中,工程經理是管理工程團隊的人,團隊由開發人員、測試人員、運營人員以及解決方案設計人員組成。
我同意承擔這個角色的一些原因是:
我從未經歷過管理崗,想要掌握一套新的技能;
我對這個部門的每個人都非常了解,所以我能夠在同事的支持和尊重下「完成任務」;
這只是一個代理職務,所以如果我不喜歡,也就不會被困入其中;
我將負責管理四個關鍵平台領域的員工:分析、搜索、身份管理和內容運營,而且這四個平台我都很熟悉。
工程經理的職位很有意思,因為我們有很多高質量的工程師,但管理人員很少。所以,我會收到 13 份直接報告,而其他人則會有多達 35 份直接報告。僅僅看數字,管理 13 個人有點令人生畏,但實際上並不是每個人都是全職員工。我的團隊裡面有全職、外包和兼職,每種職員都有不同的要求,從績效管理和發展計划到合同續簽流程。
我之前從未見過的新流程包括:
批准請假、差旅和費用索賠(限額);
績效管理、工作計劃、個人發展計劃和評估;
一對一會議;
Timesheeting;
預算;
招聘;
……
一血:擁堵的日程表
我的工作一直被一個匪夷所思的日程表所支配,這對之前的我來說可以用不可思議來描述——我每天都會有 7 個小時的會議!老實講,「參加會議也是有錢拿的」這的確是事實,但這會也實在是太多了。
儘管我的日程已經如此緊湊,但我認為我想做的一件事就是與我的團隊中的每個成員進行一對一的對話。我想每兩周進行一次,持續長達一個小時,在那裡我會試著傾聽我的團隊,而我不說話。為了使這個時間更有價值,我會在交談過程中記筆記,每個一對一會話都有一個條目。其中一個原因是我不可能記住所有事情,而且因為我只是「代理經理」,如果需要我移交項目的話,我希望後來者可以很快熟悉整個項目的發展情況。此外,我的團隊成員也對此表示贊同。筆記中沒有寫入任何超級機密,因為其他人可能也具有管理訪問許可權,所以我在這麼操作時會非常謹慎。
有時你可以讓 1 對 1 對話更高效些:
如果你的團隊成員不需要,你也大可不必花費整整一小時;
如果定期會議是在假期,你需要重新安排;
你可以邊散步邊交談。場地要有創意,它並不總是在會議室里。
我學到了什麼
我很快發現,此前的技術經歷讓我在這個過程中如魚得水。我很喜歡在這裡或那裡涉足一些代碼,只是為了保持敏銳。這也是為什麼我在實際工作之外還有其他項目的原因之一。
工程經理的職位是純人員管理角色。這一切都是為了建立一個偉大的工程團隊,而不必自己做任何技術工作。這就給許多高級技術人員提出了一個問題:
什麼時候放棄編程並成為工程經理?
許多組織都有一個明確的技術軌道,一旦達到足夠高的水平,通常會被特殊對待。在技術方面,我仍在研究如何與首席工程師和首席科學家等角色合作。我認為對於我們很多人來說,做出這個決定是非常艱難的,因為一旦你達到一定的技術高度,除了學習新的語言或技術之外,很難取得進一步發展。
第一次被貼上「經理人」的標籤也是一種有趣的體驗,實際上,我花了很長時間來適應!在我作為工程經理五個月之後,我不得不做出決定。是選擇工程經理這個角色,還是回到我們的開發崗位?我有成功的機會嗎?
我最後的決定
我最終選擇了技術路線——不申請工程經理角色。你可能會問為什麼?
我花了一點時間去考慮這個問題,並不是因為自己懶到不想更新簡歷去申請工作!
以下是讓我作出選擇的幾個原因:
我沒有多少時間做繪圖或是隨處寫寫編碼(而這些是我真正喜歡的東西);
我喜歡在多個解決方案和產品上工作,並希望繼續下去;
我有很強的技術理解深度;
最主要的原因:我認為,憑藉我的技能,作為解決方案設計師/架構師會更好。實際上,我們確實需要有人來填補這個角色,將許多系統聯繫在一起,以提供這些知識,以確保我們在技術上保持一致,並且不會以浪費資源的方式遺漏或重複事物。因此,我實際上可以通過不申請工程經理角色來確保繼續解決方案架構師這一角色。
有時,你所工作的組織可能需要你出於戰略原因而擔任某個角色,但請記住:這是你的生活和事業,因此它必須為你工作。我相信我可以通過我的實質性立場實現這種平衡。
幫助公司培養人才是艱難的!但這並不意味著你不應該嘗試。解決系統或計算機的問題要比解決人們的問題容易得多(至少對我而言)。了解一個人的所有的細微差別和複雜性是一個挑戰,但是當你擁有一支積極進取的團隊時,一切都會變得更好。
如果你有機會親自管理人員,請務必試一試!在你嘗試之前,你可能並沒有真正理解所涉及的內容。有時我發現管理者這個角色也可能非常令人滿意:當你能解決人們的問題時,你可以對某人的職業生涯產生真正的影響。這是一個崇高的角色,並且需要很高的技能才能成為一個更優秀的領導者。我目前還沒到達那個高度,但也許有一天我也可以。
我對"技術"的認識
作為一個技術人員,你所處位置需要的領導力比你意識到的要多。這可能包括影響他人並將其帶到「船上」,讓他們參與進來,以及一直向他人學習。因為技術人員不僅僅需要更多關於技術上的硬實力也需要關於同理心、分析、溝通和影響他人的「軟」技能。如果你可以根據各種約束條件(時間、人員、技能、預算、績效可訪問性、規矩、政策)發明最佳解決方案,那麼你的團隊一定會更加團結且富有戰鬥力。
我還發現我喜歡與工程師打成一片,在擔任工程經理期間我會極力確保正在努力工作的團隊成員真正受到重視。沒有工程師社區文化,事情很難向前推進,這裡有很多門道,如果你想很高效地和工程師們一起工作,那就並不總是坐在工作場景中審查代碼或完成解決方案設計,還可能包括共進午餐或抽出時間玩棋盤遊戲等,類似的溝通場景會更有效率。相互尊重是一種重要的力量,當組織「進步」成為焦點時,往往會被忽視。
我找到的一些對我有用的方法:
我喜歡分享解決方案並說它是「我們的」,而不是說它是我的。這是事實,因為隨著解決方案的定義和發展,團隊一定會參與進來;
如果你打算在一個組織中呆很長時間,那麼專註於構建可持續的解決方案將大有裨益——自然沒有人想背負上從一個項目跳到另一個項目時留下的累累技術債務,保持運營團隊的參與是最重要的;
同時面對很多事情會帶來挑戰,但這意味著你可以更有效地做出決策,因為你了解更多情境;
平等地跨越高級管理層和工程團隊可能具有挑戰性,但也是有益的,因為你需要大多數人站在你這一邊;
在大量文檔(即使是正在進行的工作)中,保持開放和思維共享有助於構建完整性
Ta 說
這篇博文發出後,在開發人員當中引發了熱議,下面節選部分 Hacker News 上的評論和大家分享(https://news.ycombinator.com/item?id=19186657):
初級開發人員對這段經歷的看法:
我只是一名開發人員,我非常喜歡你的建議。
然而,根據我的經驗,我看到的工程經理人往往做了讓公司陷入困境的事情。他們無法被委託、信任,他們有時過於驕傲和傲慢,以至於不承認別人可以做他們正在做的事情。有時事情像權力遊戲一樣糟糕:如果我成長一點,他們會想要從我身上獲得更多。我認為工程經理如果想要有長期的發展,必須要懂得關注團隊實際的成長,而不是為了趕進度而一味壓迫開發人員去做事情。
高級開發人員對這段經歷的看法:
作為一名高級開發人員,我非常內向,而且我熟練掌握自己應有的技巧,這樣我才能夠深入研究那些深度的問題。我不需要關心團隊外的世界,也不需要關心我的隊友。作為個人貢獻者,你的成功在很大程度上取決於你貢獻的質量和頻率。
作為一名經理,需要更加關注團隊外部的事情而不是內部,你是團隊和其他外部的溝通官。
作為經理,你使用你編寫代碼的經驗,在開發人員碰壁時幫助他們找到正確的方向,引導他們進入正確的解決方案,並為他們提供他們可能甚至不知道的資源。也就是說,經理,你無需編寫任何代碼即可為代碼問題提供模糊的解決方案。你的編碼經驗允許你這樣做。但是你忽略了一點:代碼標準往往是高度主觀的。
即使你是一名工程經理,世界上仍有許多你無法控制的人。強有力的領導者應該積極主動地儘可能保護其團隊免於愚蠢,而不是讓他們在你既定的標準下做事。如果標準設定高,你的團隊成員會抱怨。沒有強大發展背景或弱軟技能的經理可能會更容易讓團隊滿意。記住你的團隊內部的職責,他們為你工作,而不是反過來。
作為經理,你應該做的事情是讓你的團隊比個人更有價值,從而讓團隊支持的產品創造更大的價值。因為如果你團隊把一款非常有潛力的產品搞砸,那麼你們有可能會被全部解僱。
資深高級開發人員對這段經歷的看法:
當我還是一名初級程序員(約 25 年前)時,我認為成為一名工程經理會很棒。有一天,一位資深程序員告訴我他曾經擔任過一段時間的經理。我很驚訝,我認為回到編碼崗位是一個倒退的行為。於是,我問他為什麼回去編程?
他的回答是:「當你是一名程序員時,你只有一個高於你職位的老闆給你任務。當你是一名經理時,你可以收到一個老闆和你下面的幾個人給你的任務。老闆可以從頂端扼殺你,而下面的人會從底部掐住你。」這段話對我來說很有意義。
對此,你怎麼看?歡迎在評論區參與討論,留下你的想法!
原文:https://nickmchardy.com/2019/02/on-being-an-engineering-manager.html
本文為 CSDN 翻譯,如需轉載,請註明來源出處。
新工具性能滿分令你驚艷?
辣雞產品毀你青春?
想賣安利為心儀項目瘋狂打 Call?
程序員眼裡容不得 bug,不過是想吐槽罷了!
「程序員硬核評測」專欄徵稿啦!
評你想評的!
熱 文推 薦
※2019 年備受爭議的 Facebook 能否走出去年的陰影?
※C+開發者怒了:這個無用的模塊設計最終會害死 C+!
TAG:CSDN |