2.1. 独立的

要尽量避免故事间的互相依赖。

在对故事排列优先级时,或者使用故事做计划时,故事间的相互依赖会导致一些问题。

例如,假设客户团队已经选择了一个高优先级的故事,但它对一个低优先级的故事有依赖,就会出现问题。

故事间的依赖也会使做估计变得更加困难。

比如,我们正在开发那个招聘网站,现在需要编写客户公司如何对发布职位进行付费的故事。我们可以编写这些故事。

  • 公司可以用Visa信用卡对发布职位进行付费
  • 公司可以使用万事达信用卡对发布职位进行付费
  • 公司可以使用运通卡对发布职位进行付费

假设,开发人员估计支持第一种信用卡(不考虑是哪一种)需要3天,而然后支持第二种和第三种各需要一天时间。对于这些很高相互依赖的故事,你不知道给每个故事估计多少时间—哪个故事应该给3天的估计?

当出现上述的依赖时,有两个方法可以绕过这种依赖。

  • 将相互依赖的故事合并成一个大的、独立的故事
  • 用一个不同的方式来分割故事

在上述的案例中,合并成一个大的故事是非常可行的,因为这个合并后的故事仅需要5天时间。

如果合并后的故事需要远远大于5天时间,那么最好找一个不同的维度来分割故事。比如下面的分割方法。

  1. 客户可以用一种信用卡(Visa)支付
  2. 客户可以用另外两种信用卡(万事达、运通卡)支付

如果你实在是不想合并故事,也找不到合适的方法来分割它,还有一个简单的方法,就是在故事上记录两种不同的估计方法

  • 如果早于另一个故事的估计
  • 如果晚于另一个故事的估计