The Tower Keeps Rising
547 points • 3 days agoArticle Link

Tower of Babel 的故事常被解读为对傲慢和人类野心危险的警示,但同样可以用来说明集体成功依赖于团结与协作。在圣经的记载中,建造者拥有共同的语言,使他们能够同步行动,完成任何单个个体都无法完成的壮举。当他们彼此理解的能力被剥夺时,塔的建设就停了下来。这凸显出,技术与文明的进步从根本上依赖于一群人维持统一目标和共同话语的能力。

在现代软件开发的语境下,人工智能辅助编程常被宣称能提升个人生产力并加快代码产出速度。毋庸置疑,AI 代理确实让开发者更有能力修改代码库,但大规模软件项目的主要约束很少是代码产出速度。相反,这些项目的成败更多取决于团队能否有效地维持对系统的共享理解。这种内部语言包括约定的概念、架构边界以及系统为何这样设计的理由。

传统上,这种共享理解是通过一定程度的摩擦来维持的。当开发者需要修改系统中复杂的部分时,他们必须与他人沟通、提出问题,并将自己的意图与那些拥有或依赖该代码的人同步。尽管这个过程有时效率不高,但这种摩擦起着关键作用:它迫使开发者相互学习,确保所有相关人员对系统的运作保持一致。这种协作过程充当了同步机制,把集体知识嵌入到开发团队的人际网络中。

如今,AI 代理威胁着消除这种必要的摩擦。开发者可以利用代理在孤立的情况下实施变更,常常无需咨询同事或深入理解更广阔的架构。每一次独立修改看起来都合理、能通过必要的测试,但累积起来的结果却是在侵蚀共享的架构话语。由于代理可以按需生成解释,开发者得以在各自的孤岛式、局部化方式中工作,实际上绕开了维持对整个项目连贯统一心智模型的需要。

这就产生了一种与圣经中关于 Tower of Babel 的神话不同的新型、令人迷惑的局面。在原故事中,失去共同语言导致了立即的失败和建设的停止。而在现代的人工智能辅助工程中,建设并没有停止。因为代码仍能被不知疲倦的 AI "翻译者"管理,即便底层的人类对架构的理解已实际崩溃,项目仍会继续扩展。塔在不断升高,但曾经维系其完整性的凝聚力已被孤立的、由机器驱动的局部改动取代,这些改动掩盖了参与者已无法真正统筹系统全局的事实。

267 comments • Comments Link

• 软件的可组合性需要类似 Tetris 中清除整行那样的架构纪律,抽象必须保持稳定且精炼,以防止无序、无限制的膨胀。

• 当前的 AI 代理擅长局部任务,但缺乏那种用于预测软件架构如何随时间演进的高层次、稀疏且可伸缩的心理模型。

• "vibe coding" 引入了扩展性问题:由 AI 驱动的开发倾向于优先完成任务而非克制实现,导致冗余实现和代码库碎片化。

• AI 被激励优先处理短视任务,因此往往缺乏构建能抵御技术债务、简洁且可维护系统所需的结构性"智慧"。

• 在专家引导并处于熟悉领域时,工程效率会显著提升;而在不熟悉的领域使用 AI 常常产生不可维护、充满缺陷的产出。

• 快速、由代理驱动的软件构建过程可能制造出一种进步的错觉,同时掩盖共同理解的瓦解,最终堆砌出一座缺乏连贯基础的"塔"。

• 大规模软件本质上受制于人类协作,而 AI 在未伴随建立共同语言或团队共识的情况下快速生成代码,会使这一问题更加复杂。

• 使用形式化的"Pattern Languages"来指导 AI,以维持技术、产品和业务模型的一致性,有助于保持 AI 辅助项目的连贯性和组织性。

• 人们正把 AI 辅助工程视为一项管理任务,工程师的角色更像是自治代理的主管,而不是传统的编码者。

• 尽管 AI 能减少偶然复杂性,但无法消除本质复杂性,这要求人类持续专注于领域建模、架构完整性以及代码阅读等关键实践。

向 agentic programming 的转型,意味着从协作式、行会式的软件生产模式向机械化模式转变,在这种新模式里,个体工程师管理着由自动化产出构成的"塔"。这些工具显著降低了准入门槛并减少了偶然复杂性,但也带来了系统变得脆弱且逐渐脱离人类理解的风险。共识认为,如果不刻意维护架构的简约性和共享心理模型,AI 驱动的构建速度可能会超过开发者维持系统长期连贯性的能力。