前面延續好幾篇日本CS相關的討論,讓我也想分享一下經驗。
個人經歷:113碩畢 台灣軟體公司4年多 日本留學 日本金融業WEB開發2年多準備轉職
首先關於薪水:500-600 在東京以外的地區,大阪、福岡都已經很好用了,以一個
初來日本工作的薪水很好了,很多喊700-1000在我們實際在這生活的人都不敢想像,
CS以外絕大多都拿不到這個薪水,算比上不足比下有餘,我看到能比CS高很多就外資
金融MBA背景英文好能跟外商交涉的這類。薪水不是本篇主旨。
這篇會以日本網頁的整理來討論日本CS職涯,或是日本軟體開發產業的普遍性問題。
會夾著一堆日文,還請見諒。
傳送門:
(把優秀技術者趕走的方法)
https://qiita.com/nonbiri15/items/961543c6460432289a02
絕大多數在日本CS工程師會感覺很不爽的遭遇,這篇都整理得非常詳細。
下面用到的許多連結,也都是上面那篇有整理到的。
1. 日本獨特的SE/PG思維
(日本IT產業所謂SE與PG是啥?)
http://key-sys.com/difference-between-pg-and-se/
http://el.jibun.atmarkit.co.jp/karyu/2008/10/sepg1-acb2.html
簡單來說就是:
SE: 負責上流工程 理解業務需求 用嘴寫程式
PG: 負責下流工程 實際coding實作者
上流與下流指的是軟體開發的前半段與後半段,可以想成河川從上流到下,日文的下流
工程並沒有中文的「下流」之意。但是實際上就是SE地位比較高,實際寫程式的PG地位
比較低。上面網頁也有「SE薪水較高(給与もシステムエンジニアのほうが高くなる)」
,原本是PG的工程師目標將來有朝一日往上流SE升等,而剛畢業時非常優秀的前段班畢業
生,很多人一進公司就被定為SE,一輩子也沒寫過程式,公司也不叫他們寫。
「寫程式是低級的工作」
https://anond.hatelabo.jp/20170403094257 (ソニー株式会社を退職しました)
(君は優秀なんだから、プログラミングみたいな低俗なことは早く辞めて
人を動かせるようになれ。私が引っぱりあげてやる)
日本普遍認為實際寫程式的PG是比較低階的,這跟他們「業務至上」思想有關,前段班
畢業的優秀人才,日本公司會希望他們「不要寫程式」,一開始就僅定義要件設計,理解
公司的商業業務,與客戶溝通,程式就交給外包就好,SE也比較能成為公司的正社員。
PG常常都是從IT公司派遣過來的派遣社員,或是外包商。也造成SE會瞧不起PG,
履歷上寫PG(プログラミンマー)就硬是比SE(システムエンジニア)履歷難看。
日本社會普遍輕視程式設計的技術面,重視上流工程,造成一堆沒寫過程式只懂業務
的SE帶領PG,SE薪水跟地位都高,有能力的人誰想當PG,誰想寫程式,努力去鑽研新技術
的人不就是白癡嗎?也造成努力鑽研技術面的人才變少,很多公司也不鼓勵。造成不懂
程式的SE設計一堆怪怪的系統,PG也將錯就錯從垃圾設計中做出垃圾。
https://www.goodfind.jp/interviews/35
(日本のIT業界の大手企業は、コンサルティングやSEといった上流工程に価値がある
と吹聴して、プログラミングを軽視してきましたが、これが間違いのもとです。
結果的に、システムを理解しない人たちが設計した動かないシステムが数多く
生まれ、問題となっています。)
輕視程式設計是我在台灣工作經歷中很難想像的,在台灣軟體公司大家向技術優秀者
學習服從,技術能力優秀的人向上爬,技術本位是很正常的事。用嘴巴寫程式的project
leader也大都是以前從技術優秀的實作者升上來的。
日本的SE/PG思維是我不習慣不理解,並且認為是阻礙日本IT進步主因之一。
2. 外包造成的諸多問題
延續前面的上下流分工思維,既然輕視實際程式實作,公司不養PG工程師,外包給
IT外包商,以公司經營策略來說也是很正常的。
a.公司對於自家IT系統掌握低
外包,自己不作交給別人做,就造成企業於IT系統的掌握度低,哪裡有啥DATA都不知道,
尤其在目前BigData/AI時代,很多日本公司雖然有完整的IT系統,但是絕大是其他公司
的系統或外包,自己公司沒工程師有能力串接資料作機器學習或資料統計等加值服務。
很多日本公司對目前這一波AI潮流,還以為只要買一台機器回來插電插網路可以動就好,
講到要把公司長年累積的資料導入AI引擎時,沒有人知道資料在哪,因為都是外包。
b.社內工程師僅提供給外包商資料、照片等雜事
去外包為主的有錢公司當工程師,很可能不作核心開發,淪為與外包商溝通雜用PM。
這點是年輕想往技術發展的工程師去日本要注意的。
(道具として扱われているという印象を技術者に与えてしまう。)
(例:アルゴリズムの開発を外部に委託を出して、社内の技術者には、
データの準備だけにさせてしまう。元々アルゴリズムの開発ができるだけの力量の
ある技術者を、アルゴリズムの開発から切り離してしまうことで、
不満をつのらせてしまう。)
c.外包造成系統開發的靈活度大幅降低
日本的軟體外包很可能「包得很遠」,也就是第二家再把某部分包給子公司第三家,第三
家又去找第四家...。每一家中間都抽成,實際在最後的實作工程師很可能只拿到一點錢
,香蕉能夠期待找到多強的猴子?而冗長的外包造成系統後期的修改非常困難,光是
要一路找到最後改的動那個PG就要多久了,系統分散在各個外包商統整起來要花多少
時間?敏捷開發在外包很難實現,開發週期太過冗長,不夠靈活,後期如果要改起來
會死整串。
http://itpro.nikkeibp.co.jp/atcl/column/14/531236/013100077/?P=2
(淪為軟體仲介業)
(逆に、プログラムを書かないのなら、IT部門などの技術者は単なる
“オーバーヘッド”あるいは“仲介業者”にすぎなくなる。急ぎで追加開発が必要
なのに、IT部門の技術者が仲介してシステム子会社へ、システム子会社がSIerへ、
そしてSIerが下請けIT企業に投げ、ようやく実際にプログラムを書く技術者が登場
では、デジタルビジネスの成長はおぼつかなくなる。)
3.「業務至上」思維
http://key-sys.com/engineer-neglected-sales/
(エンジニアを軽視する営業マンはソフトウェア企業にとって悪である)
日本普遍有業務至上的思維,這個尤其在IT以外的公司非常明顯,以我之前所待過的
金融/仲介業為例,業務的地位就是比工程師高。我就被公司業務前輩說過「你有營業
潛力,好好做,將來有機會轉業務」,然後找機會就塞給我業務工作。我是工程師,
當初應徵也是應徵工程師,業務只是有時候遇到講中文的客人我可以順便幫一下,
根本就沒想轉成業務阿,何況業務對工程師講這種話就很明顯的「我比你高級
(上から目線)」,我是很想跟他說「你去寫程式看看,我感覺你沒寫程式的潛力」。
這類型業務至上的公司認為要向上爬,就要轉業務相關工作,寫程式只是低級的
工作,能找到客人來公司,與客人溝通,晚上喝酒聊天取悅客人才是高級的工作。
這也是我受不了決定轉職的主因之一。
4. 傳統日商陋習
其他很多日商傳統陋習,與CS職涯或軟體開發無關,就不深入了,但也是我待不下去
一直覺得很煩躁的一部份,傳統日商會扼殺個人思想,希望你都能跟長官完全一樣(sync)
。我實際遭遇到的如下,這也是我這間傳統日商特別怪,其他IT公司應該好很多:
a. 台灣人常見的在辦公室用固定水壺或杯子,日本人習慣每天丟的保特瓶,認為那很髒
b. 跟長官客人吃飯喝酒要配合對方速度,並且要先吃青菜(沙拉)才能先吃肉跟飯
c. 當長官或客人在餐廳說這個很好吃,就在暗示你點那個,一定得點
..... (不勝枚舉每天都在讀空氣)
以上是個人一些對日本CS職涯,日本軟體開發業界的感想。好像不爽的部分為多,但
也不是完全勸退想來日本CS工程師,薪水與福利等很多方面還是比台灣好的,如果有學
日文,對日本生活有興趣還是很建議來嘗試看看,祝福大家都找到理想的公司。