以工程師的角度分析日本IT產業趨勢及工作環境

我是一個前端軟體工程師,現在在日本東京工作快滿兩年,今天要以一個工程師的角度來討論日本就業市場、以及跟台灣的差異。

快速帶過一下我的背景,大學資管系畢業、研究所赴美念科技管理,畢業後原本想當一個 IT Consultant,想一想覺得要做一位好的IT Consultant,對於資訊科技還是要有一定程度的sense,才比較有把握能幫企業提供solution,所以決定從軟體工程師開始我的職涯。

我在台灣工作過兩年,一年在一個做social e-commerce app的公司寫Android ,後來換到IBM Taiwan當Application Engineer,做的也是比較偏向手機應用方面的案子,在台灣待了兩年之後,想要給自己的人生更多的刺激,於是因緣際會下來到了東京,來了之後先去樂天旅遊做前端工程師,一年半後換到剛上市做二手拍賣的Mercari繼續做前端工程師,背景介紹完畢。

日本IT產業的現狀

先從下方這張圖看起, 這是 2018全球人才缺乏的數據,被塗成紅色的代表最難找到符合職缺的人才:

Source: ManpowerGroup

我們在拉近看台灣跟日本的狀況,可以發現台灣(78%) 、日本(89%) 都遠遠高過全球平均(45%):

Source: ManpowerGroup

 

Source: ManpowerGroup

然後我們再依照職種來看這兩個國家到底什麼職缺最缺人:

台灣

Source: ManpowerGroup

日本

Source: ManpowerGroup

從這兩個統計可以看出不管是台灣還是日本,勞動力短缺(Sales也是前三名,但我不了解原因),IT跟工程師又是其中最嚴重的兩個類別,有興趣探究背後原因的,可以去看WorkLifeinJapan網站裡寫的日本 IT 業界人才不足-原因與機會,裡面解釋得更清楚;除此之外,由於2020奧運在東京舉辦,日本各大企業想要在這個時機點展現新技術的突破、軟體公司也想要借此機會翻新系統來因應龐大的商機,正因為如此,帶來更多工作機會及技術挑戰。

日本IT公司與工作環境

在來日本之前,就常聽前輩們說日本三大壞話:「比台灣更操,工時超長」、「上下尊卑關係很嚴重、應酬很多」以及「軟體技術遠遠落後台灣」;來了兩年之後,針對三大壞話,我來分享一下我實際的主觀感受。

1.比台灣更操,工時超長

這一點在我來日本待的兩家公司(日本樂天Mercari)都不適用,我在樂天的時候是在旅遊部門,那時候公司就是在翻新已經用超過十年的旅遊網站,而在樂天的一年半,我大概只加過10次以內的班吧,也都是自己想再多做一點才留晚一點,其他工作天基本上就是9:00上班17:30下班去公司健身房運動,然後留下來在免費的cafeteria吃個飯就回家;而在現在這家公司Mercari就更自由了,基本上沒有要開會的話只要12:00~16:00這段時間人要在公司就好,其他時間都可以自己調配,所以我並不覺得來了之後有比台灣更操。

2.上下尊卑關係很嚴重、應酬很多

可能是因為我去的這兩家公司外國人都偏多,所以也沒遇到這樣的問題,共通點是直屬manager都是日本人,但都不用唯諾是從,談話自然,開玩笑也沒問題,我甚至還有跟我日本manager一起去滑雪;應酬方面(日本稱作飲み会)的確比台灣多,但也都是自由參加,樂天跟Mercari的差別就是,樂天應酬要自己付錢,Mercari公司全付,所以樂天我去參加的就比較少,Mercari則比較多,而也因為這些比台灣多的應酬,我覺得跟很多外國同事(包括日本人)都可以在比較短的時間變熟,所以對我來說這點還蠻加分的。

3.軟體技術遠遠落後台灣

針對這點我會利用下一個段落做完整的論述,但你們覺得這件事情有可能發生嗎?現代的軟體大多都是基於網路上的開發,所有的資訊就在網路海中,你想要找第一手的資訊?通常就在Google搜尋的第一個結果。你很想參加一個很猛的conference汲取最先進的技術?打開YouTube,如果活動沒有直播的話,通常早上的conference,晚上就可以看到影片了。我前兩週剛從舊金山參加完Chrome Dev Summit 2018回來(公司全額負擔),在那邊跟與會人員交流的時候,遇到很多跟我一樣從日本特別飛來參加conference的日本公司,倒是台灣公司沒有遇到半個;我想說的是,日本很多軟體公司正很努力的在跟世界接軌,加上我實際在這邊開發兩年,用的技術其實比我在台灣用的還要新(我在台灣也只工作兩年,樣本不夠多),但真的不用擔心「軟體技術遠遠落後台灣」。

日本技術是強還是弱

