跳转到内容

Scrum 与敏捷开发:怎么管理一个 AI 帮你做的项目

完成时间:约 20 分钟。读完后你能用 Sprint 的方式管理你的 Vibe Coding 项目,不会”一口气让 AI 把整个系统写完”。


新手最常犯的错误:

❌ 一次性给 AI 一整套需求 → AI 生成一大坨代码 → 你看不懂 → 出了 bug 找不到在哪

正确的方式:

✅ 把项目拆成小块 → 每次只让 AI 做一小块 → 验证通过再做下一块

Scrum 就是帮你做这件事的框架——把大项目拆成小迭代,每轮迭代(Sprint)只做一小部分,做完就验证。

类比:装修房子不会一次性把水电、墙面、家具全做了。你会先做水电 → 验收 → 再做墙面 → 验收 → 再买家具。Scrum 就是这个节奏。


概念一句话解释类比
Sprint一个固定时间的迭代周期(通常 1-2 周)一轮装修工期
Product Backlog所有要做的事的总清单,按优先级排列装修的完整计划书
Sprint Backlog本轮 Sprint 要完成的任务子集这周要做的事
User Story从用户视角描述一个需求”作为业主,我想要厨房能做饭”
Done什么算”完成”(不只是 AI 写完代码,还要验证通过)验收标准

User Story 是描述需求的标准格式:

作为 [角色],我想要 [功能],以便 [价值]
✅ 好的 User Story:
作为普通用户,我想要按月筛选费用记录,以便查看某个月的支出情况。
验收标准:
- [ ] 页面有月份选择器
- [ ] 选择月份后只显示该月记录
- [ ] 月度总额随筛选更新
- [ ] 默认显示当月
❌ 差的 User Story:
做一个费用管理系统。
(太大了,不知道从哪开始,不知道什么算完成)

大需求 → 拆成多个小 Story:

❌ 太大:
"做一个完整的用户系统"
✅ 拆开:
Story 1:作为用户,我想要注册账号(邮箱+密码)
Story 2:作为用户,我想要登录并获得 token
Story 3:作为用户,我想要查看自己的个人信息
Story 4:作为管理员,我想要查看所有用户列表

拆分原则:每个 Story 应该能在 1-2 天内完成(让 AI 做可能只需要 1-2 小时),并且做完后能独立验证。


graph TD
Start["Sprint 开始"] --> Plan["Sprint 计划<br/>(30 分钟)<br/>从 Backlog 挑选本轮 Story"]
Plan --> Work["每天工作 (1-2 周)<br/>给 AI Prompt → 生成 → 验证 → 下一个<br/><br/>每天问自己:<br/>昨天做了什么?今天做什么?卡在哪?"]
Work --> Review["Sprint 回顾 (15 分钟)<br/>做完了哪些?还剩什么?<br/>什么做得好?什么要改?"]
Review --> Next["下一个 Sprint"]
Next --> Plan

Sprint 1(第 1 周):MVP — 能用就行

Story给 AI 的任务验证标准
费用 CRUD帮我做增删改查接口能用 curl 创建和查询费用
费用列表页帮我做一个费用列表页面浏览器能看到数据
按月筛选加一个月份筛选功能选择月份后列表正确过滤

Sprint 2(第 2 周):用户系统

Story给 AI 的任务验证标准
用户注册帮我加注册接口,bcrypt 加密注册成功,密码在数据库里是哈希
用户登录帮我加登录接口,返回 JWT登录返回 token
数据隔离每个用户只能看自己的费用用户 A 看不到用户 B 的数据

Sprint 3(第 3 周):管理员功能

Story给 AI 的任务验证标准
管理员视图管理员能看到所有费用admin 登录后能看全部数据
审批流程管理员能批准/驳回费用状态能从 pending 变成 approved
仪表盘加一个总支出和分类汇总数据正确,和明细一致

注意:每个 Sprint 结束时你都有一个能跑的系统——不是 Sprint 3 才能用,Sprint 1 结束就已经能记账了。


用一个简单的看板跟踪每个 Story 的状态:

