Writing | 聊一聊最近工作感受

2024 FEB 18

突然開始想寫這篇文章,其實也沒什麼特別的理由,可能只是想發一發牢騷(笑)。最近突然對自己的職業生涯和規劃產生懷疑,覺得現在的工作可能並不是自己想要的,不過其實很有可能只是自己單純不滿,順便給自己找了一個藉口,正好也利用一下這篇文章來梳理一下自己的思緒。

現在的工作

先講一講現在的工作好了。

我從2022年四月開始就職於teamLab,就是那個大名鼎鼎的做交互式藝術展的網紅公司。這個公司整個分成兩大部分,第一就是大家都知道的藝術部門,其實公司只有可能不到八分之一的人隸屬於這個部分(也是公司花錢的大頭),第二部分,大家都不知道的部分,其實我也是參加面試的時候才知道公司還有這一個部分,就是日本的軟件工程師都匯聚的工種——SI。

SI叫做System Integration,其實我也不知道為什麼會叫這個名字,但是其實白話文就是外包開發。一般從要件定義到設計開發到整個後期的維護,都由承包商完成,就省去了委託方自己去招募工程師的成本。teamLab的第二大部分,其實也是賺錢的部分,其實是SI的這一部分。作為一個venture SI企業,公司似乎永遠都有工程師缺口,最近公司也處於一個急速擴張的階段,同時,之前做的各種各樣的項目,例如三井的&mall,BOC的粉絲俱樂部,郵政的DX項目等等,也讓公司小有名氣,以至於最近開始做一些非常大規模的外包項目(具體是什麼我不能講,但總之很大就對了)。

我以前其實對寫程序沒有太大興趣,雖然軟件工程和計算科學什麼的從大學一直讀到碩士畢業,但我一直希望可以成為一個UX設計師什麼的。不過遇上疫情,以及當時真的很不想在國內公司工作,所以決定咬咬牙幹老本行。好在日本有很大缺口,所以幾乎是非常順利,一輪面試就拿到offer,來到日本。不得不承認,當時的感覺是,這也太輕鬆了,對於沒有經驗的工程師,幾乎是絲滑到我跪在地上感謝神明的程度。一個十道題的programming test,一個CTO面試,入職前有專人輔導做課題,入職之後有mentor負責培養新人,不得不說,剛進公司那段時間,自我感覺成長速度極快,工作滿足感也很強,包括周圍同事也非常chill,整個感覺沒有100分也有95了。

在公司的經歷

公司的人力資源是採assign制的。因為不像其他開發自己服務的公司,工程師就一直在一個team裡,負責一個案子,SI的案子非常多,每週都會被委託新的案子,而且是按照人頭和天數算錢,所以工程師都是按照百分比指派給各個案子。例如我去年一月左右的時候就有三個案子在身上,分別是50%、50%和10%(其實加起來已經超過100%,但其實這也是常態)。

從入職到現在,兜兜轉轉參加了四個案子。最開始是一個已經在追加開發和維護階段的案子,那時候前端只有我一個人,再加上我的mentor負責給我review代碼。一個月後參加了郵政的案子,負責用公司的CMS框架產品來做一個管理畫面,當時前端team是我和另外一個同期入職的應屆生。再後來,第一個案子進入一個收尾階段,有40%左右的資源被放出來,於是又被指派進了公司自己網站的renewal的案子(這個案子算是我待過最和平的)。去年一月又從自家的案子出來,進入到現在的案子(算是公司目前最大的案子),到目前為止,作為一個小分隊的leader,管理幾個成員的任務,代碼review和對外溝通之類的。

在SIer工作的優點

SI企業最大的優點就是學習體驗非常好,因為公司有很多案子,各個案子可能有不同的技術棧和解決方案,所以對於知識的橫向擴充會非常有益。通過各種各樣的學習會,討論會,大家的成長非常快。同時公司也確實缺人,新人也很容易被委派重任,像一開始居然就敢把我給扔進一個沒人的案子裡,現在想來也是覺得心蠻大的。

其次就是,對於想成為T型人才的人,SIer確實是一個很好的環境。從上游工程開始,除了一般主導都是PM在做以外,很多東西(要件定義,架構設計,包括前後端溝通,或著是前端和UI設計師溝通)都是工程師親力親為。這一點讓工程師可以迅速獲取到除了開發之外各種的知識,通過各種各樣的嘗試來對自己的職業生涯有更好的認知和規劃(公司也確實有從前端team轉去當PM的)。