先講結論,已開發國家中,我覺得「各國的軟體技術誰強誰弱?」是個假議題,因爲就如前文所說,IT產業的本質,讓knowhow都逐漸移到網路上,所以國與國的差距不會太多,最大的差別我覺得就是在不同的市場、不同的風土民情而產生不同的IT使用情境,如此而已。所以,以下我藉由自身經驗、加上跟其它在日工程師交流後所得到的資訊來做分析。

Software Engineer v.s Programmer

在日本蠻多公司這兩個職位是分開的,就算有些公司職稱沒有區別,但實際工作內容還是有兩種:Software Engineer 負責設計系統及技術文件,然後交由Programmer負責實際寫程式;這樣的做法有好有壞,好處是以公司的角度,分工很細的結果就是所有的人都很好替換,不管誰走了,這些詳細文件就是最好的靠山,就算沒有人可以開發了,只要文件在手,也可以很容易地交給外包公司來寫,而這種做法的壞處則是:

1.技術、管理雙軌制度很難執行,因為整個組織的期待職涯就是:

Programmer -> Software Engineer -> People Manager

 

2.我認為對於個人來說是有害的,因為最終總會失去實作能力。

在此順便附上台灣工程師口耳相傳的笑話:

日本、台灣的技術文章&第一手資訊

可以試著把瀏覽器分別切換成中文跟日文、搜尋技術關鍵字,比較以下搜尋結果:

日文

中文

同樣關鍵字(graphql),如果只看當地語言的搜尋結果,日文的是「GraphQL入門 — 使いたくなるGraphQL」中文的是「2018 GraphQL 漸進式導入的架構」,點進去看看,你可以發現兩個文章的篇幅差很多,日本的技術文章很長,這就是這邊技術文章的特色,會寫得非常詳盡,有常在看日文技術文章的朋友跟我說,日本的技術文章品質非常高,閱讀起來很簡單易懂,不像台灣的技術文章很多都會沒頭沒尾的,或是資訊量不足;而就這觀點我自己的感想有兩個:

  1. 用自己的母語看文章當然比較舒服,如果文章品質又好的話,就能比較快的吸收一個新技術。
  2. 不過就我的觀察,台灣工程師不畏懼閱讀英文文章,所以反而接觸比較多第一手的資訊,精確性更高、知道新技術的速度也快一些。

我之前跟日本人一起工作時,的確有時候會看到他們讀的技術文章都是日文的,有興趣的人可以去他們的技術網站Qiita看看。

日本IT企業需要哪些人才

討論這個問題,我們從日本IT企業哪些問題要被解決著手。

相對封閉的資訊

如同上一段所說,日本因為依賴翻譯技術文件加上英語能力的隔閡,導致沒有辦法快速地吸收第一手資訊,而同時身為世界第三大經濟體,各大國家也都對日本市場虎視眈眈、想跟日本人做生意,原本礙於文化、語言隔閡在前一個十年各種關節不好打通,現在由於日本勞動力不足、政府吸引外國人才的因應措施,讓那些想go global的日本公司開始大舉招募外國人,而此舉也讓原本封閉的資訊有逐漸跟世界接軌,我相信到2020東京奧運會達到高峰,所以從這點推論,日本 IT 企業需要:

會多國語言(Bi-lingual不稀奇, Tri-lingual才是基本)、並善於溝通的人才

 

產品迭代速度緩慢

我認為日本軟體產品的迭代速度緩慢有以下幾個原因:

1.銷售額導向

就我的觀察,日本的IT企業並不是軟體先行的,IT系統最一開始的產生也是圍繞著在前一個十年非常成功的製造業,也因為這樣,軟體工程師在日本社會也並不是一個地位很高的職業;如果從這樣的角度去想軟體系統,相信有使用過這邊網路服務的人都有發現這邊很多看起來像是五年前、甚至十年前的網站(舉例來說:樂天旅遊的網站),除此之外,日本也比較多從實體做到虛實整合的服務,以日本這麼大的經濟市場來說,相對是少很多軟體出發的公司(或是說軟體新創公司)。

2.文件文化

如同上一段「Software Engineer v.s Programmer」所述,文件在日本傳統軟體公司扮演著重要的角色,以前端工程舉例,日本傳統軟體公司會要求Software Engineer把畫面的每個UI components都列出來,甚至每個component要傳什麼properties也要詳列,寫完之後再經過一層一層的approve後才能開始開發,這對於工程師來說,是很無聊的一件事,在台灣的時候通常都會先討論、設計出個大方向後,就會開始做,然後再慢慢優化,而在日本傳統軟體公司的mindset,比較相信只要把文件寫到完美,就沒有什麼難的事情了,但因為軟體開發沒有辦法事先就確定每個小細節,文件導向的結果就是 :

花了大把時間規劃後->get approval -> 發現不可行需要大更動->再改文件->再 get approval…

由此拖慢了迭代速度。

3.開會文化

