瑞典马工

AI时代,软件工程大有可为

OpenAI 刚刚发布了GPT5,即使按照他们官方的SEE 测试,也只比Anthropic的Opus 4.1强不到1分,而Opus 4.1也只比 Opus 4.0强2分。虽然整个 AI 行业在全力挖掘软件行业的市场,但是大模型能力的进步似乎遇到了瓶颈。

但这只是大模型单兵能力的瓶颈。过去一两年,大家的重点一直是开发一个更厉害的编程助手。即使Claude Code也assume了有个人在敲命令行给它。

这不是 AI 编程的终极形态。我认为终极形态是我在之前文章说的《把Claude Code当员工用!它不是个工具!》。只要LLM还不能训练出一个一人能当一个团队使用的超人AI,那么软件工程就仍然有价值。软件工程能把常人组织起来完成超人都无法完成的项目。

过去两个月,我一直积极的用AI 建设一个Synthetic Coding Team,其采用了如下方法:

1.AI和人类协作,保持Human in the loop。与此相反的做法是”一句话建站”。我和我的朋友们认为后者是荒谬的,是一种自欺欺人的永动机项目。

2.AI和人类异步协作。不论是IDE和命令如何进化,它们总是需要一个人和它结对编程,也就是说,两者的互动是同步的。我看到有朋友一个桌面开十几个Claude,并行开发多个项目,这是测试人类大脑极限了。更优雅高效的做法是把两者互动改为异步的。尽量让AI自主完成工作,只有在需要的时候,才向人类求助。

3. 使用测试驱动开发控制质量。AI作为一个员工,其性格是很古怪的。大多数时候任劳任怨,但时不时又会偷奸耍滑。由于它没有自主意识,也就毫无羞耻心,经常用一些很低级的手法偷懒。比如写测试用例的时候,直接assert mock的内容。因此,质量控制手段针对AI就尤其重要。目前我认为测试是最佳手段。欢迎各位朋友提供更好的经验。

4.积极的使用和固化流程。我有好几个朋友是bmad的粉丝,他们强烈推荐这个方法论。我认为这个方法论很好,但是其依赖于人类敲命令行驱动,过于freestyle。我把流程固定了。

5.对接github。这是一个很具体的选择。但是我个人认为它非常重要。GitHub是软件工程行业事实上的人民广场,是从业者的聚集地,同时又提供极为丰富的生态工具。离开它,你的AI编程团队就要对接各种游离松散的各种乱七八糟工具。

6. 给AI分工。bmad让AI扮演不同的角色,包括scrum master, developer, debugger等等。我也有类似角色。SuperClaude也有这种角色集合。

7. 引入多种LLM模型。这是非常有必要的。比如trouble shooter这个角色,可能就需要引入Gemini以利用其超大窗口来阅读表达的错误日志。

我的这个虚拟团队已经在生产中使用了,极大的提升了团队生产力。昨天我正打算做个开源项目,readme都写好一半了,突然朋友发我一个langchain的项目

LMangChain SWE

我看了一下,除了TDD以外,他们其他方面和我的Synthetic Coding Team几乎一样。这让我既开心又失望。开心的是我的探索得到了认同,失望的是别人完成度比我高,都做成了GutHub Action了。

让人欣慰的事,LangChain选择了非常开放的MIT开源协议。接下来,我会积极的参与这个项目,也欢迎各位一起参与,大家探索AI软件工程的未来。