Synth Daily

Vibe Coding 时代,为什么降本不一定增效?

Vibe Coding 表面上赋予了开发者快速实现想法的超能力,引发了关于产品、设计和工程师角色将被 AI 取代的论调,许多公司也试图借此裁员降本。然而,这种做法往往事与愿违,导致产品充满问题,最终不得不重新雇人。根本原因在于,软件开发如同建造大楼,单纯追求编码速度会加速「架构腐化」,使系统迅速变得难以维护。真正的增效之道,是利用 AI 节省下的时间,投入到更严谨、更依赖人类思考的流程中,包括深入的用户研究、清晰的需求定义、稳固的架构设计和严格的质量管理。最终,人的价值并未消失,而是转向了提出好问题、把控方向和确保质量这些 AI 无法胜任的核心任务上。

架构的劣化:为什么快就是慢

开发软件并不像随手作画,它更像是一个层层叠叠、依赖紧密的建筑工程。从产品要解决的根本问题,到视觉、体验和信息架构,再到工程架构,每一层都是下一层的基础。

如果盖大楼的时候,工人已经盖到第五层,突然土老板想要在三层和四层之间加一个空中花园,你大概会觉得这人疯了。

在开发中,这种疯狂的需求变更却很常见。变更的层级越基础,对整个「楼体」的破坏性就越大。如果团队中的任何角色,无论是老板、产品经理还是工程师,都抱着「先随便塞进去交差」的心态,整个工程就会迅速劣化。

  • 技术债的累积: 经过数次迭代,工程会出现大量飞线、复制粘贴的代码、混乱的逻辑和难以追踪的事件流。
  • 维护成本飙升: 随便改动一个模块都可能引发一连串的 bug,修复一个问题又会产生新的问题。
  • 开发效率骤降: 劣化越严重的工程,开发起来就越慢、越痛苦,最终不得不推倒重来。

Vibe Coding 虽然输出代码的速度很快,但也因此加速了架构腐化的到来。因此,它节省下来的时间不应该用来堆砌更多功能,而应该被用于清理技术债、撰写文档、进行代码评审和测试,以维持架构的健康。

把事情想清楚:一套替代臆想的开发流程

软件研发是一场漫长的接力赛,每个环节的参与者都有义务把问题想清楚再交棒。这套流程的核心是从抽象到具体,逐步缩小猜测的范围。

1. 澄清问题与用户

一切开始于一个好问题,以及对使用者的清晰定义。

  • 找到好问题: 这个问题需要是明确的、可证伪的、且真正有人需要的。
  • 绘制用户画像: 这一步需要基于真实的用户研究,而非凭空想象。画像应包含用户的背景、动机、目标和痛点。让大语言模型(LLM)虚构用户是危险的,因为它没有真实的生活体验和情感。 > LLM 没有真正活过,没有在真实的一天里遇到过让自己惊喜的瞬间,也没有遇到过让自己沮失去到想放弃的瞬间…要拿到这些经验,你必须走出办公室和真人进行沟通。
  • 定义用户故事 (Epic / User Story / Job Story):
    • Epic: 描述用户想要达成的大方向,如「作为个人 NAS 玩家,我希望能轻松备份所有文件」。
    • User Story: 将 Epic 拆解成具体的可开发单元,如「作为每天产生 10GB 视频素材的用户,我想指定不备份的文件夹,以节省空间」。
    • Job Story: 关注触发动作的具体场景和动机,如「当 NAS 空间将满时,我想一键排除所有缓存文件,以便为新项目腾出空间」。

2. 规划体验与流程

通过用户旅程地图 (Journey Map) 将用户诉求与功能设计连接起来。地图通常包含:

  • 顶部: 设定用户、场景和目标。
  • 中部: 描绘用户在不同阶段的动作、想法和情绪曲线。这条曲线能直观地暴露出体验中的痛点,指明需要优化的方向。
  • 底部: 总结发现,找到产品优化的机会点,并定义衡量成功的标准。

3. 从想象到现实

在写代码之前,原型设计是不可跳过的步骤。LLM 可以帮助快速生成低保真原型,但仍需人类的设计知识来修正其「AI 味」十足的设计。在原型得到用户和利益相关者确认后,工程师才能基于充分的信息,做出具备包容力的架构设计。

管理你的硅基员工:驯服大语言模型

将思考完全外包给 LLM 是工程腐化的根源。管理者需要像管理团队成员一样,建立一套机制来约束和引导 AI 的工作。

  • 引入多元视角: 使用不同厂商的模型,可以提供更多元的视角,降低单一模型带来的盲点。
  • 建立质量标准: 为 LLM 设定明确的开发规范,并持续更新。这套规范应强制模型遵守,例如:
    • 定义「完成」: 任务只有在被完整集成、验证和清理后才算完成,拒绝半成品。
    • 拒绝模糊: 禁止使用「更好」、「更干净」等主观形容词,除非附带可验证的数据。沟通必须精确、客观。
    • 规范语言: 禁止自造词或不精确的口语化表达,以降低沟通成本。
    • 坦诚不确定性: 如果没有明确的最佳方案,应如实说明,而不是硬造一个虚假的二元选择。
  • 善用自动化约束:
    • Linting 规则: 使用工具强制执行代码风格和最佳实践,比如禁止 any 类型、要求提取命名类型等。规则比提示词更稳定、更有效。
    • 测试驱动: 没有测试的代码默认就是坏的。 在修复 bug 前,先用测试复现问题,可以避免 LLM 四处抓瞎。
  • 建立流程架构:
    • Agent 管理: 采用多层 Agent 架构,让不同 Agent 负责规划、开发、审查等单一任务,避免因上下文过长导致模型「降智」。
    • 文档化: 建立严格的文档体系(如需求文档、审查报告、技术笔记),将决策过程固化下来。这能确保知识沉淀,避免重复造轮子。

人的价值:在 Vibe Coding 时代无可替代

大语言模型可以模仿对话,但它无法真正理解和共情。

LLM 没那么在乎你的项目是否成功……So, unfortunatelly 机器 don’t give you a fuck。

  • AI 缺乏共情: 它没有真实生活经历,无法理解用户的真实困境,也无法与人产生情感共鸣。
  • AI 无法担责: 最终为产品成败负责的永远是人,而不是模型。
  • AI 欠缺宏观视野: 机器擅长处理局部细节,但难以把握一个庞大项目的整体架构和价值。

因此,在 Vibe Coding 时代,人的价值不但没有降低,反而变得更加聚焦和重要。人的核心竞争力在于:

  • 提出好问题: 无论是关于用户的,还是关于工程架构的。
  • 掌控设计与质量: 发现 LLM 输出中的瑕疵,进行精准追问,确保最终产出的质量。
  • 把控方向: 将 AI 释放的生产力,重新投入到更深度的思考、架构维护和流程优化中,确保产品的长期可持续性。