2.1. 独立的
要尽量避免故事间的互相依赖。
在对故事排列优先级时,或者使用故事做计划时,故事间的相互依赖会导致一些问题。
例如,假设客户团队已经选择了一个高优先级的故事,但它对一个低优先级的故事有依赖,就会出现问题。
故事间的依赖也会使做估计变得更加困难。
比如,我们正在开发那个招聘网站,现在需要编写客户公司如何对发布职位进行付费的故事。我们可以编写这些故事。
- 公司可以用
Visa
信用卡对发布职位进行付费 - 公司可以使用万事达信用卡对发布职位进行付费
- 公司可以使用运通卡对发布职位进行付费
假设,开发人员估计支持第一种信用卡(不考虑是哪一种)需要3天,而然后支持第二种和第三种各需要一天时间。对于这些很高相互依赖的故事,你不知道给每个故事估计多少时间—哪个故事应该给3天的估计?
当出现上述的依赖时,有两个方法可以绕过这种依赖。
- 将相互依赖的故事合并成一个大的、独立的故事
- 用一个不同的方式来分割故事
在上述的案例中,合并成一个大的故事是非常可行的,因为这个合并后的故事仅需要5天时间。
如果合并后的故事需要远远大于5天时间,那么最好找一个不同的维度来分割故事。比如下面的分割方法。
- 客户可以用一种信用卡(
Visa
)支付 - 客户可以用另外两种信用卡(万事达、运通卡)支付
如果你实在是不想合并故事,也找不到合适的方法来分割它,还有一个简单的方法,就是在故事上记录两种不同的估计方法:
- 如果早于另一个故事的估计
- 如果晚于另一个故事的估计