哪裡出了問題

我最開始覺得有問題,是去年三四月,也就是我進入現在這個案子之後。所以下面我講的問題,基本上都是我現在這個案子的問題。

人員流動

這個新案子,是一個已經醞釀了很久的大案子,我雖然是作為前端的第三人進入案子(目前前端已經有超過40人),但是基本設計已經快完成,已經處於快要進入詳細設計的階段。

整個案子採waterfall的開發方法,也就是前一個階段的output會作為下一個階段的input使用。其實一般來說,這樣的開發方法並沒有什麼問題,但是相比起敏捷開發,waterfall需要更長的工期以保證每一個階段的品質,不然下一個階段會非常痛苦,以及問題會像滾雪球一般越滾越大,最後造成不可挽回的後果。

waterfall的背景下,人員流動就是一個很大的問題。人員流動可以說是SIer的特徵,除了正社員,SIer通常會按照案子的人力資源需求波動再外聘派遣員工來填補臨時性的人員缺口,一般是以階段為單位。如果是敏捷開發,這樣的人員流動並不會造成太大的問題,因為這個週期造成的問題,下一個週期可以立馬修正,並不會造成滾雪球的效應。但是對於waterfall來說,這就是很大的隱患。

首先,假設一個派遣員工在基本設計階段完成了一個畫面設計書,然後在基本設計結束時退場了。那麼team在下一個階段想要針對某個設計書內容進行詢問的時候,很可能除了這個已經退場的員工,沒人知道這個詳細情況。尤其當一個階段產生大量的輸出時,不僅僅是輸出本身的質量,review的質量也令人擔心。事實上,在同時輸出上百個畫面的基本設計階段,確實給詳細設計階段留下了非常多隱患,並且大規模造成了延遲和錯誤。

其次,大量人員的進退場造成了很多額外的時間成本以及風險。作為按人頭和時間計算成本來簽合同算錢的工種,案子卻經常因為人員流動花時間在一些並不算錢的部分,例如,三不五時的派遣員工面試,新入場員工的培訓以及各種說明。

死板的Assignment和合同

承接上一個問題,這是一個我最近體會到的問題。不像其他的案子,按照各個階段來簽合同,在目前這個案子中,出現非常弔詭的情況:畫面的UI設計最後作為markup的輸出來確認。這就造成一個情況,其實合同裡是沒有UI設計的工時的,結果就是,公司沒辦法給案子指派專門的UI設計師,只能是有個設計師在空閒時間(1%)來顧一下我們這個案子。很難想像,一個三百多個畫面的markup,在只有幾個key design和通用組件的情況下,支撐了6個月,最後快要完成了(是我的功勞)。

過程中最讓人哭笑不得的是,一個作為前端工程師招募進來的女生,因為有figma的經驗,被指派去做UI設計,同時還要兼顧markup的開發。

客戶永遠享有最高決策權

雖然這個標題寫出來就覺得還滿理所當然,但真正工作的時候就變成最大的痛苦來源。

在我加入初期,正巧處於UI設計的階段,所以針對各種設計議題和客戶開過不少次會。在waterfall的束縛之下,整個前端team加上設計師,其實跟客戶提過很多UI/UX的改善建議,很多也是web design的最佳實踐。但客戶一知半解,再加上溝通效率的問題(下面一節會講),大多數的提案都被回絕了,這就造成markup中很多不可逾越的高牆。後來在markup的客戶review中,我們又收到客戶的問題說,“這個畫面有在考慮可用性嗎?”,很多時候讓人無語凝噎。

這個現象在這個案子中最明顯,也聽說其他案子中或多或少存在這種情況。對客戶的需求是不能say no的,無論如何首先必須要想辦法實現,實在是沒辦法的情況,再去討論和提出其他替代方案。

溝通效率

不知道是不是因為是日本的關係,繁文縟節的東西非常多。開個幾分鐘的會可以解決的問題往往需要幾個星期。去年和客戶討論一個開發方案,用文字的方式你來我往幾個星期之後,終於確定下來,也投入開發中。結果兩個月後收到客戶的其他質詢,發現客戶其實完全沒懂之前討論的東西是什麼意思。後來也造成很多返工和大幅修改。