┌──────────────┬──────────────┬──────────────┬──────────────┐
│ 待做 │ 进行中 │ 验证中 │ 完成 ✅ │
│ To Do │ In Progress │ Verifying │ Done │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ 管理员视图 │ 数据隔离 │ 用户登录 │ 费用 CRUD │
│ 审批流程 │ │ │ 费用列表页 │
│ 仪表盘 │ │ │ 按月筛选 │
│ │ │ │ 用户注册 │
└──────────────┴──────────────┴──────────────┴──────────────┘

Vibe Coding 的看板多了一列”验证中”——AI 写完代码后,你还需要验证才算真正完成。

工具适合费用
GitHub Projects代码在 GitHub 上的项目免费
Notion个人/小团队,灵活免费版够用
Linear专业开发团队免费版够用
纸笔/白板最简单,学习阶段够了免费

学习阶段用纸笔或 Notion 就够了,不需要复杂工具。


用相对大小估算工作量,不是精确到小时:

点数含义Vibe Coding 实际耗时
1非常简单,一个 Prompt 搞定10-30 分钟
2简单,可能需要 2-3 轮对话30 分钟 - 1 小时
3中等,涉及 2-3 个文件1-2 小时
5较复杂,需要仔细验证半天
8复杂,可能需要拆分一天
13太大了,必须拆分拆成多个小 Story
费用 CRUD 接口 → 2 点(AI 一次性生成,简单验证)
JWT 登录系统 → 5 点(涉及多个文件,要仔细测权限)
审批流程 + 状态机 → 5 点(业务逻辑需要仔细验证)
仪表盘(聚合统计) → 3 点(查询逻辑 + 前端展示)
WebSocket 实时通知 → 8 点(新技术,需要调试)

超过 8 就该拆。如果一个 Story 你都不知道该给多少点,说明需求还没想清楚——回去用思考框架再分析一遍。


每次开始一个新项目,用这个模板规划你的前 3 个 Sprint:

  • 用 6 层思考框架分析系统
  • 写出所有 User Story
  • 用 Story Points 估算
  • 按优先级排列成 Product Backlog
  • 创建 CLAUDE.md
  • 搭建开发环境(Docker + 项目初始化)
  • 挑出最核心的 3-5 个 Story
  • 目标:做出一个能跑的最简版本
  • 不考虑登录、权限、性能——先让核心功能能用
  • 加用户系统 + 权限
  • 修 Sprint 1 遗留的 bug
  • 补充输入校验
  • 性能优化?安全加固?新功能?
  • 看你的 Backlog 里什么优先级最高

误区正确做法
”先把需求全部想好再动手”先做 MVP,在使用中发现新需求
”Sprint 里的 Story 必须全部做完”做不完就移到下一个 Sprint,不要赶工
”AI 写代码很快,不需要 Sprint”AI 快但你的验证需要时间,Sprint 帮你控制节奏
”估算必须很准”估算是为了发现”这个太大了需要拆”,不是为了精确到小时
”一个人做项目不需要 Scrum”一个人更需要——没人监督时,Scrum 帮你保持节奏和方向

用记账系统作为例子,完成以下任务:

  1. 写 5 个 User Story,每个都包含验收标准
  2. 给每个 Story 估 Story Points
  3. 分配到 Sprint 1 和 Sprint 2(Sprint 1 只放最核心的)
  4. 在纸上画一个看板,把 5 个 Story 放到”待做”列

参考答案:

Sprint 1(MVP):
- 费用 CRUD(2 点)
- 费用列表 + 月度筛选(3 点)
- 月度汇总统计(2 点)
共 7 点
Sprint 2(用户系统):
- 用户注册/登录(5 点)
- 数据隔离(3 点)
共 8 点

概念你需要记住的
Sprint1-2 周一轮,每轮结束有可用的产品
User Story”作为X,我想要Y,以便Z” + 验收标准
看板待做 → 进行中 → 验证中 → 完成
Story Points相对估算,超过 8 就拆
核心节奏计划 → 执行(AI写+你验) → 回顾 → 下一轮

一句话总结:Scrum 不是给大公司用的复杂流程,而是帮你把大象吃掉的方法——一口一口来


下一步:回到主线,开始 Step 1:思考框架