《用户故事与敏捷方法》(User Stories Applied: For Agile Software Development)Mike Cohn 著,2004年Addison-Wesley出版,是一本讲述如何用用户故事(User Story)进行敏捷需求管理的经典实战指南。

核心观点

用户故事是敏捷开发中记录需求的最小单元,形式为:“作为[角色],我希望[功能],以便[价值]“。故事卡(Card)只记录概要,细节通过与客户的对话(Conversation)补充,验收标准记录为测试(Confirmation)——即 Card、Conversation、Confirmation 三要素。

关键概念

INVEST 原则(好故事的六个特征)

  • Independent:独立,避免依赖关系导致计划困难
  • Negotiable:可协商,不是合同或详细规格
  • Valuable:对用户或购买者有价值
  • Estimatable:可估算
  • Small:小到可在半天到两周内完成
  • Testable:可测试

用户角色建模(User Role Modeling)

  • 识别用户角色(User Role):具有共同特征的用户群体
  • 用角色卡记录属性(使用频率、领域熟练度、计算机技能等)
  • Persona(persona):为重要角色创建虚构人物画像,增加具体性
  • Extreme Characters:极端角色法——考虑极端用户(如Drug dealer、The Pope)可发现遗漏的故事

故事拆分

  • Compound Story:复合故事,可拆分为子故事(按create/edit/delete或数据边界)
  • Complex Story:复杂故事,内在庞大,拆分为调查(Spike)+ 实现两个故事
  • Spike 是带时间盒(timebox)的研究性故事

估算与计划

  • Story Points:相对估算单位
  • Velocity:团队每迭代完成的故事点数
  • Release Plan:按优先级和velocity将故事分配到各迭代
  • Iteration Burndown Chart:迭代燃尽图,监控进度

故事味道(Story Smells)

  • 故事太小、互相依赖、镀金(Goldplating)、细节过多、过早包含UI细节、想太远、拆分过多、客户无法优先级排序、客户不愿写/排故事

重要实践

  • 故事写作研讨会:混合头脑风暴+低保真原型,迭代生成故事
  • 低保真原型:纸笔/白板,画组件和流程,研讨会后几天内丢弃
  • 验收测试先行:迭代开始时客户先写测试,开发人员据此编码
  • 持续对话:故事卡是触发对话的提醒,不是契约

与已有知识关联

可行动点

  • 在下一个项目中引入故事写作研讨会,用角色卡法识别用户角色
  • 为每个故事写3-5条验收测试,用INVEST原则审查故事质量
  • 用燃尽图监控迭代进度,定期调整velocity估算