设我在计划买辆新车。于是我列出了一个车型清单。下面的列表按照优先级排序:
布加迪威龙超级跑车
帕加尼 Zonda Clinque Roadster
兰博基尼 Reventon
麦克拉伦F1
Koenigsegg CCX
保时捷卡雷拉GT
阿什顿马丁 Vanquish
丰田 Prius
丰田凯美瑞
塔塔 Nano
但是不幸的是,我认为我承受不了最高优先级的车型的昂贵售价。那么让我来给每辆车分配点数吧。我将会从优先级最低的车开始,给它1点,然后给下一辆车2点。按照点数分配,重新排列列表:
塔塔 Nano
丰田凯美瑞
丰田普锐斯
阿什顿马丁 Vanquish
保时捷卡雷拉GT
Koenigsegg CCX
麦克拉伦 F1
兰博基尼 Reventon
帕加尼 Zonda Clinque Roadster
布加迪威龙 超级跑车
现在我考虑我的预算是2万5千到5万美元。我当然希望价格越贴近2万5钱美元越好,但是出色的销售人员很有可能会让我付出4万到5万。由于一个点数的塔塔 Nano市值2千500美元,那就意味着我有10到20个点的预算。
于是我重新为每辆车分配点数,我觉得我会买一辆布加迪(10个点),一辆帕加尼(9个点)和一辆塔塔(1个点)。但是,当我去到布加迪零售店的时候,他们告诉我威龙的售价是2百40万美元。
到底出了什么问题呢?
问题就在于,点数不是用来排序的。当我们为产品代表列表(或者车辆列表)进行排序的时候,我们用的是有序的数字(例如,1,2,3),但是我们不能将这些序号加在一起。我们不能认为第一二号之间的距离和二三号之间的距离是相等的。在上述例子中,Bugatti的售价不是塔塔的十倍。
用这些点数来排序是没有意义的。故事点数表示的是用户故事之间的相对关系。继续沿用上面的例子,我们对车的售价进行相对估算以后得出下面的列表:
塔塔 Nano 1
丰田凯美瑞 12
丰田普锐斯 14
阿什顿马丁Vanquish 102
保时捷卡雷拉GT 193
Koenigsegg CCX 218
麦克拉伦 F1 388
兰博基尼 Reventon 640
帕加尼 Zonda Clinque Roadster 740
布加迪威龙 超级跑车 960
在这里我已经帮那些想要亲手计算的人完成了计算的过程。那么,如果有人能够负担20个点数,那么他会买什么呢?而我应该买一辆10个点数的车呢还是买两辆5个点数的呢?但是如果你是根据排行来给定的点数,你就无法享受这样的灵活性。
在敏捷的产品代表列表中的故事点数代表着完成每个列表项所需要的工作量。由于大多数软件工程都是劳动力的结果,我们可以认为一个故事点数可以对应着上述例子中的购车成本。
最后,当我完成了这次相对成本的估算以后,我发现我应该出现在丰田的零售商那里,而不是布加迪的那家。
作者:Mike Cohn
来源:http://blog.mountaingoatsoftware.com/points-are-about-relative-effort-not-ranking