大公司資深軟體工程師的轉職困境

%e8%b3%87%e6%b7%b1%e8%bb%9f%e9%ab%94%e5%b7%a5%e7%a8%8b%e5%b8%ab

為了明年的規畫我們公司開出了一些職缺,所以我在近期大量面試了很多人,而在面試資深軟體工程師的這個職缺時,我發現了一個現象,而這個現象好像很少人拿出來討論,這也是我很想寫這篇心得的原因。

我本身是軟體工程師出身曾經也是求職者,在上一間公司工作了 5 年後選擇了創業,身份成了老闆開始雇用軟體工程師。我一直試著用工程師和老闆的腦袋在想,軟體工程師為何很難找到一份可以寫程式寫到老的好工作,而公司為何一直找不到好的軟體工程師,這背後的原因到底卡在哪裡 ?

很多人把原因簡化為「給香蕉的公司,只請得起猴子」,卻沒有人去研究為何公司只肯給香蕉 ? 如果又把原因簡化為「慣老闆」,那台灣軟體工程師低薪的問題大概無解了。為了避免求職者還沒了解我們公司及工作內容就直接幫我們貼上「給香蕉的公司」及「慣老闆」的標籤,我就很直接的寫出來公司對於這個職缺的薪資預算及我們對軟體工程師的看法,雖然比不上 Google 或 Yahoo,但以台灣公司來說,應該是蠻有競爭力的,也是盡了我們最大的誠意。沒想到這麼一做,我知道問題卡在哪裡了。

當然啦,工程師有工程師的問題,老闆有老闆的問題,問題多到無法用一篇文章寫完,為了聚焦,這一篇我想先就「 大公司資深軟體工程師的轉職困境 」來討論。

在大公司的資深軟體工程師

一開始看到求職者過去的經驗是在大公司時我還蠻開心的,但面試後我失望了,因為大公司為了穩定不要出錯,分工分很細,寫程式的就只寫程式,管資料庫的就只管資料庫,管系統的就只管系統,更細一點的還會有專門部署程式至正式環境的人。也許你會認為他只需要寫程式,寫這麼多年那功力應該很強吧 ? 事實上,如果他的經驗只是在前人的架構上疊床架屋,常常為了系統的穩定無法使用太新的技術,卻反而與現在業界脫節,甚至遇到效能上的問題也只能請其它管資料庫或系統的同事幫忙處理。

人力派遣公司派到大公司的資深軟體工程師

通常這類的工程師履歷看起來很利害,做過很多大公司的案子,但每個案子的時間很少超過一年,原因是這取決於雇主,雇主會向人力派遣公司調派人力而不自己養人通常是為了解決暫時性的任務。一樣,這樣的工程師大多的經驗也是在前人的架構上疊床架屋,如果前人留下爛攤子,那也只能比照辦理,能 work 不要在任內出事就好。也因為這是短時間的人力,所以雇主也很難把最核心的部份交給他,最後他最擅常的程式能力大約就是查詢、新增、修改、刪除。對於架構設計或是效能調校比較不擅常。

轉職的困境是:薪資

如果你是老闆,對於一個寫程式資歷十年 (通常也超過 35 歲) 但只會三年前的技術,你願意給他多少薪水 ? 如果你是資深軟體工程師,在大公司寫程式寫了十年,轉職後的薪水至少要多少你才願意接受 ?

留在原公司最好

通常這種環境訓練出來的工程師,技能只適合在原公司,只有原公司能發揮他的價值願意付他現在的薪水,不然也只能換到一個類似原公司的新公司,而對原公司不滿的地方也會出現在新公司,從一個坑跳到另一個坑而已。(你怎能期望做一樣的事能帶來不同的結果呢 ?)

轉職困境的解法:要嘛工程師願意先降薪,要嘛老闆願意先投資他,這才有解。你覺得哪一個比較有機會 ?

總要有一方先讓步困境才有解

我還是很想打破這樣的困境,我也佩服有勇氣跳出舒適圈的軟體工程師,所以我在能力允許的範圍內錄取了從大公司出來的資深工程師,當然也給了他期望的薪資。我心裡是這樣想的,好的程式設計師其實很像藝術家是需要天份的,天份是否能發揮有時需要靠機會,雖然他過往的經驗對於我沒有那麼即時的幫助,但他的經驗會化為內功,有好的內功其實要練招式趕上進度是很快的,所以我願意給資源、機會、時間讓他證明我的選擇是對的。而我也希望能證明我的作法是對的。

延伸閱讀:台灣軟體工程師的困境
延伸閱讀:軟體工程師應該加入電子豹的理由


(圖片來源:dumbledad 86th of 4th 365: Working late on a Friday

  • Jaja

    先來留言卡位,想知道之後的心得 🙂 。 我明白樓主想表達的意思,
    不過另一個點應該是要評估工程師本身的態度,如果夠積極的話也許很快就能追上來也能適應與完成目前公司交辦的任務吧?

    • 對,夠積極的話可以追的上。比較困難的地方是如何在面試30分鐘到一個小時判斷他是否夠積極,或是當二個以上的面試者都很積極,那該選哪一個。

  • wandallin

    如果讓工程師討論自己經手過的大專案以及執行過程, 會不會比較能夠了解他的專業深度??

    • 會的,其實會寫這篇文章就是因為我和工程師討論過後了解到的問題

  • Isaac Wu

    其實大公司也是有一些做內部創業的 team,因為重新開始沒有包袱,所以能夠 apply 新技術在 project 上。建議可以多觀察一些新技術論壇 (如: Docker, React ) 裡,講師都是來自那些公司大概就可以猜到那些 (大) 公司文化能讓其員工持續進步。

  • Liddle Fang

    就是願不願意跳出「舒適圈」?
    這個答案會隨著時間與環境而不斷變化。
    不過要是沒有辦法跳出來,那真的就完了。

  • chihhao

    疊床架屋的用法怪怪的

    • Ryan JAO

      因為系統很大穩定性要求極高,每次都是”微調小改”,先講求不傷身體在考慮功效的概念

  • Ryan JAO

    蠻妙的這篇文章跟我體驗到的很類似,我是專案管理的腳色,從 “小”公司 跳到 “大”公司
    回想在小公司的時候 : 每個專案老闆都想用些新技術,搞得技術人員不停地要去克服、創新、然後提升使用者體驗,每個案子都風牛馬不相及,員工只有干在心理,希望老闆不要什麼案子都接,相對的什麼怪需求都會碰碰看
    來到大公司 : 有一套非常完整的產品,外加長期可靠的大客戶,穩定是最高原則

    真心覺得之前小公司的RD真的很威猛,老闆什麼都叫他研究看看、試看看、導入看看!@#$%^&(PM只能在心裡默默的安慰他一下)

    • 嗯嗯,小公司訓練出來的工程師像游擊隊十八般武藝。大公司訓練出來的工程師像正規軍,要有團隊合作才能發揮整體穩定戰力。

  • Bruce

    待在大公司又是好的工程師沒事為何要跳槽?

    • 目前聽到最多的大都是因為制度或前輩卡到了升遷或是加薪