软件会日抛吗?
近日,钉钉&悟空创始人陈航发表了一场演讲。演讲中提到:
“不管你以前的代码系统多复杂,你现在把ERP系统的界面丢给AI,把原来的代码库全部丢给AI,立刻重写。”。
“以前你近视了,要到眼镜店去配一副眼镜。现在都是隐形眼镜日抛,今天配合你的场景,戴一副隐形眼镜,回来以后直接丢掉。软件正在变成日抛,按需生产,按日进化。”
从去年底以来,AI编码的快速进步,让软件构建变得更加高效、成本更低。让想法变成现实,变得更加简单、快捷。
未来的软件真的会日抛吗?
软件本质是对现实世界的抽象和映射,它通过代码实现了对现实世界某个领域的模拟和操作。
我们从复杂度和重要性两个维度来看待软件,以及软件所对应的现实世界的领域。
## 说说复杂度
如何度量复杂度,体现软件复杂度核心变量是控制复杂度和规模复杂度
以前,核心模块的开发难度和完成软件所需要的人月数,决定了软件的复杂度。
决定能不能完成软件的关键是核心技术人员的架构设计能力以及在某个领域的沉淀,也就是我们常说的KnowHow。另外就是我能够采用良好的过程组织多大规模的团队去完成软件的开发。
现在,抛开GUI到AI命令式交互本身的影响不谈,软件复杂度本身变化不大,依然是控制复杂度和规模复杂度,甚至随着效率的提升,人们会提出更有挑战的需求,软件本身的复杂度也会相应提高。软件本身的竞争力来源行业积累与内部组织效率。
但是变化最大的是,衡量软件复杂度方式,现在衡量软件复杂度的核心变成了LLM最大上下文的支持能力,一个软件是不是可以在一个LLM的最大上下文窗口内完成,一个模块能不能在一个LLM的最大上下文窗口内完成,这已经成为了一个重要的指标。规模复杂度方面几乎变得无关紧要,定义好了模式你可以快速生成出无数个不同模块。
同时,AI编程带来的效率提升,会激发更多的需求,产生新的软件形态,更复杂的需求,软件复杂度本身也会提升。
## 说说重要性
什么是重要性能,直观的从领域来看,银行的支付系统是一个核心的业务系统,它的重要性不言而喻。日常的比如客户服务、订单管理、库存管理等,虽然重要性没有那么高,但是它们的存在也是必要的,对于一个公司也是重要的,但是很多日常琐碎的具体场景可能没有那么高的重要性,比如一次活动的组织、一个客户的满意度调查等,当然对于组织者本身依然是很重要的。
所以从这个视角依然带有主观性,除了一些有共识的场景,每个人的判断也是不一样的。
可以引入一些更细分的度量方式来评判,大体上软件本身所对应的业务的价值、业务的持久性要求、业务的精确度要求、业务的质量要求、安全性要求等方面可以去评判软件的重要性。
但是不管怎样重要性本身取决于行业共识以及客户用户本身的判断,带有一定的主观性。
以前是通过更高质量的过程组织,采用更好、更多的资源来保障来保障重要软件的稳定运行。
现在,随着规模更大、更复杂的软件系统的出现,更高质量的过程组织变得更加重要。
如何利用AI构建更好的软件支撑体系成为了一个重要的课题,最近比较热的“Harness Engineering”的某些方面就是行业在这方面的一个重要探索。
## 未来软件会日抛吗
未来软件或者软件模块会随着AI编程能力的提升以及普及,以及人们对AI编程的接受度的提高。
现在的一些低复杂度、低重要性的领域的软件会的开发会变的更加简单,甚至很多平台可以即刻生成,而且会不断向更高重要性、更高复杂度的软件渗透。同时技术进步会激发新的需求诞生新的软件形态。
会不会日抛相信你会有自己的答案
夜雨聆风