從接案公司到產品公司

2025/02/15

接案公司會不斷有新專案在迭代,工作一兩年就有可能經手到數十個專案,因為業務會持續地向企業與政府單位拉案源,維持公司營運。

產品公司則是在經營自有產品,在不同的產品階段進去,就會接收到不同型態的任務。

過去前輩都會建議我們有機會進到產品公司就去試試看,而第二份工作我很幸運地能接觸到產品開發,並且能主導前端架構(因為只有我一個前端…)。

但我從來沒寫過 Vue,還好專案用的是 Composition API,因此從 React 的觀念轉換過去不會太難,也接觸到了 Monorepo 的概念。

開發日常

在接案公司裡一個人要同時經手數個專案,如果公司是走傳統的 MVC 架構,甚至一個人就要包辦前後端。不過專案通常至多三四個季度就會結案,開發週期很短,所以沒有什麼歷史包袱,可以說是用完就丟。只是在趕審查或結案時,加班加到並軌也是很常見的 XD

由於我進來產品公司時,專案已經到達 MVP 階段,所以我的工作大多是維護和重構,也嘗試把架構改得更好維護,偶爾需要開發新功能,開發壓力小很多,所以我能理解一般求職者偏好產品公司大於接案公司的原因。

但如同前面所說,產品的不同階段的任務內容落差會很大!

在產品早期階段,有機會歷經反覆重做的無間地獄,當利害關係人希望產品趕快發行變現,也是有可能加班加到並軌的…。

程式碼品質

接案公司比較常被討論的是一直趕趕趕結案,沒有明確的開發流程或是沒空做 Code Review,殘留的技術債就會很多,所以還蠻容易在保固合約的期間害到自己的維護工作。

不過即使是產品公司,規模小的新創也不一定有人力和餘力做控管,我現在維護的專案內容就是如此,像是拼錯字、語法誤用、語意不對、元件和資料流的設計問題,或是有一些奇怪的 side effect 在重複消耗流量等等,有許多過往留下的技術債需要慢慢清除。

所以在沒人把關的情況下,程式碼品質的好壞,就真的仰賴軟體工程師本人的造化和良心了…。

如果沒有規範或開發流程,對我來說在什麼地方工作差異都不大,但我不會說沒有這些東西的就是爛公司不要去,沒有的部分,我們可以試著建立和導入,這也是一個鍛鍊規劃能力的好機會( 前提是賣肝賺錢的程度是自己可以接受的)。

閱讀更多

轉職半年後的一些心得

2025/02/08

從 bootcamp 畢業後,我的求職狀況不太樂觀,所以收到一兩個 offer 後就決定報到了。

第一份工作去到接案公司,基本上沒太多協作,一個專案就一兩個人支撐,大部分都是以後端 MVC 架構為主,前端負責切版和對接。每個人身上會有幾個專案在跑,所以時程蠻趕的,開發流程也相對混亂,有時還要配合甲方臨時調整需求。

這些狀況雖然對新手來說會有點壓力,但在台灣的軟體圈其實是很常見的。

不要在第一份工作中強求太多條件

雖然那時我大多能準時趕出來,但心裡還是很多抱怨,從制度、程式碼品質、到管理模式等等的,就是那種初入社會、對世上所有不公不義都忿忿不平的心情。

但本來就沒有真正完美的工作環境,想要好的薪資、有資深同事帶、完整的開發架構、良好的專案管理、健康的企業文化等等…同時滿足這些條件是很困難的,跟感情一樣 🤣

即使有這樣的天使公司,也可能某天公司突然解散、收到通知資遣、個人突發狀況沒辦法繼續工作等,對於人生的無常,我們只能預備,沒辦法預測。

後來在和培訓營的學弟妹聊怎麼選 offer 時,我的感想是:評估這些條件在自己心中的優先順序,再來篩選 offer,至少可以提醒自己這是一個評估過後的選擇,而不是一頭熱做的決定。

轉職仔第一份能握在手裡的選擇通常不多,我認為只要不是薪資遠低於市場行情、違反勞基法等離譜的條件,還是可以去試試看,但心態調適又是另一個話題了…有機會再分享 😊

決策的勇氣

俗話說小叮做事小叮噹,從過去的餐廚、行政,到現在的開發日常,我觀察到蠻多人對於「做決定」是感到害怕的。

倒不是說掌管公司營運或資產管理這方面的重責大任。

從買東西要不要報帳、午餐飲料要訂哪間大家會喜歡,到 commit message 可不可以這樣寫,PR 應不應該這樣發等等,我們可能因為怕犯錯,或是怕問了會被罵說「問什麼蠢問題」,這種恐懼往往令人下意識想要逃避,交給別人決定。

雖然任何決定的結果也許是不盡人意的,但如果能慢慢調適這些內耗的心情,我認為有「可以犯錯的空間」是很珍貴的,如果當時不去做決定,我們永遠也不知道結果是好是壞,不知道自己哪裡還可以改善,那麼進步是很有限的!

因此從我決定要轉職開始,我就想擺脫把命運交給別人決定的窠臼,嘗試很多我過去不喜歡或不敢做的事,希望將命運掌握在自己手裡。

成果不佳時難免會失落,不過這就如同重量訓練,只要持續下去就會適應越來越高的運動強度,沮喪的時間就會越來越短 😊

閱讀更多