AI重构软件开发全流程:18个月生产力翻倍、缺陷率降65%,组织变革是关键!
一年半前,在硅谷的一场会议上,我目睹一个AI智能体实时编写生产级代码,便深知工程模式即将改变。几周内,我的团队不再纠结是否采用AI,而是探讨如何围绕它重新设计法律软件开发方式。
从那之后,我们研发组织中每位工程师的产出大致增长两倍。每季度发布的版本数量几乎翻番,部署次数从82次增加到155次以上,过去18个月里,每百万行代码中客户报告的缺陷数量下降65%。我们用DORA指标、周期时间、每位开发者合并的拉取请求数量以及每位开发者相对于固定基线更改的代码行数来跟踪数据,各项指标均明显提升。
实现这些改进,工具重要,但组织的运作方式才是关键。我交流过的每位CTO都在进行某种AI编码试点,也都有不错成果,像更快的原型制作、更好的测试覆盖率和更高效的初稿编写。但几乎没人改变开发生命周期本身,而这正是我们取得显著成效之处。
过去18个月,我们围绕AI重建了产品开发生命周期。需求、开发、测试、安全、部署和治理等环节都有变化,有些甚至面目全非。过程中我们也犯过不少错,若一开始有人给我些经验,能为我们节省几个月时间。
最大收益:消除交接环节
我们原以为生产力提升主要源于AI更快编写代码,实则不然。最大收益来自消除各阶段间的交接环节。旧模式下,一个功能发布前至少要经过四次交接:从产品到开发、从开发到QA、从QA到安全,再从安全到部署运营。每个交接环节都耗时,还会导致信息丢失。一个功能可能一天内就能完成编码,但却要等上两周,因为每个团队都有自己的积压任务和优先级。
于是,我们进行了重组。如今,一个团队负责一个功能的全流程开发,AI智能体处理每个阶段的常规工作。一个功能从规格定义到完成可工作的拉取请求,过去需15天,现在只需约4个小时。若从本文只汲取一个要点,那就是衡量从创意到部署的总时间,而非生成的代码行数,然后找出工作停滞环节,那里就藏着提升潜力。
治理助力:加速采用进程
多数工程组织在创新证明其价值后才引入治理机制,我们则反其道而行之。我们为律师开发软件,在高风险工作中给出错误答案可能让客户付出沉重代价,所以“快速行动,后期修复”的策略对我们不可行。在扩大试点团队规模前,我们就为AI生成的所有代码设定了代码审查、安全扫描和质量标准。置信度评分机制让常规审批自动通过,低于阈值的则交由人工处理。安全和质量检查嵌入流程,而非在最后作为检查点。
没想到,这大大加速了AI的采用进程。工程师们信任这个系统,没人担心AI生成的代码能否通过审查、是否会引入漏洞,或在模型出错时自己会被问责。18个月前,我们约3%的拉取请求使用了AI辅助,如今这一比例达68%,组织内每位工程师都在使用AI,同期漏洞密度下降76%。我们先建立治理机制,再推动采用,与大多数人做法相反。
工具选择:精通选定工具
几乎每周都有更好的模型或智能体推出,一开始我们花很多精力评估它们,但后来停止了这种做法,选定一小部分编码智能体并进行标准化。深入使用选定工具比追逐最新工具更有价值。我们了解了编码智能体的优势和失败模式,并围绕它们的实际表现调整了工作流程,这比下一个版本的承诺更重要。那些追逐每个新模型的团队把时间花在评估上,每次更换工具都会重置他们与上一个工具建立的操作习惯和信任,结果是进行很多试点,但实际改变很少。
全生命周期自动化
AI编码工具最明显的应用场景是编码环节,但我们一些最大的成果来自生命周期的边缘环节。我们为每个阶段都构建或部署了专用智能体,包括需求定义、冲刺规划、代码生成、测试编写、安全扫描、部署和站点可靠性。每个智能体只负责一项任务,并根据单一结果进行评估。
实现这一目标的关键是一个由产品和工程团队共同维护的集中式知识仓库,这是一个经过整理和结构化的知识库,并具备检索增强生成功能。每个智能体都从这个单一的事实来源获取产品上下文、领域规则和先前的决策,因此一个阶段的输出可以直接作为下一个阶段的输入。没有这个知识库,我们的智能体虽然速度快,但在每个交接环节都会丢失信息。
需求定义是早期最显著的成果。过去这一阶段需要数周时间,现在我们构建了一个智能体,它会像苛刻的利益相关者一样审视原始产品创意,不断追问漏洞,直到规格定义可以进入开发阶段,而这个阶段现在只需一个下午就能完成。测试环节进展更快,因为质量工程师将重点转移到优化和改进构建测试的智能体上。AI现在生成了我们99%的新测试,而一年前这一比例为47%,测试套件中已有超过39,000个由AI开发的测试,这是我们人力无法实现的数量。每个测试都是直接针对其所覆盖的代码更改生成的,并根据产品需求文档中定义的功能需求进行检查,因此测试数量的增加并没有影响可追溯性。工程师们将时间花在审查、优化和强化系统生成的内容上,而不是编写初稿,这种从编写测试到管理和强化测试的转变,是我们在提高速度的同时提升质量的重要原因。
我们从产品开发生命周期的一个领域入手,取得成功后再进行扩展。我建议大家采用这种方式。关键是先在某个领域试验,找到可行模式后再扩展到其他阶段,而非试图一次性在所有领域推广,然后再重新构建框架。
设计适配:应对速度提升
我们设定了一个公开且明确的目标:在12个月内将研发生产力提高一倍。这个目标颇具挑战性,有段时间我甚至不确定能否实现。但这个激进的目标让每个人都认识到,渐进式改进无法达成目标,我们必须在底层技术仍在发展时摒弃旧的工作方式。我们在一年内实现了目标,此后产出持续增长。
我低估了瓶颈向下游转移的速度。工程环节提速后,瓶颈转移到了市场推广阶段。每次发布都需要文档、培训内容、面向客户成功团队的简报,以及做好准备的客户。有段时间,我们的发布速度超过了这些工作的跟进速度。现在,我们将市场推广视为生命周期中一个独立的自动化阶段,采用与代码和测试相同的智能体驱动方法,并遵循一个简单的规则:在组织的其他部门能够提供支持之前,不进行任何发布。如果重新开始,我会从一开始就构建这方面的能力,而不是通过惨痛的教训才意识到它的重要性。
变革核心:组织层面重塑
工具很重要,但大家都能购买相同的工具。过去18个月,我们真正做的是围绕AI重新设计整个系统,包括团队之间的工作流程、让人们信任输出的治理机制、我们选定的一小部分工具,以及一个足够激进的目标,促使所有这些因素协同作用。其中任何一个单独的因素都只能带来一次有趣的试点,而它们共同作用,造就了一个全新的工程组织。
这一切还远未结束。模型在不断改进,生命周期也会随之改变。组织层面的基础工作使我们能够在每次改进出现时及时吸收。对于仍处于试点阶段的技术领导者来说,我建议从构建这个基础工作开始。