前面延续好几篇日本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工程师,薪水与福利等很多方面还是比台湾好的,如果有学
日文,对日本生活有兴趣还是很建议来尝试看看,祝福大家都找到理想的公司。