研替三年

contents

  1. 1. 舊金山
  2. 2. 在家工作
  3. 3. 開發
  4. 4. 後談

舊金山

即將過年時,才知道二月底完要去趟美國舊金山開會,那時美國疫情還沒有大爆發。面對跟著主管一起出國的情況,緊張的心境已經釋懷,那時還不知有多少人會跟著去,只想著這次順便去看組織改組的同事有哪些人,並沒打算規劃順便玩什麼行程。

由於時間有點趕,只有兩周的時間準備,也不知道去的實際目的,要準備的相關報告內容,連剛進來兩個月的菜鳥也跟著去,由於不是每個人都有去,能倚靠的人不多,另一個進來快一年的學弟被邀請去,這多少有點不妙的預感。

從早開到晚為期一周的密集會議,並沒有像波士頓有個悠哉的下午。顯然地,在充滿華人組織的西岸和洋人的東岸風格不同,汲汲營營的華人文化,每一刻都相當地重要。工作起來相當辛苦,也嚴謹很多。

在聖荷西的分公司,擁有數千人的團隊,還有正統的公司餐廳?而我們人數只有個位數,開會起來明顯沒什麼說服力,高階主管們說什麼是什麼。產品大部分小功能也都幾千行,對於 EDA 的貢獻也只在規劃工具,而不是負責最實際的實作工具,說話力道與市場規模實在不大。

唯一的優勢就是近期的 3D IC 封裝,開始走向一次構築整個版子。雖然沒辦法像實作工具規劃走線細節,作為一個高層級的規劃工具可以一次展現百億個物件分布與管理,只是比 Excel 好用一些吧。

一連串開會下來,大概明白自己在組織裡面排在哪個位階,也能從一些會議主持上看出各部門的信賴、依賴圖。不得不說,公司還真的很接近三個人種分部門,分別是亞洲、印度及歐美,分別主導不同層級的產品。想必在相同母語與文化上,這樣開發才是最容易的組織發展,怪不得這次改組將大部分的人都塞進這個亞洲圈。

途中若都是亞洲人的會議,用中文開會,途中若出現外國人,就下一秒切成英文會議,在一旁觀看略有風趣,龐大的專有名詞庫,最後也搞不清楚到底是在講中文還是英文。那被抓去的另一個目的是什麼呢?應該是主管報告產品功能時,緊急救火隊在一旁修 BUG 和評估是否能支援突然拋出的問題。

「現在我有種被狠狠背叛的感覺」-《輝夜姬想讓人告白》

接下來的事就不有趣,菜鳥是個雷隊友的事實逐漸明瞭。回想在搭飛機前說了要留著餘額刷旅館信用卡,千萬別玩手遊刷爆,結果當晚入住時還是刷不過,原來是出發前刷了一台手機。這也許還不打緊,回旅館打算去隔壁的購物中心,幫公司同事買台 switch 回台灣,沒想到菜鳥卻回說「回房間玩手遊」正準備在大廳做簡報的主管在一旁聽到,說道「不一起去嗎?」。我想徹底的社畜就是下班不認識吧,最後一個人摸黑走去購物中心買。也許是中國疫情爆發,店員看到這一臉黃種人也沒問太多,比起害怕說英文的我,那種中國式恐懼無法比擬。

令我感到最微妙的是,開會一直補零食咖啡,看到主管們正在報告的當下,菜鳥卻三番兩次地繞到後頭拿零食回來吃,也許是不同成長背景下的關係,看起來非常低水準的行為,讓我都不好意思坐在一旁聽講。這讓我想起,在剛進來的幾個月時,主管曾說我們家教都還不錯,在這些小動作中,就能略知一二吧。

在家工作

回國時已三月初,疫情開始大爆發,之後便開始在家工作。決議內容其實多到不太可能在短時間內規劃得好,在屈指可數的開發人力下,不讓產品崩盤就很不錯,交代下來的事情,從回程飛機的等待時間,跟主管談論這次的各方面狀況,也談到為何讓菜鳥也跟著來,一次要出個十幾萬讓幾個人飛過去開會,這對公司也不容易。談論內容就留著大家自行想像。

在家工作並沒有想像中得好,完全看各位的自制力。然而,公司 IT 部門開始封鎖了許多網站,如 Youtube, Netflix … 等,發現 VPN 承受不住大量的居家工作者,可見有多少人平時上班會佔據這麼多的網路資源。由於在家工作,各種事情討論都在線上會議中。同時,由於部門改組,每周、每雙周、每月開始有固定會議,不健康的社畜生活就此展開。

