最小切片
砍到能完整跑通一遍的最小范围,再往上加。
第一版的目标不是覆盖所有功能,是让一个真实的人完整地把一件事做完一次。
你会遇到的现象:
- 做了三周,还没有任何一个流程能从头走到尾
- 页面画了七八个,没有一个能真的用
- 越做越大,迟迟不敢拿给人看
横着切是最自然也最危险的做法:先做完所有界面,再做完所有接口。听起来有条理,但在全部做完之前,你手上没有任何能验证的东西。三周还没走通一条流程,通常不是做得慢,是切法不对——横着切看起来每层都在推进,但每一层都验证不了任何东西。竖着切则相反——第一条切片做完,就有人能用了,也就能开始收到真实反馈。「垂直切片」这个词来自项目管理,指横跨所有技术层、让一个功能真正跑通的最小工作量。vertical-slice
怎么切
沿着一次完整的用户任务切,不沿着技术分层切。
| 这样切 | 第一片是什么 | 做完之后能验证什么 |
|---|---|---|
| 按用户任务(竖) | 记一笔账,从打开到存下来 | 这个流程顺不顺,人愿不愿意再来一次 |
| 按技术层(横) | 所有页面的静态界面 | 什么都验证不了,只能看好不好看 |
| 按功能模块 | 整个「记录模块」的全部能力 | 能验证记录,但用户没法完成一件完整的事 |
判断切对没切对:这一片做完,能不能找一个真人来用,并且他用完之后你学到了新东西。答案是否,就是切错了。
比如记账应用,竖着切的第一片就是「记一笔账」:打开、输入金额和分类、保存,这一条完整走通。它跨过了界面、逻辑和存储三层,但只覆盖这一个动作。做完这一片,你就能把手机递给朋友让他记一笔,看会不会卡住。
砍到多小
标准不是「功能少」,是「能跑通一遍」。下面这几刀可以放心砍:
- 多种输入方式,先留一种
- 编辑和删除,先只做新增
- 筛选排序,数据少时用不上
- 设置页,先用写死的默认值
- 多端适配,先做一端
- 注册登录,先用一个本地账号
砍完之后再数一遍:第一片做完,是不是还有一条从开始到结束的路。只要这条还在,说明还能再砍小一点。
哪些不能砍
- **主流程的完整性不能砍。**可以少做几个入口,但从开始到结束这条路必须通。
- **四态不能砍。**空、加载、出错、正常。第一批用户全是空态,砍了它等于砍了第一印象(见四态齐全)。
- **数据可靠性不能砍。**宁可功能少,不能存丢。
- **你要验证的那个假设不能砍。**这一片存在的意义就是验它,砍了就白做了。
这四样不是功能,是产品能不能被真人使用的前提:数据丢一次,这个用户就再也不回来了。它们也最容易被误当成「以后再补」——补的代价是没人愿意再用。
给 AI 的话
PROMPT · 切第一片
我要做:[产品一句话]
第一版我想验证的假设是:[比如「他愿意每天花十秒记一笔」]
请帮我切出第一个切片,要求:
1. 沿一次完整的用户任务竖着切,不要按前端/后端/数据库分层。
2. 列出这一片包含的最小页面数和最小数据字段,能砍的都砍掉。
3. 明确列出这一版不做的东西,以及为什么现在不需要它。
4. 单独确认这几项有没有保留:主流程能否走完、四种状态是否齐全、
数据会不会丢、关键操作能否撤销。
5. 估一下这一片的工作量级(小时 / 天 / 周)。如果超过一周,
请再切一次,告诉我怎么切更小。
先给方案,我确认后再写代码。
第五条是防止范围反弹的关键。AI 给出的方案如果一上来就是「周级」,多半是它又替你补了一堆东西。这个习惯之后每加一个功能都用得上:先问一句能不能再切小一点,让它在真实环境里先跑通一遍。
