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