软件工厂的概念并不新鲜,早在二十年前,随着软件开发逐渐走向组件化和可重复化,这一概念就曾风靡一时。微软早在2008年就曾讨论过软件工厂的构想。此后这一理念逐渐淡出视野,但如今,随着人工智能生成和管理代码能力的飞速提升,它正强势回归。

过去,即便有了自动化和DevOps实践,"编码仍是许多组织的瓶颈所在",CloudBees首席执行官Moritz Plassnig告诉ZDNET。"你不得不招募更多工程师,但招人既难又贵。"

如今,得益于基础AI模型及其关联智能体的编码能力,软件工厂的概念重焕生机——将软件开发生命周期自动化为可重复执行的模块,正受到业界的高度重视。借助智能体编码,"我们在编码层面的束缚大大减少了",Plassnig说道。这也将提升IT专业人员的角色价值:"开发者的专业技艺不会消失,开发者和工程师将从编写代码转向对构建和交付内容的判断与把控。"

当前的软件工厂概念围绕市场上现有的AI模型构建,且各模型的理念高度一致。前沿部署工程师兼技术布道师Jaymin West在近期的一段视频中指出:"过去约18个月里,许多处于智能体自动化软件开发生命周期前沿的公司,都在独立构建同一套机器,并不约而同地得出了相同的结论。"

正在构建软件工厂的公司,涵盖了当今智能体经济的领军者:Anthropic、Cognition、Cursor、Factory、谷歌、GitHub、OpenAI和Ramp。West指出:"这些公司全都汇聚到了同一种形态。认识到这一点至关重要——它们正是处于前沿的公司,一个清晰的模式正在形成,揭示着它们如何构建整个工程框架。"

软件工厂是快速将想法付诸实践的有效途径,Plassnig举例说明:"假设某人在客户支持岗位工作,基于日常听到的客户反馈,他产生了一个有趣的想法。就像汽车工厂一样,你有一个实验性的原型,但同时也有一个能够规模化生产汽车的工厂。同理,那个有软件想法的人可以将其提交给工厂,完成第一个迭代版本的创建。然后由产品、工程和IT专业人员进行审查,再交还给工厂进行进一步打磨。"

软件工厂有助于应对验证和维护数十万行代码的挑战,以及如今许多组织每天都在进行的软件发布、更新和迭代。

"我们终将到达这样一个节点:人类已无法验证哪些功能正常运行、哪些实际上并不奏效,"Plassnig说。"你需要知道软件是否真的在运行,是否存在漏洞,错误率是否在飙升。或者它虽然在运行,但智能体的内存占用是否超出预期?如今,这些告警都由人工来处理,但如果变更量增加一百倍,每隔几分钟就有一次,整个系统就会崩溃。"

一个典型的软件工厂,在基础模型的支撑下,由六个核心组件构成,West对此进行了概述。

当然,无论软件工厂效率多高,都不是良好软件实践的万能药。

"代码生成如今极为简单,成本也极为低廉,这已不是秘密,"West说。"验证,才是许多公司真正的瓶颈。确保智能体能写出代码很容易,但确保代码的正确性,依然是一个重大的工程难题。因此,讨论构建软件工厂并不意味着可以免除验证责任,或降低代码库的质量标准,这一点至关重要。"

Q&A

Q1:软件工厂是什么?它在AI时代有什么新变化?

A:软件工厂是一种将软件开发生命周期自动化为可重复模块的生产体系,类似于制造业的流水线。这一概念早在二十年前就已存在,但随着AI基础模型和智能体编码能力的兴起,它正在强势回归。新变化在于,AI大幅降低了编码门槛,使软件工厂能够更快速地将想法转化为可交付的软件产品,同时将工程师的角色从"写代码"转向"判断构建什么、交付什么"。

Q2:软件工厂能解决哪些实际问题?

A:软件工厂主要解决两大痛点:一是编码人力瓶颈,过去招募工程师既难又贵,AI智能体的介入大幅缓解了这一压力;二是代码验证与维护的规模化挑战。随着软件更新频率越来越高,人工审查每一次变更已不现实,软件工厂通过自动化流程帮助组织应对每天数以百计的代码变更。

Q3:软件工厂是否意味着不再需要人工验证代码质量?

A:不是。代码生成虽然已经变得简单且低成本,但确保代码正确性依然是重大工程难题。CloudBees CEO Plassnig和技术布道师Jaymin West均强调,构建软件工厂并不等于放弃验证责任或降低代码库质量标准,验证环节仍然是当前许多公司面临的核心瓶颈。

ZDNET