《用户故事与敏捷方法》(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细节、想太远、拆分过多、客户无法优先级排序、客户不愿写/排故事
重要实践
- 故事写作研讨会:混合头脑风暴+低保真原型,迭代生成故事
- 低保真原型:纸笔/白板,画组件和流程,研讨会后几天内丢弃
- 验收测试先行:迭代开始时客户先写测试,开发人员据此编码
- 持续对话:故事卡是触发对话的提醒,不是契约
与已有知识关联
- 敏捷软件开发-原则-模式与实践-Robert-C-Martin — XP实践基础
- ThoughtWorks文集精选版-5篇敏捷实践文章 — 敏捷思想延伸
- 用户故事是Scrum中Product Backlog Item的主要形式
可行动点
- 在下一个项目中引入故事写作研讨会,用角色卡法识别用户角色
- 为每个故事写3-5条验收测试,用INVEST原则审查故事质量
- 用燃尽图监控迭代进度,定期调整velocity估算