软件发展与科学测量:从手工业到工业化的跨越
1. 软件发展现状与工业化趋势
目前,绝大多数软件开发项目如同传统手工业一般,由软件工匠(开发者)负责。每个代码模块都是开发者手工打造,难以衡量他们的工作成果,也缺乏对这些模块的明确规范。不同开发者的代码模块很难集成到类似系统中。
回顾工业革命,蒸汽引擎并非工业时代的开端,真正关键的是尺子、精密测量工具以及精确测量主导的制造流程。在工业革命前,所有机器都由工匠手工制造,例如枪匠精心打造每一支步枪,其零件是为特定步枪手工适配的,无法与其他步枪互换。而工业革命始于不同人制造的零件能够互换,并且有了精确的零件规格设计。这意味着手工业时代的结束和工业时代的开启。
如今的软件开发方式与过去的手工业类似。软件开发组织的核心是一群有经验和纪律的软件工匠,他们各自在自己的工作空间(小隔间)里手工打造代码模块。定期聚在会议室进行设计评审,讨论模块如何集成。完成各自的部分后,将这些模块拼凑在一起进行首次构建,测试系统通电后的运行情况。若出现问题,将有问题的模块返回给开发者修改,然后再次构建,如此反复,直到系统运行达到可接受的水平。像驿站马车、快速帆船、城堡、大教堂等都是以这种方式建造的,喷气式飞机的航空电子设备和核反应堆的控制系统也是如此。然而,我们构建的复杂系统中,硬件是按照最佳工程实践设计的,软件控制系统却像燧发枪一样手工打造,这显然是不合理的。软件发展需要引入最佳工程实践,即将步入计算机软件开发的工业时代,其驱动力将与工业革命相同,即基于测量技术的工程原理。
以下是传统软件开发流程的 mermaid 流程图:
graph TD;
A[开发者
超级会员免费看
订阅专栏 解锁全文
9630

被折叠的 条评论
为什么被折叠?



