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