注册并分享邀请链接,可获得视频播放与邀请奖励。

徹言 (@iamcheyan) “因为在日本,软件不是一个独立的行业。 而是依附于大型机、计算机、工业设备、消费电” — TopicDigg

徹言 的个人资料封面
徹言 的头像
徹言
@iamcheyan
加入 July 2011
0 正在关注    0 粉丝
因为在日本,软件不是一个独立的行业。 而是依附于大型机、计算机、工业设备、消费电子、游戏机以及大型企业系统而存在的。 大致有两条路线。 一条是企业系统:银行、保险、电力、制造业需要系统,但没有开发能力,就交给富士通、日立、NEC这样的厂商。 客户提出需求,厂商定制开发,部署以后继续维护十年、二十年。 这套模式重要的是「长期客户关系和稳定交付」。 简单来讲就是:别出错,别给大家惹麻烦。 另一条是软硬一体。 索尼、任天堂等企业自己有硬件,所以需要操作系统、驱动、游戏、嵌入式软件和各种配套软件。 你想玩我的游戏(使用我的服务),你就需要买我的设备。 日本过去这两条路线都非常强。 相对缺少的是第三种: 在互联网时代,软件本身就是产品。 不依附某个客户,也不依附自己生产的硬件,直接做一套标准化的软件或服务,卖给所有人。 Microsoft、Oracle,后来 Google、Salesforce、AWS,走的都是这条路: 软脱离具体硬件和具体客户,标准化以后复制给全世界,而软件公司本身成为产业中心。 但为什么日本没有呢? 因为日本在前两条路线的基础之上,形成了一个特色现象: 业务知识在甲方,软件知识在乙方。 最懂银行的人不会写软件。 写软件的人又不知道发金融系统为什么要这样运转。 中间再隔着层层分包。 最后真正写代码的人甚至见不到真正用系统的人。 而在这种产业结构下,企业真正需要的也未必是特别喜欢计算机的人。 需要的是懂客户、懂业务、会写设计书、会协调、能按照仕様把项目交付的人。 对技术钻研的反而不重要。 所以日本 IT 里存在着相当一批很有意思的人: 学历很高,脑子也很好,工作认真负责,甚至已经在这个行业干了十几年,但入行之前可能几乎没有接触过计算机,对计算机本身也谈不上有什么兴趣。 之前学的是文学、法学、经济、环境,甚至音乐。 找工作的时候,没找到满意的工作,就去干IT。 企业也愿意从零开始培养。 用什么就教什么,这个不会就去干那个,那个不会就去干这个,反正总有能干的事儿。 于是一个程序员完全可能写了很多年代码,却从来却从来没用过 Git; 版本管理,就是复制出一排文件夹 bak20260903_1、bak20260903_2、bak20260903_2_fix。 而这个人(甚至整个团队)都不觉得有什么奇怪。 但这换一个行业就会显得非常荒诞。 一个东京大学法学部的高材生,学历很高、脑子很好、工作也很认真。 但他能不能培训几个月以后就去本田设计发动机? 大概率不行。 因为机械、电气这些传统工程领域,专业能力边界非常清楚,你不会就是不会。 否则硬件轻了出事故,重了要出人命的。 软件不一样啊。 今天写下的一段烂代码,能跑、测试能过、项目能验收。 毕竟验收的人又不懂(可能写代码的人也是不知道从哪复制粘贴的)。 但时间一长就会变成一坨屎山。 而维护他的人又完全不在乎。 这就能解释很多日本 IT 里看起来互不相关的现象。 几十年前的祖传 COBOL 继续修修补补。 系统之间继续全传 CSV。 关键业务最后长成一个巨大的、谁都不敢动的 xlsm 文件。 各种结算系统一到到某个时间段,就停止服务,开始批量运行夜間バッチ。 乐天商家后台还要靠写 HTML 标签去维护内容。 各种票务网站,同时几个人一起打开,就会提示限制访问。 所以日本缺的可能从来都不是会写代码的人。 毕竟往后写代码也越来越不值钱了。 它缺的是一个真正把技术能力本身当作价值、让工程师对软件本身负责的产业结构。 因为如果软件永远只是业务的附属品,那么技术永远只需要做到「够用不出错」就行了。 而互联网(乃至未来的AI时代)真正改变的,恰恰是这一点: 软件不再只是用来支撑其它业务的东西。 软件本身就可以是赚钱的业务。
显示更多
据我的职场观察,日本人普遍对软件、数据和系统本身缺乏客观的认识,很难认可软件应有的价值。 我倒不认为日本公司是舍不得为软件花钱,很可能是大多数企业根本都不知道自己要买什么服务。 因此从结果上看,个人感觉日本企业普遍没有SaaS文化,尤其是在传统制造业里,这点和美国非常不同。 而且我当初作为外国人入职时明显感到,同样作为是工程师,只要不是IT专业,很多人对现代软件开发的基本概念都不懂。 身边的日本同事可能非常了解机械、电气、材料、生产工艺或者设备设计,但可能甚至连python是什么都不知道,更谈不上数据结构化。 这就导致大部分人可能甚至听都没听说过class、instance、library、API、database、backend,更加不知道软件系统能够把多少重复性的工程工作自动化。 结果就是公司可能并不是不愿意花钱开发软件,而是自己连软件需求都没有能力准确描述。 比如一个电气工程师如果不知道python可以批量处理Excel,不知道数据库可以管理设备参数,不知道API可以让不同系统交换数据,不知道后台程序可以自动检查设计条件、追踪revision,甚至不知道很多规则性的判断本身就可以抽象成程序,那在面对低效率重复工作时,这个电气工程师想到的只可能是继续增加Excel、增加人工确认步骤,或者要求别人做一个看起来像软件的表单。(所以大手企业里有很多xlsm的macro,这就又增加了维护成本) 做工程的不懂软件,无法准确提出需求,于是把开发外包给SIer或者外部软件公司。 外面的软件工程师虽然懂程序,又不懂发电厂、电力系统、机械设计这些专业知识以及实际的workflow。 公司员工说不清楚自己真正需要什么,外边的软件公司也不知道为什么这个工程流程必须要这样设计。最后做出来的系统四不像,根本没有符合实际的workflow,这就导致软件不好用。 这又反过来强化传统行业对软件无用的刻板印象,于是企业更加不愿意为软件和内部开发能力投资。这是个恶性循环。 日本肯定有很优秀的软件公司和工程师,但在我看来,在日本既懂工程,又能把工程数据抽象成数据结构、算法、数据库和软件系统的人太少了。 这也是我到日本之后感受很强烈的地方。 而且我的本科并不是计算机专业,而是机械工程。 我不知道其他的大学怎么样,但至少在华科,即便是机械工程,python也是作为必修课计入学分的。 当年我也不懂为什么要学这个,我以为只是为了让我们学习Numpy这些数学工具当研究室工具人。 但我现在知道了,其实从这一点上来看,中国的本科教育可能是非常成功的。python课程的设计目的可能只是至少让工程师理解计算机可以做什么,能够自己写一些程序解决工程问题。 我认为这种基础教育非常重要。所以我之前有质疑过日本的本科基础教育。。 工程师并不需要会开发大型软件,但至少应该知道什么事情可以自动化、什么问题适合用数据库解决、什么工作可以写脚本处理、什么时候应该调用API,以及一个软件系统大致是怎样组成的。 只有具备这些基本认知,才有可能提出好的软件需求。否则就跟现在日本一样,天天喊DX,结果就只是买几个极其难用的系统、增加几个网页界面、把Excel上传到云端,然后继续用和二十年前几乎相同的方法。 这并不是真正的软件化,纯粹浪费时间罢了。 日本更需要解决的问题可能是把python等纳入本科基础教育。(但我没在日本读本科,不是很懂日本本科教育到底学不学这些)
显示更多
0
30
314
42
转发到社区