不知道屬不屬於這個溝通效率的問題,但是經常發生的還滿好笑的事情是,沒有人願意和客戶折衝,遇到問題首先是把已經落在紙上的條文拿來複習,然後試圖玩文字遊戲。例如,這個條文寫的“保證XXX情況下的XXX”,大家就會開會討論那是不是意味著“不是XXX情況下的XXX是不是就不保證了”;再來,基本設計中一些很明顯的錯誤,因為waterfall被釘死,所以要麼硬著頭皮按照錯誤的開發,要麼就必須和客戶協商,當時我太天真,覺得這種小錯誤頂多一天,撐死兩天,而且甚至可以內部解決,結果這件事情內部開了一天會,第二天提給客戶,活活拖了一週才確定下來。

急於用大案子來證明自己

這可能是急速擴張的公司的特徵。之前再大規模的案子,頂多也就是幾十個人,而且也不會這麼大規模地導入派遣員工,派遣員工一般是作為測試人員或著是下游工程的需要被招募,但是在這個案子中,派遣員工被導入至上游工程中,就像前面講的一樣,造成了很多品質問題的同時,也造成了很大的管理問題。

公司其實還並沒有實力去做這個案子。技術層面的問題其實是好解決的,但是公司的工程師還並沒有實力和經驗去預見如此大規模開發中的風險,以及如何去使客戶理解這些風險的能力,這邊急於將各式各樣的討論結果落在紙上,不留任何討論餘地,以至於最後開發人員常常因為這些條條框框感到頭痛。

至於人員和風險管理方面,就像上面講到的,我是確確實實地見證了這摸著石頭過河以及作繭自縛的過程。公司其實是採裁量勞動制,也就是說,不規定員工的工作時間,按照規定的日程,可以依自己的步調上下班。但是在面對管理風險,以及在大量的派遣員工摸魚效率低,大量增加成本的情況面前,上面的人選擇開始收緊例如wfh的申請,以及開始調看員工的打卡時間,以及直接赤裸裸地提出希望員工加加班。

有挑戰精神是很好的事情,員工也需要這樣的雞血來投入到生產中,但當公司不得不改變初衷來push員工的時候,員工自然也會選擇離開。

我現在一個很具體的感受就是,這是一場豪賭,贏了當然是立馬聲名顯赫,但輸了公司可能就沒了。

其他問題

年輕SI或是初創企業很容易給自己標榜例如氛圍活躍,像學校一樣的環境,上級和同事feedback制,等等。但是這樣的公司文化toxic在於,員工需要在認真完成自己工作之餘,投入很多時間來擔心和操心如何提升下一次feedback的分數,說白了其實就是在鼓勵內卷。很多時候被peer pressure到,但是轉念一想自己也有在認認真真完成自己分內的工作,為何在工作之餘我也得隨時思考,採取什麼樣的行動才能對team和公司帶來最大的利益?我最近在想,公司的氛圍好像確實活躍起來了,各種各樣的學習會,知識分享等等,好像大家的積極性確實被調動起來了,但是後來發現這些所謂積極性其實都是作為OKR(Object + Key Results,一個社內的評價機制)存在,最後培養出來的其實也可以說是一個一個的精緻的利己主義者。打個比方,就像是大學時,除了專注學習專業知識,我還得去參加學生會,參加社團,參加工作室,甚至去和老師打好關係,最後只是為了一份獎學金或著是一紙推薦信。

收尾

上面提到的問題基本都是和自己的經歷相關的內容。最後說一下對於公司和工作的認識。

其實說實話,我最近開始有些改觀,不認為建設公司應該是每個員工的責任。員工應該是按照招聘簡章上寫的職責進行工作,上級根據工作成果質量來分發和裁定薪水,員工並不是老闆的合夥人,只是進來拿錢做事的人而已。新員工,特別是應屆生,很可能著迷於所謂“企業文化”這樣的字眼,因為剛從學校出來的小孩按照慣性想要在社會上尋求“歸屬感”,在學校裡,這樣的“歸屬感”確實可以激勵學生,但在公司中,“企業文化”所營造出來的“歸屬感”很可能只是各種不公、不合理制度和低薪酬的遮羞布。 最後用前兩天半期決算會上的一個QA作為結尾。

一位很猛的員工問道:“最近公司這麼忙,收益也不算好,造成如此大量的人員流失,請問公司有什麼措施嗎?”
老闆:“那也只能衝了!”