敏捷开发一千零一问系列之十三:故事点好还是人天好?
这是敏捷开发一千零一问系列的第十三篇。(在这里提问,之一,之二,之三,问题总目录)
问题
这是课堂上提的一个问题,这是一家外企,PO在国外,研发在国内;PO希望大家用故事点估算,而团队习惯用人天估算,问用哪个好,或者两个都用好?
分析
先分析,后出方案。
这个是一个典型的有关无我、无住的问题。
所谓无我,就是先弄清楚为什么不同的人想要不同的东西,然后本着到底“谁应该要,应该优先满足谁”而非“我应该要,应该优先满足我”来分析问题。
所谓无住,就是故事点和人天估算本无优劣之分,否则就不应该并存在另外一个了,何时使用、为什么使用才是问题的关键。
人天估算。
人天估算的目的,是为了团队进行沟通。在半年前写的松结对编程共同估算篇(http://blog.csdn.net/cheny_com/article/details/6587277)中曾提到过,若大家对一件事情的人天估算差别很大,表现了人们实现方法或实现能力的差异。而共同估算过程的重点,就是大家通过沟通,让新手可以听取高手的设计方法,从而以高手才能做出的设计完成自己的任务。
多数情况下,如果没有外界的要求,团队都应该优先考虑人天估算方法。
故事点估算
在敏捷开发绩效管理系列中的一篇(http://blog.csdn.net/cheny_com/article/details/6721626)曾经提到,故事点的目标是为了度量和改进生产率。
为什么人天不能完成这个目标?比如之前团队10个人,开始一个月完成了150人天的工作,后来一个月完成了200人天的工作,只能说团队后来有“200人天”可用而已,是时间可用率提升的表现,至于每个人天干的活是否多了,却无法表现。
故事点则建立了绝对尺度的概念,比如这种故事原来需要10人天,现在5人天就能完成,那生产率就提高了一倍。
原问题分析
这样看来,他们国外PO喜欢故事点的原因是,他们本来也不关心团队的开发、内部沟通问题,但是很关心“大家在不在干活啊,这个月干的比上个月是不是多啊”这类生产率问题,毕竟工资是国外总部发的。
而本地开发团队,则更关心“有没有新手在发明轮子啊,高手是不是可以帮助新手提高效率啊”这类开发问题,所以大家会出现分歧。但是这本身不是零和博弈,毕竟是一个公司。
弄清楚这些问题,就比较好决策了,或者至少知道决策的过程了。
方案
方案0:与总部PO交流估算意图
这个是个准备活动,千万不要担心别人会坚持己见什么的,有时候所谓“己见”(自己的己)只是“已见”(已经的已),就是他之前就已经习惯了用这个了,没想过别的。
总部的PO可能有很多原因喜欢故事点:1. 别的团队都用的故事点,他理解和习惯了;2. 他很担心大家的工作效率;3. 公司希望对中国研发部门进行效率考核(未必是发工资,极有可能是想知道是否值得在中国投资研发中心,兴许越南那个研发中心性价比更高)……
如果答案是3这类本质的活动,那么就没什么可说的了,这个问题很大很重要,不度量不行;但如果只是1,那么我们还是可以向他说说我们的想法的。
方案1:根据当前的主要问题,确立估算方法
如果不知道问题是什么,很难讨论黄连素好,还是VC银翘片好,因为不是治疗一种病的,别看都是黄色糖衣包着白色药粉。
方案2:根据估算方法,做好实践准备
有些估算方法不是太容易推广,比如故事点。
在前面的链接中有详细说明,主要困难在于很难找到“标准故事”,如果人员的流动性很强,也很难保证大家对标准故事都很熟悉。
国外之所以使用故事点显得容易一些,在于其产品研发数量多于项目开发数量,因此研发的延续性强一些,不会三天两头变话题;此外国外的流动率很低,不像咱们一半队员都是新来的,任凭你标准故事多么标准,他们一个不认识。
这种情况下,就要先解决好这些问题,再谈实践,否则很容易流于形式。