你還想當軟體工程師啊(三)你能同時 senior 又 open-minded 嗎?

Denny
The Bayesian Trap
Published in
Dec 21, 2022

Wow!烙英文

目錄

  • 到底該去大公司還是小公司文章連結
  • ✅ 是不是不夠在乎技術了?文章連結
  • ✅ 你能同時 senior 又 open minded 嗎?👈 你在這裡
  • 🚧 最值得投資時間的事是什麼?
  • 🚧 寫程式能寫到老嗎?

TL; DR

  • 我覺得可以,但只是我覺得
  • 知道的事變多了,能說和想說得反而更少
  • 文中會輔以許多實例,如果你認為太過虛無飄渺或晦澀請留言跟我說
  • 沒有什麼硬知識,只是寫給未來的自己做備份,如果你看完沒有學到東西那也很正常
  • 年末不想工作壓力又大時就想寫文章,如果你覺得被批評到了,那很可能就是

讓我們先不要糾結何謂 Senior

因為這題沒有標準答案。

只是為了方便寫文章,才需要在這裡定義「Senior」。

這裡的「資深」、「Senior」與年紀、年資沒有絕對關係,因為年紀這東西是只要能呼吸就可以累積的。

當我在這邊文章裡說「變得更 Senior」時,指的是在不加班的情況下:

  • 一個人就可以獨立完成 N 個人做的事(e.g. 改了某個非常艱難的 infrastrusture,解鎖了未來 N 個工程師能在上面做事的能力。)
  • 一個人能跟 N 個人一起做事,但透過互相合作整體的產出卻大於 N + 1 個人(e.g. 組織了兩個異地團隊進行為期一週的 war room,在一週內修好了平常溝通來回要耗時數個月的工作)
  • ⋯⋯族繁不及備載

更白話來說,Senior 可以像超人一樣能者多勞,要不就是像個擴大器一樣讓團隊能夠產出比預期的更多;越擅長這件事情,這對我來說就是越 senior。

如果能幫助理解的話,在大公司等級表上就會是這一塊的人:

雖然在 staff 以前等級相對客觀,運氣仍然很重要,所以請參考就好

第零步:誠實地說出我不知道、我不能、我不想

在討論 Open-minded 前,更重要的是能承認自己不知道答案,或聽不懂對方在說什麼;不要怕說「不知道」會失去他人的尊重,因為在健康的職場上裝懂通常都是最吃虧的策略,猜來猜去的最後就是誤會,裝懂以至於成為人生贏家的不在本篇討論範圍。(通常賣課程的人最喜歡這樣)

越 senior 的人都該更願意承認哪些東西自己不知道,但這不代表他們給的意見就沒有價值,反而更能看到他們怎麼去面對未知和不確定性,裝懂直接帶著整個團隊衝進火坑絕對是災難性的,望梅止渴的寓言故事還是看看就好,大家是來工作不是來打仗的。

另外,當工作的時間越來越久,很多事沒辦法在簡單的對話中涵蓋或是不適合在公眾場合直說,明確地表達「不能說」與「不想說」也很重要。

Be Opinionated

與 Open-minded 相反的詞是 Close-minded,但更好的態度應該是 Opinionated;你不是拒絕其他人的意見,而是清楚做這決定的理由。

Be opinionated 重要卻又危險,因為這很容易讓你成為團隊裡面那個不好相處的人,但你不需要當個混蛋然後用「我有雅斯伯格」來當藉口,所以且讓我分享一些少數需要這樣做的情境。

  1. 沒必要的冗長討論:我仍會對產品、團隊有一些想法,但以工程師的身份來說,我還是最在乎執行的成本以及可行性;如果一件事討論了超級久卻沒有結論,並且跟可行性無關,那我就會傾向認為「當下沒有足夠的資訊做決定」,接著我會指出這一點並想辦法終結當下的討論死胡同,在下個會議來臨之前草擬一份覺得大家能夠接受的方案,並且在會議開始之前想辦法去賣給每個人(賣藥之餘同時記得海納百川盡可能的接受大家意見)。
  2. 修補過錯:如果系統出了什麼差錯時,當下把東西恢復原樣會比想出一個長期解方更重要;這個沒啥技巧,趕快把東西修好就是了。
  3. 隕石降臨:公司如果人夠多、要解決的問題夠複雜,很常會突然有高人跳進來提出三百六十度改變大方向的意見;這些意見可能是有長遠的好處,也可能只是拖慢團隊的異音,只要能確定不是不照做會萬劫不復的問題,身為工程師的你要想辦法讓大家知道「這個東西可能重要,但⋯⋯我們先把它放進 backlog 好不好?」
  4. 可能是個好想法:當你所處的環境需要每個人都很主動時,一定會有人為了「證明自己的影響力」提一些你沒辦法同意的想法;「我們可以把 OO 改寫」,身為資深工程師的你知道這是好的,但可能要花十八個月才能搞定;如果這是發生在 1:1 的對話裡,可以直說;但如果是在公開場合(包括文件),盡可能同意他並且找個機會跟他說你們可以聊聊這個東西該怎麼做,讓他覺得是他自己放棄的而不是你搓掉的;這很重要,因為不是每個人臉皮都跟我一樣厚,很多人被打槍之後就再也不會跟你敞開心胸,這對於一個團隊來說傷害比你想的嚴重得多。

什麼時候應該要 Open-minded

⋯⋯幾乎是所有時候,問題最後通常會是對誰 open,以及該怎麽做。

Team 有一老如有一寶,待得久的人通常都有最豐富的 context;新加入的人也很重要,很多大破大立的觀點都是靠一些新血才能成真;至今我還是沒有一個簡單的 framework 可以對所有事做決定,但有一個原則是可以堅持的:「不要藏招」。

意思是當有什麼好想法時,先起個草就可以多跟不一樣的人聊聊,從新手到老手、從 PM、Designer、Data Scientist、Data Engineer,你會很驚訝在那種多人的會議上不講話的人能給你很多超棒的建議(就算反對,你也能知道你有哪裡沒想好);而做這件事的 side effect 就是你最後想要執行時,大家都在一定程度上能同意你,因為你已經在這個過程中囊括各個不同的意見,把「我的」變成「大家的」。open-minded 除了心態之外,最重要的還是「行為」。

這個前提當然是你在一個健康的職場上,如果當你想獲得一些回饋時,大部分的人只會停在「啊不用啦這樣做沒有用啦」、「你太天真啦」、「⋯⋯⋯⋯」,那你要想一下,像是想一下公司是不是穩定、離退休還有多遠、想一下午餐要吃啥,總之不要對工作想太多。

結論:我覺得可以

工作的時間越來越久以後,知道每個 engineer 想要成長的方向都很不一樣,對於厚臉皮的我來說,就算風險是要常常丟臉我也不是很介意,所以我覺得可以。

開了一個粉專來宣傳用:點這裡打開

如果你喜歡的話可以追蹤或是 Like

--

--