也来说说敏捷开发中的Story point

自己团队在接触敏捷开发的初始,大家对于其中的Story Point还是有一定抵触心理的。但伴随着对其了解的深入,慢慢的都能接受这个概念了。同时也会使用一些在线工具来进行评估。下面来说说自己的体会。

image
Source: Pixabay

在软件开发过程中,经常需要估算某项任务所需花费的时间。在传统方式中,一般使用小时,天,周等时间单位来进行估算。但在敏捷开发中,最为推荐的方式却是时间点(Story point)。

所谓时间点,就是把某项任务的难易程度进行划分并赋予不同的时间点。比如:1,2,3,5,8,13,21等等。其实这些时间点的数值是按照斐波那契数列,也就是兔子数列来分布的。当然,也可以不选择兔子数列,但其基本出发点都是一样的。

对于刚刚转入敏捷开发的人来说,似乎都不能理解,能用最为直观的常见时间度量单位来估算,干嘛还要用这些时间点呢?

说到根源,主要是在开发之前进行估算通常是件非常困难的事。毕竟开发还没有开始,这就相当于根据现有经验预测未来。通常估算的时间和实际花费时间之间会存在巨大差异。如果想要进行精确的估算,必然需要花费时间把细节了解清楚才行。但花费在估算上的时间的边界效益通常都是递减的。也就是说,如果花费太多时间进行估算,往往就会造成过高的时间成本,这和敏捷开发是背道而驰的。

因此在敏捷开发中引入了故事点Story Point这个概念。在这里,通过综合每一个User Story的复杂度,工作量,持续时间等因素,给出一个估算。同时这种估算通常是基于团队的,而不是基于个人的,因此综合团队的估算结果,其最终结果往往会更准确。

若干年前,我们团队不仅使用过扑克牌,还有乐高进行估算。但现在通常都是使用在线工具了,比如:https://www.scrumpoker-online.org/en/

评论