日本人开发软件为什么落后(之二)?

语言: CN / TW / HK

软件需要非常快速的创新、而创新存在风险。日本的传统教育是做任何事情不能有风险。软件开发依赖开发团队管理能力、沟通能力、开发人员技术能力。日本最优秀的学生毕业都到大公司。另外、日本软件开发项目经过层层外包实际开发人员缺乏行业经验和软件性能要求的理解、作出来的软件不能保证性能和品质。然后再不断修改、因此、造成软件产品的成本大幅提高和时间大幅延迟。失去进入市场最佳时机。
在现在IT行业中,诸如IoT,AI,DX等新关键字层出不穷。虽然不能怱视硬件作用、但是软件的作用越来越重要。AI系统的一个特征是系统内部被黑盒包装,并且输入和输出无法准确定义。

帕累托原理:“ 80%的时间是在最后20%的时间中度过的”、日本人80%用于软件改善、而美国人用80%时间设计新的软件。不管日本丰田花冠如何改善,美国的特斯拉都是赢家。20年前不论日本手机厂家Sony/Panasonic/Kyocera/Sharp/Casio/的手机设计成什么样和有什么功能,肯定打不过触摸式智能手机(如Android和iOS)。因此、日本大多数手机厂家都以失败而退出市场。
这与日本人接受的传统的等级教育和工作息息相关。日本人在大学时期日本学生也可能会找到比尔·盖茨的DOS思想和谷歌的算法、但是日本学校不允许学生像美国大学那样“玩弄”学习以外的东西,不能像谷歌那样做浮华的工作。
微软,苹果,谷歌的开发团队都是由天才组成的小型团队,软件需要非常快速的创新,精益和敏捷、但是它比硬件便宜得多,因此,即使是像Apple和Microsoft这样的小型公司也可能威胁IBM。创新是存在风险的。日本公司的文化是做任何事情都不能有风险的。

在日本,最优秀的学生毕业都到大公司。因此、许多日本公司软件开发团队由低水平人员构成、往往软件开发人员进入团队后再从软件开发,编码,项目管理和管理分析开始学习。在日本,软件开发的前沿技术比世界其他地区落后六至七年。日本软件开发是重视设计一种倒金字塔方法。
另外、日本政府和大多数企业又把项目委托给技术咨询公司、而技术咨询公司实际上并没有或只有很少的开发人员。他们将工作外包给外包公司,外包公司又将工作分包给下一级外包公司。该产品上的实际开发人员可能处于第几个分包合同级别。无法管理业务需求中的更改。开发人一样缺乏行业经验。

一般的硬件就是“可见的东西”。例如:显示器,硬盘,打印机,扫描仪,键盘,鼠标等。硬件相当于身体。而软件就相当于人的神经和知识“不可见东西”。
硬件可以通过数字测量,例如性能指标、缺陷率,与设计规范的兼容性以及市场变化。比较容易把握。硬件具有从开发到生产的各个阶段,每个阶段均由多个部门和供应商有关系。例如,机械设计师绘制工程图,模具制造商制造模具,生产工程部门确定成型条件,生产部门创建工作手册。通常,单独一个人完成所有工作是不可想象的。因此,不可避免的是要采用一种过程方法来管理好每个阶段的输入和输出。
日本人工作认真勤勉、是一个手工业者的国家,适合手工加工工作和生产硬件产品。但是对软件开发就适得其反:人们不能提供100%完美的软件产品,如果产品不及时上市竞争对手则在此之前将其产品推向市场。

软性方面往往不容易测量、对于高性能和质量软件依靠开发团队管理能力、沟通能力、开发人员技术能力、找到一个BUG需要很长时间、开发成本和时间不好控制。在设计,编码之后,每个阶段的开发人员全部由一个人负责,对于开发人员能力将影响开发进度和品质。即使开发团队、对于设计,设计文档审查和编码各个过程,如果没有人高水平人员检查每个过程是否正确,开发出来软件也是不能保证品质和性能的。

日本人开发软件为什么落后(之二)?