開會也是日本傳統軟體公司很重要的一環,因為那是很好刷存在感的場合,你開越多的會、給人感覺就是做越多的事情。開會大部分是用來討論需求及上述技術文件,而這些會常常會遇到的兩個問題,一個是開會的人數很多、卻只有兩三個人在講話,另一個是日本人似乎不擅長再開會場合做決定,很少會聽到有人說:「好,那我們xxx就決定這樣做了」,比較常聽到的是「xxx這樣似乎比較好」「好,不然我們大家回去想一下,三天後我們再來開一次會」,我覺得這跟文化有很大的關係,也可以從日文這個語言窺知一二。

所以就「產品迭代速度緩慢」來說,我覺得日本IT公司需要:

願意 take ownership 做決定 、改變現狀的人才

 

流程教科書化

另外我觀察到的問題是,不管是軟體開發、或是軟體專案管理,日本公司都做得跟教科書很像,以軟體開發舉例,寫軟體測試是確保軟體品質的一個方法,我待的兩家公司的確也都有寫軟體測試(對了,我在台灣待的兩間公司都沒有寫軟體測試,但一樣,樣本不夠多不能以偏概全),但我覺得這邊寫測試比較是一種形式,追求的是測試覆蓋率的數字,而沒有釐清測試的本質-保護你的程式碼所以往往只想把數字衝高,卻沒有保護到程式碼;再以軟體專案管理舉例,Agile Development、Scrum相信很多人都知道,這是比較新的軟體專案開發方法 - 把整個開發時程切成一~兩週為單位,規劃需求、軟體開發、測試…同時並進,專案成員每天快速分享工作進度,並在每個時間單位的第一天討論接下來一~兩週要做什麼、最後一天驗收產品現在的進度並檢討改進…等(相較於傳統的Waterfall方法,會先花長時間規劃需求、再開發、再測試、再驗收),然而我原本待的日本軟體公司會把流程都形式上儘量符合,但因為上述的文件文化、開會文化,導致失去的原本Agile的本質 -快速開發出軟體(最後參與的開發從開始規劃到上線花了三年);所以我覺得以這點來說,我覺得日本IT公司需要:

能融會貫通方法論、並靈活運用的人才

 

最後結論,那為什麼要來日本工作呢?

一定是個比較國際化的舞台

在東京這樣一個國際化、世界能見度高的城市,我能體驗到的是一個非常global的工作環境,以及來自四面八方的同事,我來東京才兩年,已經跟超過10不同國家的人一起共事過,在其中你能發現不同背景的人思考事情的角度不同,做事方法也不太一樣,舉一些實際例子來說,印度人能快速找到答案把事情做完、俄羅斯人蠻在意細節的、歐洲人普遍喜歡討論問題,討論到大家拍手叫好、台灣人相對穩紮穩打,但蠻有彈性的…等,這些我認為是在台灣比較難遇到的工作環境,在台灣可能就是寫email的時候是用英文,以我的自身經驗這就是結局了。以下附上我在日本待的兩家公司(都是日本公司)跟同事的合照:

Rakuten

 

Mercari

提升個人軟實力非常好的機會

我認為台灣人因為教育環境,舉凡理性討論議題、政治能力、向上管理、與人社交能力…等都沒有像技術能力來的突出,而離開土生土長的環境,用自己的第二語言、甚至是第三語言來工作與生活,跟不同國家的人文化交流、衝擊,都讓我在這兩年的軟實力提升非常多,隨著職涯的前進,這些軟實力越顯重要,而這也是我覺得有機會要去海外一試的原因。

更好的求職市場

最近從這篇文章-努力固然重要,但選擇更重要,看到很多跟我想法雷同的概念,節錄裡面一句話:

「台北」就是一個相對「台南」好的求職市場,

好的定義是「光譜更細」。

 

什麼是更好的求職市場?什麼是光譜更細?以我的主觀經驗來描述的話,我一畢業在一家Startup工作,一年後覺得學習曲線開始不陡峭了,於是換到一家外商大公司,那時候覺得,嗯,薪水還不錯,新的工作也蠻有挑戰性的,然後再過了一年,又開始覺得無趣、想做更好的玩的事,這時候就開始面臨以下三種狀況:

  1. 比我現在能力更有挑戰性的工作 -> 薪水比我現在少
  2. 薪水比我現在多的公司 -> 軟體不是本業、工作內容無聊
  3. 薪水比我現在多、也非常有挑戰性的工作 -> 能力卻還沒有到這個level

 

所以如果我繼續留在這個就業市場,我可能就只能先花個三年level up,然後才能在就業市場再次找到符合我要求的工作;而所謂的光譜更細、更好的求職市場,就是在每一個時間點,你都更有機會找到符合你能力、薪資期待的工作。

我覺得東京就是一個比台北 更好的求職市場。

 


 

最後宣傳一下我自己的Medium,我會定期在上面分享日本、軟體業觀察,以及軟體技術文章,有興趣的話歡迎follow我!