这本书的英文名是《User Stories Applied : For Agile Software Development》,是一本将敏捷开发(XP)的思想与流程应用到需求管理工作的小册子。
用户故事是一种管理需求的方法,以便开发人员、客户团队、客户以及用户共同配合开发出高质量产品。
用户故事的特征:
- 独立的;
- 可讨论的;
- 对用户或客户有价值的;
- 可估计的;
- 小的,注意区分“复合故事”与“复杂故事”的区别;
- 可测试的
用户故事不是“场景”,主要区别在于“范围与细节”,场景包含更多的细节,同时涵盖多个故事。
用户故事的优势:
- 强调口头沟通;
- 容易理解;
- 适合做计划;
- 适合迭代开发;
- 鼓励延迟细节;
- 支持随机应变的开发;
- 鼓励参与性设计;
- 传播隐性知识。
来自前辈的箴言:
- 用户以及客户通常不能准确的知道自己的实际需求;
- 即便开发者知道所有的需求,很多需求细节只能随着他们的开发进展变得清晰;
- 就算假设所有的细节可以在前面弄清楚,人们也没有能力理解这么多细节;
- 就算我们真的能理解所有的细节,产品和项目也会经常变更;
- 人非圣贤,孰能无过。
需求最重要的两个问题:
- 用户是谁?
- 他们的诉求是什么?
所以本书围绕“用户角色”和“优秀故事”着力进行了介绍:
- 用户角色。初始角色 -> 整合角色 -> 提炼角色。两个额外的技术:虚拟人物,极端人物。确定真正的用户,注意区分客户与用户,排除用户经理、开发经理与市场人员这种干扰项,如果希望软件是可用的,就要与未来的用户交流。
- 优秀故事:够用就行,写尽可能多的故事,在较高层面讨论、不要陷入细节,尽量让客户编写故事,故事需要围绕单个用户,同时符合故事的特征(见上文)。
不良故事的症兆:
- 故事太小;
- 相互依赖;
- 额外实现;
- 细节太多;
- 过早考虑界面;
- 频繁划分;
- 难以排序;
- 客户甩锅。
客户定义测试,测试是开发过程的一部分,而不是在编码完成后要做的事。
排列优先级的莫斯科(MoSCow)规则:
·必须有的(Must have);
·应该有的(Should have);
·可以有(Could have)
·这次不会有(Won't have this time)。
优先级需要考虑的因素:重要性、成本、风险、架构,如果有冲突,就以客户的优先级为准。
以故事为需求单元,从故事分解出任务,然后在团队内分配职责,同时测试并监控速率。
XP 的 12 个实践:
- 短交付周期(small releases);
- 计划游戏(the planning game);
- 重构(refactoring);
- 测试(testing);
- 结对编程(pair programing);
- 持续一致的速度(sustainable pace);
- 团队代码所有权(team code ownership);
- 编码标准(coding standard);
- 简单设计(simple design);
- 隐喻(metaphor);
- 持续集成(continuous integration);
- 现场客户(on-site customer);
XP 提倡的 4 大价值:
- 沟通(Communication);
- 简单(Simplicity);
- 反馈(Feedback);
- 勇气(Courage)。
XP 的五项基本原则;
- 快速反馈(rapid feedback);
- 假设简单(assuming simplicity);
- 增量变化(incremental change);
- 拥抱变化(embrace change);
- 高品质的产品(doing quality work)。
PS:产品经理最喜欢其中“拥抱变化”这条了。
XP 团队特质:
- 向客户提供快速反馈,并从反馈中学习;
- 喜欢简单,并总是试图在转移到更复杂的解决方案前,先做简单的解决方案;
- 通过小的、增量的变化提高软件质量;
- 拥抱变化,知道自己是真正地善于包容和适应;
- 坚决主张软件应该始终展示出最高的质量工艺。