这是一个复杂的主题,对此主题经常有争论。我对此不喜欢“规范”意见的概念:有各种有价值的意见。但是,应该有一些指导性价值观,原则和实践来指导这种方法。
以下是基于我自己与Scrum团队合作超过10年的观点。但这只是我的意见。
故事点作为一种预测方法故事点的初衷是找到一种快速的方法来估算工作量,目的是预测团队在一段时间内可以完成的工作。一些“专家”指出,积分仅用于预测长期范围(例如,在发布中),而不用于确定冲刺级别的容量。此外,概念是团队根据历史值应用“相对大小”(努力X与努力B相似,为3分)。这加快了估算过程,因此团队不必将未来的工作分解为详细的工作包,也不必花几个小时来处理所有任务。高绩效团队努力使所有技术工人成长为具有相似技能水平的非常称职的成员。(将在第4点中进一步探讨该概念)。一旦实现,个人技能水平实际上就不会成为规模调整的变量。但是:通常需要很长时间和共同的努力才能实现该目标。那么...到达那里之前我们要做什么?
任务时间确定冲刺容量:根据同一位“照明专家”的说法,他们将点用于长期预测,他们还建议使用任务时间来确定冲刺容量,而不是点。以我的观点,这很好,但是我会说,当我帮助教练团队达到“高性能”时,他们的升级技能平均可以在仅使用Story Points的情况下就可以准确地确定自己在冲刺中可以完成的任务。同样,这可能是我们努力追求的目标,但是新团队尚未为此做好准备。因此,您可能会在一个Sprint中找到一个故事,该故事有2分,需要12个工作小时的工作量,而另一个则有25小时的工作量。所以你会怎么做?我称之为“敏捷主义者”的某些人会说,故事的大小(以磅为单位)应该与持续时间无关。其他人则不同意。通读第3项的逻辑,然后看看您的想法。
- 通过共识来讲故事:应用量,未知数,复杂性,知识
因此,团队要着眼于一项工作,需要就这些要点达成共识,这些要点将成为“努力水平”的代名词。对?假设所有技能都是平等的,那么容易达成共识。但是,通常团队中有一个是Java专家的人,另一个不是Java方面的专家(也许她是C#、. Net或Cobol的人,并且正在学习Java)。因此,鲍勃的任务X非常简单。对于简而言,这更加困难。
敏捷团队试图促进集体代码所有权以及不断增长/扩展的专业知识。因此,我们通常不会根据人们的专业知识为他们分配故事:我们更喜欢团队共同研究故事并一起学习。这与“放慢速度以加快速度”的概念相吻合:如果我们花时间向Jane讲授Java经验,虽然这可能一开始会使我们放慢脚步,但后来我们将有更多有能力的Java开发人员。实际上,如果我们只有一名Java专家,并且每个人都在各自的专业领域内工作,那么我们正在创造一种具有多个潜在“故障点”的情况。当90%的工作是Java,但Bob(我们的Java专家)生病或休假时,在sprint中会发生什么?通过扩展技能,我们消除了潜在的瓶颈并降低了风险。考虑到这一点:当团队查看故事时,他们在确定大小时应该考虑几个概念。您可以想到首字母缩写VUCK来记住这一点。
量:有些工作很简单,但是需要大量重复任务。(我有一个人必须复制并重新格式化50个以上的表,他说这是1点,因为它很简单。但是经过反思,团队意识到这很简单,但很耗时,并且有大量表要进行移动和优化。由于工作量大,我们不得不重新调整点数)
未知数:有时我们认为我们知道该怎么做,但我们也会识别一些未知数-这些代表风险。这意味着我们可能会遇到无法解决的问题,必须解决,重新设计或尝试其他解决方案。
复杂性:这一点很明显。一些解决方案在技术上很复杂。我们确切地知道该怎么做,但这需要技术专家。复杂性还意味着一些风险,不是吗?因此,即使我们所有人具有相同的技能,技术上的复杂性也意味着我们可能会遇到无法预料的挑战。因此,我们可以使这个故事更大。
知识:我们真的知道我们要解决什么吗?有时客户对他们想要的解决方案并不完全清楚,我们正在做一些试验。也许没有人实施过这种解决方案(以前从未使用过的新技术),所以我们不知道自己不知道什么。
我认为,这些考虑因素中的每一个实际上都是延长期限的代理。简单的故事,很多?这将需要更长的时间,否则我们需要分开谈谈。未知数?增加了风险,研究,实验,可能需要更长的时间,或者我们需要分开谈谈。复杂?增加了风险,需要修复错误,重新设计等,因此可能需要更长的时间。不知道我们是否具备必需的知识?我们还有其他风险,可能需要进行实验等,因此可能需要更长的时间...
看到这是怎么回事?因此,尽管故事要点的概念使我们不愿意在估算时考虑持续时间,但另一方面,拥有一个可以在4小时内完成的1点故事和另一个简单但需要花费1点时间的故事是不合逻辑的2周。
- 高效的团队消除了孤岛和瓶颈:由于团队试图提升所有成员的水平,因此有时他们缺乏经验的成员会面临新的挑战,或者会结对代码以共享知识以提高团队整体水平。如前所述,这是团队要达到真正的高性能水平的必要条件。
因此,如果Jane自愿承担Java的工作,而如果Bob这样做的话,那会使工作的时间是相同工作时间的2倍或3倍,那么您该怎么办?随着时间的流逝,我的团队决定根据工作水平(LOE)/ VUCK为工作人员确定故事大小。对于Guru团队的Bob,说“ 1”是没有意义的,而对于Jane来说,这并不容易,需要一周的时间才能完成,而且还需要Bob花费一些时间进行配对编码和代码审查。因此,我们提高了这些点以反映真实的LOE。下一次类似的故事出现时,简的8变成了以前的5。最终,每个人都同意这是简单的3。那时,我们知道我们正在成长。