在我们编写用户故事或者拆分用户故事的时候,写封闭式的用户故事至关重要。一个封闭式的用户故事意味着这个故事完成后,用户可以达成一个明确的、有意义的目标。我喜欢打这样的一个比方,完成了一个用户故事,用户应该可以停下来休息一会儿,喝杯咖啡了。
下面给一个不是封闭式的用户故事的示例:
以一个在线求职网站为例:“作为一个招聘人员,我可以管理我发布的工作。”
这个故事太大了,以至于没有太多意义。“管理”这个活动很难被完成。比如,你们公司有一个经理,他肯定不会说,“OK,我的管理完成了,是时候干点儿实事儿了”。
“管理”这个词很明确的提示我们,这个故事不是一个封闭式的故事,类似的词比如“维护”、“优化”、“改进”等等。
那我们一起来看看,如何写封闭式的用户故事。
首先要考虑的是,“管理”在这个上下文里面具体意味着哪些事情要做。在一个在线求职网站,管理发布的工作,意味着我浏览这些工作广告对应的求职申请,检查发布的工作是否过期了,删除不太适合的求职申请,更新或修正工作描述等。
所以,写用户故事就是要把这些想法具体化。
上面的最初的那个用户故事,我们可以写成下面这样:
- 作为招聘人员,我期望能够浏览所有我发布工作对应的求职申请,我需要将符合要求的找出来发给招聘经理。
- 作为招聘人员,我可以调整我发布的工作的截至日期,这样我可以延长时间获得更多申请,或者提前结束该职位的招聘。
- 作为招聘人员,我可以删除不太合适的求职申请,这样我可以避免浪费时间在这些没有价值的信息上。
- 作为招聘人员,我可以修改我发布的工作的描述,以便于吸引更好的求职者关注这个职位。
上面这些故事都是封闭式的故事。 作为招聘人员的这个用户都可以在一个故事完成后达成一个有意义的目标。就像我之前那个比方,每个故事完成后,用户可以休息一下,喝杯咖啡了。“OK,我更新好了这些工作的截至日期了,休息一下,喝杯咖啡吧!”
写封闭式的故事,能够帮助团队更好的迭代中实现故事,助力敏捷成功。
原文作者:Mike Cohn,Scrum联盟创始人之一
译者:Eric Liao廖靖斌,CSP,资深敏捷教练、顾问,Leangoo项目协作工具创始人