什么是故事点
故事点是一个度量单位,用于表示完成一个产品待办项或者其他任何某项工作所需的所有工作量的估算结果。
当采用故事点估算时,我们为每个待办项分配一个点数。待办项估算结果的原生数据并不重要,我们只关注最后得到的相对估算结果。一个估算值为 2 的用户故事应该是估算值为 1 的用户故事的 2 倍。而它也应该是另一个估算值为 3 的用户故事的三分之二。
不要错误的把故事点等同于自然天。
故事点包括什么内容
由于故事点数代表了开发用户发故事所需的全部工作量,所以团队的估算必须考虑到影响工作量的所有因素。这可能包括:
- 要开展的工作的数量
- 要开展的工作中存在的任何风险或不确定性
- 工作的复杂度
要开展的工作数量
如果要开展的工作越多,工作量的估算值当然就会越大。
风险和不确定性
产品待办项的风险和不确定性会影响其故事点估算值。
- 如果产品待办项的干系人在询问需求事说得不清不楚,那么团队在估算时应当把不确定性也反映在估算结果中。
- 如果要实现一项功能时需要改动一段缺乏自动化测试的、结构脆弱的老代码,那么估算结果中也应该反映这个风险。
复杂度
在进行故事点估算时,还应该考虑复杂度。额外的复杂度都应该反映在所提供的估算结果中。
小结
把这三个因素合成一个数字并提供一个估算值,貌似是不可能的,但并不然。
按照如下三步做:
- 完成产品待办项所描述的那些工作,到底需要多少工作量。
- 在处理产品待办项的风险和不确定性方面需要付出多少工作量。
- 通常可以通过考虑到问题发生的风险以及风险确实发生会造成的影响来做到。
- 例如,一个可能会发生并将消耗时间的风险将会增加估算值,而一个不太可能发生且无关紧要的风险则不会增加估算值。
- 估算人员还要考虑要开展的工作的复杂度。复杂的工作需要花费更多的心思,可能需要进行更多的试错试验,可能需要与客户进行更多的反复,还可能需要花费更长的时间来验证和改正错误。
完成的定义
故事点估算必须要覆盖直到实现产品待办项待真正完成的所有事项。
如果团队的“完成的定义”中包括了创建自动化测试来验证这个故事(并且这是一个好主意)这个事项,那么创建这些测试的工作量也应该包含在故事点估算结果中。
原文