软件与AI:规划式开发与即兴式开发
本文探讨了软件开发中两种方法——规划式(类似小说创作的‘情节规划’)和即兴式(‘随性写作’)——如何影响AI工具的使用。作者认为,AI代理(自主执行)适合规划式开发,而AI助理(协作辅助)适合即兴式开发。在现有代码库中,即兴式开发有助于建立理解,而AI代理可能阻碍学习。在全新项目中,AI代理风险较低,但即使如此,代码生成也会剥夺部分编程的乐趣——即通过探索问题来学习的‘玩乐’过程。关键在于根据当前开发阶段选择合适的AI风格。
软件开发与小说创作之间存在有趣的类比。小说中有两种写作风格:一种是“规划者”,他们在动笔之前先构建世界、角色和大纲;另一种是“即兴者”,他们从几个有趣的角色和设定出发,随性写作,让故事自然发展。这两种风格在软件开发中同样存在:规划式开发强调在编码之前先通过设计文档进行深思熟虑,而即兴式开发则将代码本身视为思考工具,通过编写代码来逐步理解问题。
AI工具在这两种风格中扮演不同角色。作者将AI分为两类:“代理”能够自主完成目标,从高级规范直接生成最终产品;“助理”则与人类协作,如自动补全、代码审查或研究辅助。代理更适合规划式开发,因为它们可以将已有的理解转化为代码;助理则更适合即兴式开发,因为它们帮助开发者从现有代码和文档中提取知识,增强理解。
实际应用中,开发者面临的两类场景——现有代码库(棕色地)和新项目(绿色地)——对AI的使用有显著影响。在现有代码库中,尤其是当项目庞大且历史久远时,开发者往往需要采用即兴式开发来逐步理解系统。此时,代理式AI难以发挥作用,因为瓶颈在于理解而非编码。相反,助理式AI(如自动建议、代码审查)可以有效支持学习过程。在绿色地项目中,由于约束较少,代理式AI风险更低,可以加速开发。但即使如此,完全依赖AI生成代码会剥夺开发者通过“玩乐”式探索来学习问题的机会,而这正是编程乐趣和专业知识积累的重要来源。
最终,作者强调没有一种AI风格适用于所有场景。关键是根据当前开发阶段和任务性质,选择合适的AI工具:当你已经理解问题并需要高效表达时,使用代理;当你还在探索和理解问题时,使用助理。这种选择不仅能提升效率,还能保护编程的乐趣和知识的深度。