越來越少去公司,忙得事情卻越來越多,周一催計畫 A、周二催計畫 B、周三開個會、周四解決緊急需求、周五做計劃。這些堪比大學修課,每天都在準備隔天的課程作業似的,單純做報告也許還好,老實說開發一個大功能並不太合適,實驗都還沒跑完整,隨口說出來也是浪費大家時間,畢竟誰也不會插手幫忙誰的,並沒有實際討論的價值,頂多出事知道要找誰。

看著每周報告的計畫項目中,開始出現了負責人指向自己,壓力大了不少。更煩躁的是,有好幾個項目旁邊都有著自己的名字。人力不足,卻必須這樣搞的話,心境相當崩潰。對於系統功能而言,也與一次負責好幾項很正常,但每周都得對項目報告進度,這個就有點分身乏術。變相結果,在每天稍微撥點時間每個都推一點進度,開始進入分時工作。有些同事並不會這樣子,負責一項慢慢推就好,怎麼說都心理不平衡。

開發

新功能要做,舊功能要顧、還要寫教學文件給未來菜鳥使用,不時還會因為同事寫出糟糕代碼而氣憤。每次做簡報分析要怎麼寫,看來都做了白工。在某一日,直接開幹,不得不在線上會議直接說出來,我所說的話,又有多少可信度呢?的確,我也會犯自己說過的錯誤,做了全自動的反饋系統後,照理來講定時要去修正那些潛在錯誤。然而,對於某些人而言,潛在錯誤不算錯誤,只要還沒有錯,那就是對的。

由於人力不足,工作分配上有明顯地不妥當,即便希望學著做,有不懂事情就問,但結果並非理想中的發展。不如預期就先看源代碼,自行谷歌可能得到的問題,第一個搜尋結果就是答案的蠢事不斷上演,如何編譯一個簡單的 Java 程式、如何使用 Git 分支、如何快速設定環境變數,這些瑣事拿到關鍵字先上網學習,與其不同的地方再拿出來討論。看到同事以如此沒效率的方式在工作,從繁重的工作中脫身,幫忙處理這些小事,直接氣炸了鍋。

逐漸地,發現測試時間越來越不穩定,log 輸出裡面還吐了不少問題,撰寫的教學文件的錯誤範本一度上演。大多數的問題都是基礎功,基本的語言特性、作業系統的架構、工作的運行流程等,用腦內模擬就知道有各種組合切入點。要怎麼讓大家一起提升素質呢?並沒有辦法。大部分說「我先寫,效能問題你來修。」的狀況,還會很自豪地說「這樣的合作不錯吧?」,在大家都在的場合下能講出這些話,信心十足。寫完之後我砍掉,這到底哪門子的合作方法。

為了壓制不穩定的要素,按照反饋系統的指導逐一修正,再根據歷史教訓不斷地增加測試案例來防堵再次發生,來到了 11% 代碼覆蓋率,相較於半年前提升了一倍之多。在伺服器平行測試從半小時再壓回 20 分鐘,在單機運行就得花上數個小時。平行內的平行資源管理,不要總是資源耗盡,造成誤判逾時,測試不過就跑第二次到底是什麼觀念?怎麼會把這些事情習以為常,要與幾千人的產品整合,那一點穩定度都辦不到,每次都不敢說這產品還能活多久,要是我沒去注意,沒有去做一些髒活,這早就該瓦解了。

產品整合上,外觀圖樣、操作快捷、文字顯示等等都要配合,這對於沒有產品驗證的團隊而言,整個工作落在我的身上,一一對應圖標顯示,還要保留先前的 UI 主題,又要處理跨平台的操作環境,有時還要自己開美工軟體去修圖擺放,怎麼想都不太妙,連 UI 動畫都有一些基礎需求,邊邊角角的幾個像素都要求到位,寫程式的涵蓋範圍可大呢。

因為要處理百億數量級的顯示與檢索更新,得放下新功能開發,回過頭去把問題抓回來解決,測試與分析並不是那一種試誤流程,覺得快不是總是快,當下快不代表以後快,長久的發展沒有人去支持,得花上好幾天驗證的工作,在每周開會的壓榨中,無法靜下來去思考問題。

後談

「啊,我已經到了極限了」-《輝夜姬想讓人告白》

由於開發的緊迫,心情盪到谷底,想要去找找看新工作,卻被每周開會壓迫,緊急事件不斷,潛在問題不斷暴露需要調查。不幸地在七月初,摔傷了右手臂和腳,包著紗布也趕工。

八月中,受不了自己在忙什麼,找了主管談了一下發展,我再也沒辦法繼續了。家裡嫌賺得少,也沒什麼成就,連個女朋友都沒交過,每天就在那邊工作。在工作中什麼都沒有發展,依舊是那三年前的我。