Member-only story
軟體工程師的修煉與成長 (5) — 1:1該談什麼才能讓職涯起飛?

選擇比努力重要
以前我寫過一篇文章叫「do the right thing and do the thing right」,其中的核心概念就是「做對的事遠比把事情做好重要」。換句話說,意思就是「選擇比努力重要」。如果一開始就選錯了事情做,不管再努力都是徒勞。(但這不代表努力不重要,選對事情後一樣是要付出努力才有意義。)
現在回頭看我剛進D社的第一年,我覺得我沒能產生很大貢獻的原因其實就是我選錯事情做了。更糟的是,沒人跟我說我選錯事情了。
當時團隊還很小,每個人都對這個產品本身很有熱情和想法。作為新加入還在摸索的我,則是對於學新東西和在產品中嘗試新想法很有興趣,至於具體要做哪一部分,我都是來者不拒。這樣做了一年多,結果就是做了很多很雜的事情,但其實沒有累積什麼夠大夠重要的成果下來。
前面提過,做產品因為是在最上層,很多商業邏輯都是針對產品本身特別寫的。對於軟體工程師來說,做產品也相對地比較難累積能重複使用的技術能力。這時也讓我開始認真思考,如果一直做產品,長期來說這似乎不是一件能有讓我有累積和複利效果的領域。如果我之後要去別的公司,我學到的東西有多少能帶走呢?
新機會出現
就在我開始想要把重心轉往更底層發展時,新機會就剛好出現了。這時團隊發現「搜尋」這個功能需要大大改進,從前端到最底層的索引和排序都要重做。當時已經有一個L5的資深工程師H在做最底層的索引引擎了,但因為搜尋本身是個夠大夠複雜的領域,一個人是絕對不夠的,所以我跟manager聊一聊就決定加入H一起做搜尋。
剛開始時,因為H已經在做底層,所以我就從前後端開始,跟設計師一起合作把整個操作體驗重新設計。這段時間算是我開始覺得比較有貢獻的時候了,除了基本的搜尋功能外,我也提了一些新想法,即使不碰索引引擎也能有效改進整體的結果。
但後來不久,H就離開了團隊。我發現這是個好機會讓我接觸基礎建設層,就自告奮勇把底層的系統一起接下來。就這樣過了一段時間,我自然的就變成整個搜尋的owner,除了前後端和基礎建設,後來也把機器學習的方法引進來改進搜尋結果的排序。這段時間我算是做得蠻充實而且開心的,從本來對搜尋一無所知到把整個stack從頭到尾建立起來。
就這樣又過了一年,又到了績效考核的時候。這一年我覺得自己有明顯的成長,對團隊貢獻也大了許多,應該是超過L4的expectation了吧?說不定還能升職呢?
結果出來後,又是「meet expectation」,當然也沒有升職。
我對於這樣的結果感到失望,但更多的是困惑。我覺得我一定漏了什麼重要的事,或是根本沒搞清楚遊戲規則。為什麼我自以為做了很多貢獻但卻沒有被看見?到底做什麼事才有 “impact”?
直球對決
就在這個時候,團隊裡來了一個新的manager R,我原本的manager也因此決定轉回IC (Individual Contributor) 不做manager了,就讓我report給R。
R給我的第一印象不是很好,第一次見面的1:1 (1 on 1)上,感覺只是照本宣科了問了一些問題來認識我。甚至還生硬地問出「你最喜歡的烘培食品是什麼?」這種manager 101的問題,有種他第一天當manager的感覺。經歷過前兩次績效考核的失望和困惑後,我決定趁這次換manager的機會跟R直接了當的談我的表現和職涯的問題,如果得不到滿意的答案我就打算離開了。
R雖然還沒來多久,但也是挺願意跟我攤開來談。他很快點出我雖然可以一個人抵多個人用,但完全沒表現出領導能力。L4的中階工程師和L5的資深工程師最大的差別不是在程式能寫得多快多好的技術能力,而是能不能帶領幾個人一起完成一個專案解決一個大又模糊的問題。畢竟一個人再厲害,也是有極限的,而領導能力可以驅動一群人一起完成更大的事情。這意味著,我面對一個問題時,不是自己做完就好,而是要把模糊的問題轉化成具體又清晰的解決方案,然後切割成「別人」能理解和實做的小任務,畫出時間線,讓多人一起合作完成在一定時間內完成。
聽到這個我只覺得有點無奈。一方面是前一個manager完全沒給我這麼明確的feedback,讓我完全努力錯方向了。另一方面是,我覺得我也沒得到機會可以展現領導能力,並不是我沒有這個能力。
具體的說,我根本不應該想要一個人把搜尋整個扛下來。而是要把跟搜尋有關的最重要、最需要解決的問題搞清楚,提出大致的解決方向,寫下來並分享出來讓manager和整個團隊了解這個領域的scope有多大以及需要多少人來一起合作,然後說服manager增添人手跟我一起合作。
有了這次攤牌的經驗後,我突然發現跟manager直球對決非常有用。不只讓我清楚地知道我不足的地方,也有明確的方向可以改進。從這之後,我就開始改變我跟manager…