作者
徐永硕:SAP资深数字化专家,加入SAP前曾就职于i2、Servigistics担任顾问,也曾领导过一家物联网媒体公司的早期运营。
本文以软件和设备的主要区别,介绍企业软件行业发展的一个主要矛盾:平衡规模化与个性化的难度。
机器的逻辑
工业革命打开了人类社会由农业社会向工业社会转变的开关,工业社会的一个显著特征就是人类利用机器设备充分利用化石能源,利用工具实现标准化、规模化生产,大大提高了劳动力素质,彻底改变了人类的生产生活方式,对社会结构产生了深刻影响。
工业装备的使用是实现标准化、规模化生产的基础,规模化是工业社会的主要特征。这里强调的是五金(即机械设备)工具,主要解决规模化的问题。
机械进化
工业革命的两大代表珍妮纺纱机和改良蒸汽机,以及工业2.0的典型代表福特流水线(三台硬件设备)的应用,实现了规模化生产产生软件危机的原因有如下几点 除了,通过规模化解决了生产效率的瓶颈。珍妮纺纱机促成了工厂化生产模式的诞生,福特流水线使规模化生产模式走向成熟,实现了单品1000万台以上的规模化生产。
工业革命早期发展的主要特点是:机械设备(五金)工具的使用促进了工业化的大规模生产模式,规模化生产大大提高了生产力水平。五金是实现规模化的工具。
1950年,日本工程师丰田英二在参观福特鲁奇工厂后,没有引进流水线,而是创造了一种独特的管理模式:看板管理。创造看板管理的主要原因是汽车工业进入了小批量、多品种时代,汽车装配作业的多工序、多样化的产品带来了物料与产品的匹配问题。在信息传递工具匮乏的时代,看板模式利用移动运输车辆传递信息,解决了产品类别与物料的匹配问题。这已经是个性化配置的开始。
从制造业来看,丰田用看板模式取得了巨大的成功,最终演变为精益生产的经典制造模式。后来,计算机作为信息处理和信息传递的最佳载体普及后,在生产制造中得到广泛应用,软件在多品种生产中发挥着越来越重要的作用。
随着机械设备的广泛应用,技术的成熟,人们开始利用机械设备来解决更为复杂的问题。工业化之后,社会制度发生变化,政府在旧制度改革中需要大量的统计工作,引发了制表的需求,需要大规模地进行加减运算,探索利用机械设备进行计算,从而诞生了计算机。
早期计算机需要耗费巨资对机械装置进行个别微分方程的设定,造成微分分析方程计算工作量巨大,因此基于机械硬件进行个性化需要复杂的微分方程设定,时间成本非常高。
不过这台微分分析机启发了约翰·莫奇利和约翰·埃克特,他们研制出了世界上第一台通用电子计算机ENIAC,每秒可以进行5000多次加法和300多次乘法,但ENIAC在解决特定问题时仍需要2天的设置时间。为了节省设置时间,莫奇利和埃克特提出了“存储程序计算机”的设想,希望在计算机上加入存储程序的功能,为程序员节省漫长的设置时间。1944年9月,冯·诺依曼听取了莫奇利和埃克特的想法,提出了电子离散变量自动计算机(EDVAC)。随后,三人继续对EDVAC的设计进行改进,最后冯·诺依曼起草了一份报告《EDVAC报告草案1号》,描述了存储程序计算机的逻辑结构,也就是我们熟知的冯·诺依曼架构。后来,EDSAC 运行了第一个程序,证明了 EDSAC 结构(即冯·诺依曼结构)的可行性。但用机器码编写程序太难了,这导致了编程友好的表示形式——汇编语言的诞生。后来,IBM 启动了 FORTRAN 项目,美国国防部发起了 COBOL 语言。这两种语言的流行激活了软件需求,促进了软件行业的发展。在随后的 20 年里,COBOL 和 FORTRAN 占据了编程语言的主导地位。
从软件的诞生我们可以看出,软件是为了解决计算机设置与计算要求设置时间过长的问题而逐渐探索出来的一种方法。
个性化软件解决方案
20世纪50年代以后,多品种生产给生产设备配置带来困难,出现了软件来解决个性化配置问题,所以工业软件就是解决相对于设备的个性化问题。
1953年产生软件危机的原因有如下几点 除了,GE在全球有125个分公司,员工超过40万,每月统计员工工资需要耗费大量的人力,后来GE采用商用计算机开始进行工资统计,软件行业进入快速增长期。
GE最先使用的工资统计软件,一方面解决了规模化的问题,40万员工的工资在数据统计上是规模化的;另一方面,每个员工的工资数据都是不一样的。
工业革命以后,利用工具实现规模化生产,带来了生产力的提升,也刺激了个性化需求,软件平衡了规模与个性化,刺激了软件的需求,带来了软件承包行业的繁荣。
1955年3月,来自IBM的科学程序员在纽约成立了Computer Idioms公司,开展软件承包业务。早期软件承包成本低廉,只需要一块编码板和一支铅笔。通过租用机器时间,公司以低成本实现了快速增长。在早期软件需求的推动下,公司迅速与石油、核电、NASA等合作,实现快速发展,并于1960年上市。
随着计算机使用公司迅速增长,美国进入软件承包商的繁荣时期,到1965年,美国已经有四五十家大型软件承包商,年销售额从1000万美元到1亿美元不等,主要承接组织机构的个性化定制需求。
软件承包行业的出现,极大地缓解了计算机程序员稀缺的瓶颈,促进了组织对软件的使用;然而,软件行业在发展过程中遇到了软件规模化的问题,软件本身的规模化、个性化成为新的瓶颈。
IBM 最先遭遇软件危机:1962 年,它开始规划 System/360,最初预计开发需要四年时间,耗资 1.25 亿美元。然而,当整个项目最终交付时,却比原计划晚了一年,项目投资超过了 5 亿美元,是预算的四倍。项目成员数量也远远超出预期,最高峰时有 1000 名程序员参与该项目。
System/360软件项目规模庞大,总代码量超过100万行,导致预算超支、成员数量超过预期、项目延期,软件项目规模过大导致软件实施出现危机。
注:软件的困境
软件危机的本质是软件行业如何平衡规模化与个性化的矛盾。为应对软件危机,业界探索出了两种解决方案,一是通过提高软件的可复用性来促进规模化,比如软件产品化;二是通过软件工程来应对个性化需求,比如很多软件承包商基于企业架构构建软件实现方法论。
自从工业4.0概念提出以来,个性化成为制造业的主要特征,产品个性化与规模化的平衡成为主要矛盾。软件定义制造概念的提出,也是用软件来平衡个性化与规模化,这将进一步促进软件在工业中的应用。软件的规模化应用将加剧软件规模化与个性化之间的平衡矛盾。
在数字经济的大潮中,中国工业软件和工业互联网企业遇到了难得的发展机遇。对于工业软件来说,技术上的差距很容易弥补,但软件行业本身的管理问题则需要更长的时间去弥补。需要适应不同用户需求的差异,通过规模化获得企业生存的足够收益,在规模化下保证优质低成本的交付,才能从软件项目中获得丰厚的利润。如何平衡软件的规模化和个性化将是更大的挑战。