首页/开发/系统分析与架构设计速查/用户故事三段式写法
需求分析与建模61 条

用户故事三段式写法

用户故事用“作为某角色,我希望完成某目标,以便获得某价值”的句式表达需求,强调卡片、对话、确认三要素,细节在沟通与验收标准中沉淀。

用户故事是什么

用户故事用一句业务语言表达需求:“作为某角色,我希望完成某目标,以便获得某价值”。它的价值不在卡片上的文字,而在于卡片引发的对话与事后确认,因此强调 Card 卡片、Conversation 对话、Confirmation 确认三要素。故事是需求的占位符,细节应在沟通中澄清并沉淀为验收标准,而不是在写卡片时一次性写死。

基本信息

句式作为……(角色),我希望……(目标),以便……(价值)
三要素Card 卡片、Conversation 对话、Confirmation 确认
配套检查INVEST 六条准则与验收标准
粒度一个迭代内可完成,能独立演示与验收
常见载体需求管理工具卡片 + 验收标准 + 相关原型或接口约定

示例

示例
作为已登录用户,我希望按订单号查询历史订单,以便核对付款与物流状态。

验收标准:
已知 用户已登录且订单存在
当 用户输入订单号查询
则 返回订单详情与物流节点,且不返回他人数据

典型使用场景

  • 迭代计划会:用故事清单确认本次做哪些、明确不做什么
  • 需求澄清:围绕卡片对话,把规则与例外补成验收标准
  • 拆分大需求:按角色或价值路径切成多条可独立交付的故事
  • 优先级排序:用“没有它本版是否可用”判断先后
  • 验收与演示:以故事为最小交付单元,向业务方逐条演示
  • 进度沟通:用已完成故事反映真实价值交付,而非代码行数

反例与改写

反例问题改写方向
实现订单查询接口技术任务伪装成故事,丢失角色与价值按订单号查询自己的历史订单
系统要支持微信支付缺角色与目标,无法判断完成标准作为未持卡用户,我希望用微信完成支付
优化数据库索引无用户价值,属于技术任务移入技术待办,不再伪装成故事
重构用户模块并完善文档粒度过大且混入多项工作拆成多条可独立验收的故事
故事本身不承载全部细节;需要长期稳定的契约应写入需求库或接口文档并纳入版本管理,避免只存在于某次对话中。
把故事当作需求文档逐字评审,会退化成写规格说明;重点应放在明确角色、价值与验收条件上。

易错点

  • 把故事写成任务清单(“实现订单查询接口”),丢失角色与价值,排序时无从比较
  • 故事粒度忽大忽小,有的半天完成、有的跨三周,迭代计划与估算无法稳定
  • 只写卡片不留验收标准,开发与测试对同一句话的理解不一致,验收反复扯皮
  • 用故事承载长期稳定的接口契约,后续每次改动都要翻历史卡片,契约无权威来源

数据来源与参考

  • Mike Cohn《User Stories Applied》(Addison-Wesley)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