代码信息化:软件业“第二次工业革命”的契机
软件行业面临最终产品信息化瓶颈
如今,快递、外卖等行业通过信息系统实现了精准的产品和服务数字化管理。快递软件可以实时追踪每个包裹所在位置,调配最佳物流链路;外卖软件根据客户评价、菜品销量等数据持续优化产品和服务。这些成果都有赖于软件行业多年来对各行各业数字化建设的支持。
然而讽刺的是,软件行业自己最终的产出——源代码,几十年来一直是信息的黑箱。我们无法像查询图书数据库那样,快速准确地搜索代码内的内容。哪怕只是更改一个函数接口,也无法立即知晓会对项目造成什么影响。代码类似企业的“脑细胞”,它记录了每个项目的全部信息和知识,但我们没有建立代码的“神经网络”,来实现项目知识的有效流通。
代码信息化:颠覆软件开发现状的一个出路
目前,软件开发中的各岗位人员在沟通和协作时,主要依赖的仍是需求文档。但文档往往在开发后就失去价值,很多细节必须依靠口头交流,沟通成本極高。敏捷开发强调“工作软件”大于“详细文档”,虽提高了开发速度,但代码知识流通的问题仍未解决。随着项目复杂度提高,信息孤岛已成为软件业的发展瓶颈。
如果实现代码信息化,其影响将是革命性的:
1)开发者能快速定位代码变更影响,不再依赖经验,开发效率可提高数倍
2)测试人员可以利用代码知识设计完善的测试方案,大幅减少软件Bug
3)项目经理可以直接分析代码评估进度和风险,不再“盲人摸象”
4)产品经理可以用代码数据做产品决策,快速响应用户需求
5)业务部门可以直接查询代码,不再重复提供需求信息
6)运维人员利用代码知识快速定位、解决故障
当代码成为可搜索的知识库后,软件开发将真正实现“自动驾驶”。各岗位均可以自主从代码获取所需信息,开发生命周期将无缝衔接。人与人之间的沟通成本大幅降低,软件质量将达到新的高度。
代码信息化解决了当前软件业“失忆”的现状,知识无法有效流通与积累。它就像互联网连接了分散的计算机资源,软件开发将由碎片化协作进入快速流水线模式,释放巨大生产力。这是软件行业实现突破,颠覆现有开发模式的唯一出路。各方正积极尝试机器学习等新技术,让这一革命性变革快速实践。
软件开发模式亟需从理论上获得突破
软件业拥有70年历史,开发模式从瀑布模型到敏捷开发已有巨大进步。但近10年来,低代码、无代码平台的兴起并未对行业发展造成根本性颠覆。因为它们更多是从工具层面降低编码门槛,而没有从本质上减少软件交付的复杂性。复杂的需求获取、设计、开发、测试、交付流程仍存。
在全面实现了CI/CD之后,细微的流程改进已难以对软件开发产生量级影响。要获得突破,必须从理论上对软件业进行流程再造,而非仅就现有的工作模式进行优化。例如,针对代码信息化障碍的理论研究可建立起新的软件开发体系。
如果代码成为可搜索的知识库,软件开发将焕然一新:需求可直接转换为代码,自动生成代码框架;设计者可通过组装代码实现模块,无需定制开发......。开发模式将从“手工制造”进入“大规模自动化”阶段。
代码知识的连接流转,就像电力网络的建立,彻底改变了交付形式。各开发环节打通信息壁垒,软件产品从设计到交付进入自动流水线模式,开发效率提升数倍乃至更多。这将是软件业发展的又一次大潮。如同互联网连接起分散的计算资源,代码知识的有效组织连接也会释放软件开发的巨大生产力。理论研究应聚焦源代码信息化这一本质问题,揭开软件开发新的纪元。
作者:徐少侠
出处:http://www.cnblogs.com/Chinese-xu/
出处:http://www.cnblogs.com/Chinese-xu/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
如有问题,可以通过 Chinese_Xu@126.com 联系我,非常感谢。