跳到主要内容

由于俄罗斯入侵乌克兰,我们已经暂停所有购买和培训进出俄罗斯。

实用斐波那契:相对大小初学者指南

2021年10月19日
壳层叠加斐波那契数列
背景照片由Guilia May在Unsplash上编辑,作者编辑。

O敏捷评估的概况

Ab溶质与相对浆料

当已知的比未知的多时,使用绝对估计。传统的或瀑布式软件开发生命周期包括在开始开发之前定义需求的长而详细的计划期。绝对的估计是对每个需求应用每小时的有限估计的实践。在需求已知、环境不复杂、需求不紧急的情况下,绝对估算似乎是一种很好的方法。然而,即使有详细的需求,绝对估计也存在共同的问题。

  • 我知道怎么做,所以大小反映了我的经验和问题的复杂程度
  • 我对需求了解得不够,所以尺寸是我不确定性的衡量标准
  • 我经验不多,时间压力大;因此,估计受到影响
  • 我被不相关或误导的信息所左右,比如预算,所以我的估计是有偏见的

解决歧义的方法是敏捷。由于市场的波动性、不确定性、复杂性和模糊性,敏捷方法继续受到欢迎。敏捷框架在复杂领域(如软件开发)工作得如此出色的原因之一,是在响应变化和在指定的、有时间限制的迭代中完成某些事情之间的平衡。这是一种不同于传统软件生命周期的方法,但它是必要的。在敏捷方法中,开发人员只知道足够的开始——他们不知道完成一个项目所需的一切。这种故意不完整的计划之所以有效,是因为他们在开发期间通过与请求者的日常协作确定了所需的内容。需求越模糊,计算所需时间就越困难。但是团队仍然需要评估他们的工作来预测发布。

当未知的比已知的多时,使用相对大小。不幸的是,人类非常不擅长估算更糟糕的是在软件开发等复杂领域工作。(2006, Jørgensen and Grimstad)。幸运的是,人们擅长比较事物。敏捷评估使用相对大小为团队预测工作提供一个现实的方法。这种估计方法使用斐波那契数列作为比较项目的起始刻度。在斐波那契数列,每个数字都是前面两个数字的和:0,1,2,3,5,8,13,21…

为什么使用斐波那契数列?这是从自然中借来的
指数级增长的规模故意在估算中创造了一个缓冲,允许变化。

Scrum团队中的开发人员划分他们负责交付的工作(Scrum中的开发人员包括开发工作所需的任何人,包括分析师、用户体验和质量专业人员)。他们讨论每个请求,并从与总体大小相关的斐波那契规模中分配一个数字。他们使用他们在那个时间点上对请求所了解的一切,以及期望将其称为完整的内容。这种方法被称为故事指向,由极限编程(XP)专家和敏捷思想领袖Ron Jeffries认可。虽然故事点包括工作,比如绝对估计,但它进一步适应了敏捷需求的预期模糊性。描述点表示完成或实现每个工作项所需的复杂性、不确定性和工作量(CUE)。数字越高,越多复杂的而且不确定的功,大概还有努力这将需要完成。

使用斐波那契量表,开发者可以相互比较项目;团队中每个人的标准都是一样的。随着时间的推移,团队开始看到相同的完成曲线,因为不同的人处理具有相同点值的项目。例如,1 Story Point意味着CUE是最小的,并且项目可以快速交付,可能在一天或更短的时间内。另一方面,分配了13个故事点的项目意味着它非常复杂,可能需要数周时间才能完成。

当使用斐波那契规模进行相对规模时,团队会体验到以下好处:

  • 建立一个比较项目复杂性、不确定性和工作量的尺度
  • 包括整个团队;因此,包括每个人的观点
  • 斐波那契数列的指数性质使得整个团队很容易理解分配的数字对他们和他们唯一的领域意味着什么

敏捷规划

相信团队和过程

整个团队需要理解故事点分配背后的逻辑,以达成一致的实践。所有团队成员投票——不受其他团队成员影响。有很多技术可以做到这一点,例如从拳到五投票或规划扑克.外部压力或团队合作不足会迅速人为地夸大故事点,进而影响预测。

正常化。通过常规的实践,可以进行一些标准化,这有助于确保团队中的每个人在确定规模后都做出相同的假设。例如,如果一个人将一件物品的大小定为“2”,而另一个人将其大小定为“8”,考虑到他们拥有相似的能力,他们会以不同的方式理解需求或从不同的方向处理它。当这种情况发生时,开发人员与产品负责人合作澄清假设并就规模达成一致。(这并不需要达成共识——人们可以求同存异。)

当一个团队正在学习斐波那契规模对他们意味着什么时,通过他们独特的技能、任期和领域知识,将新请求与具有共同相似性的已完成工作进行比较是有帮助的。例如,当一个新道具的故事点值为5时,将其与相同大小的类似物品进行比较,然后相应地调整点数。

3-touch系统。通过提炼,将工作分解成更小、更有价值的块,开发人员不断获得洞察力。随着每个请求变得越来越小,知道的越来越多,他们会不断地重新审视请求的大小。提供三个接触点来帮助团队进行需求的新设计、开发和依赖是一个很好的实践。一路上,重温大视图确保战略不断地为开发提供信息。

  1. 前:在发布计划期间,一个团队正在展望未来几个sprint,项目通常是实质性的。因此,高水平的预测可以通过比较大的、新的工作完成类似的工作。
  2. 现在查看:冲刺在计划中,开发人员通过将每个项目分解为任务,然后按小时划分每个任务来了解更多信息。
  3. 日报:当开发人员在Sprint期间处理每个项目时,他们会继续学习并每天重新预测与Sprint目标相对应的剩余工作,包括实现“完成定义”所需的任何质量度量和任务。

敏捷计划与地平线计划重叠
在敏捷中应用水平规划。图片来自作者。

    实际的斐波那契

    开始

    如果你的开发人员不熟悉使用斐波那契相对大小,那么下面的图表可能会对他们有所帮助。(Scrum中的开发人员一词包括开发工作的任何人,包括业务分析师、用户体验和质量保证专业人员。完成某事意味着它符合每个人对完成的期望,通常写在团队的完成定义中。)这些定义是对话的起点。最终,你的团队会找到他们自己的价值尺度和对他们有意义的语言。

    实际的斐波那契
    图片来源:作者

    指导大小的灰色区域

    下面的对话将继续讨论一些常见问题和指导技巧第二部分:指导大小的灰色区域

    ~ Julee埃弗雷特

    磨练你的技巧,说出你的真相,表达你的感谢

    拜访我的YouTube频道访问一个不断增长的专业发展网络研讨会的图书馆,并订阅下面的更多内容!
    欲知详情,请浏览AmplifyAgility.com


    你觉得这个帖子怎么样?


    博客评论
    Baidu