敏捷开发框架Scrum工件-冲刺/迭代燃尽图(上篇)
By 老彦
《系统之美》
前言,在本文中,我们将从以下几点了解有关燃尽图的详细内容(上篇为主题1-3):
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1004" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown-1024x576-1.jpg" alt="" width="760" height="428" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown-1024x576-1.jpg 1024w, https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown-1024x576-1-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown-1024x576-1-768x432.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown-1024x576-1-355x199.jpg 355w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<p>
</p>
<p>
如果你查看上面的图片,会注意到团队有产品待办事项,在处理sprint待办事项期间,团队提交几个用户故事,然后团队成员分配了任务,对于每个任务,每个成员消耗的是估计的工作时间。到目前为止,已经为冲刺提交了一些故事,每个故事都有一些任务,这些任务的估计时间是小时,并且每个任务都分配给了胜任的团队成员。
</p>
<p>
如果总计工作时间,则大约为110小时。假设团队的能力为130小时。<br /> 让我们看一下sprint的另一个重要方面,有一个sprint起始日期为12月10日,它的结束日期为12月21日,这意味着是两个星期的sprint,并且sprint的持续时间为10天。<br /> 因此,从所有这些信息中,开始绘制燃尽图
</p>
<ol>
<li>
<strong>Total Days of the sprint = 10 days</strong>
</li>
<li>
<strong>Total committed & estimated task hours for the team = 110 Hours</strong>
</li>
</ol>
<p>
如果将总小时数除以总天数平均值(110/10)= 11小时。<br /> 也就是说,如果团队每天完成11个小时的工作,那么在冲刺的最后一天结束时,团队将能够完成他们已经完成的所有工作。<br /> 请参考下面的图片,然后按照说明进行操作以更好地理解它。
</p>
</div>
</div>
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1003" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown_Ideal-Line-1024x576-1.jpg" alt="" width="760" height="428" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown_Ideal-Line-1024x576-1.jpg 1024w, https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown_Ideal-Line-1024x576-1-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown_Ideal-Line-1024x576-1-768x432.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/Insecption_Burndown_Ideal-Line-1024x576-1-355x199.jpg 355w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<p>
</p>
<p>
基于当前sprint的示例,团队需要每天工作11个小时。 到第一天结束时,团队将能够完成110个小时的总工作时间中的11个小时。 因此,到第一天结束时,剩余总小时数将为110 – 11 = 99小时。 同样,到第二天结束时,剩余的工作时间将为99 – 11 = 88小时。 以这种方式,在最后一天结束之前,剩余的工作时间将为零。<br /> 这是未来的预测,你的excel预测到团队将能够每天工作11个小时,而这11个小时将相应减少剩余时间,因此每天的预测值是称为燃尽图的<strong>理想线</strong>。 在冲刺的第一天将其绘制在图表上,这些线从第一天开始到最后一天结束。<br /> 但是实际上,由于以下原因,每天结束时的剩余时间不会与预测的相同。
</p>
<ol>
<li>
即使经过11个小时或更长时间的工作,剩余的时间也不必减少11个小时,因为11个小时只是估算值,一旦团队开始实际施工,实际的时间可能会与估算值有所不同。 在敏捷中,重要的是,我们不在乎已经完成了多少工作,在乎有多少待处理或剩余的工作。 牢记,每个人都会更新他们完成的每个任务的剩余时间。 如果第一天的总剩余时间为105小时,那么第一天的总消耗为110 – 105 = 5小时。 在理想线中是11个小时。
</li>
<li>
由于产品负责人的关键优先级发生变化,范围可能会不断蔓延。这会突然增加或减少剩余时间,导致实际生产线突然上升或下降。
</li>
<li>
团队成员生病了,那天分配给成员的任务可能不会被燃尽
</li>
<li>
障碍,如外部依赖,开发环境等障碍可能会减慢预计的燃尽趋势。
</li>
<li>
任何其他原因。
</li>
</ol>
<p>
因此获得直到Sprint当前日期为止的每天实际剩余小时数,并绘制一条线,称为“<strong>实际线</strong>”<br /> 请参考下图以了解燃尽图上实际燃尽线的流动方式
</p>
</div>
</div>
<div class="vc_row wpb_row vc_inner vc_row-fluid">
<div class="wpb_column vc_column_container vc_col-sm-4">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<h5>
<strong>第3天实际线</strong>
</h5>
</div>
</div>
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-full wp-image-994" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day3-1024x576-1.jpg" alt="" width="1024" height="576" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day3-1024x576-1.jpg 1024w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day3-1024x576-1-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day3-1024x576-1-768x432.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day3-1024x576-1-355x199.jpg 355w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>
</div>
</div>
</div>
<div class="wpb_column vc_column_container vc_col-sm-4">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<h5>
<strong>第6天实际线</strong>
</h5>
</div>
</div>
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-995" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day6-1024x576-1.jpg" alt="" width="760" height="428" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day6-1024x576-1.jpg 1024w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day6-1024x576-1-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day6-1024x576-1-768x432.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day6-1024x576-1-355x199.jpg 355w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
<div class="wpb_column vc_column_container vc_col-sm-4">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<h5>
<strong>最后一天实际线 </strong>
</h5>
<p>
<img class="alignnone size-large wp-image-996" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day10-1024x576-1.jpg" alt="" width="760" height="428" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day10-1024x576-1.jpg 1024w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day10-1024x576-1-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day10-1024x576-1-768x432.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/Actual_Burndown_Line_Day10-1024x576-1-355x199.jpg 355w" sizes="(max-width: 760px) 100vw, 760px" />
</p>
</div>
</div>
<div class="wpb_single_image wpb_content_element vc_align_center">
</div>
</div>
</div>
</div>
</div>
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<p>
如果燃尽图上多增加一条线是非常有用的。 这就是能力线。 如果谈论上面的示例,则团队已经承诺在10天的冲刺中总共投入110个小时的工作,在此假设团队的能力为130个小时。<br /> 理想线是根据110小时的承诺量绘制的(每天燃尽11小时)。 对于能力线,可以根据130小时的可用能力(每天燃尽13个小时)绘制另一条平滑线。<br /> 这条线非常重要,在本文稍后将了解其重要性<br /> 请参考下图,以直观了解能力线。
</p>
</div>
</div>
<div class="vc_row wpb_row vc_inner vc_row-fluid">
<div class="wpb_column vc_column_container vc_col-sm-6">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<h5>
理解能力线<strong> </strong>
</h5>
</div>
</div>
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-997" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Burn-Down-Capacity-Line-1024x576-1.jpg" alt="" width="760" height="428" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Burn-Down-Capacity-Line-1024x576-1.jpg 1024w, https://www.agilewalker.com/wp-content/uploads/2020/04/Burn-Down-Capacity-Line-1024x576-1-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Burn-Down-Capacity-Line-1024x576-1-768x432.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/Burn-Down-Capacity-Line-1024x576-1-355x199.jpg 355w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
<div class="wpb_column vc_column_container vc_col-sm-6">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<h5>
一个完整的燃尽图(有能力线)
</h5>
</div>
</div>
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1001" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Complete-Burn-Down-1024x576-1.jpg" alt="" width="760" height="428" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Complete-Burn-Down-1024x576-1.jpg 1024w, https://www.agilewalker.com/wp-content/uploads/2020/04/Complete-Burn-Down-1024x576-1-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Complete-Burn-Down-1024x576-1-768x432.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/Complete-Burn-Down-1024x576-1-355x199.jpg 355w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
</div>
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
</div>
</div>
</div>
</div>
<p>
1. 如果实际线结束于理想线之上的任何地方,则意味着在冲刺持续时间内完成所有故事是存在风险的。风险有多大取决于实际线终点和理想线之间的垂直距离。<br /> 距离越远,风险越大,因为根据承诺,当天的剩余时间实际上比预期的要多。<br /> 这种情况可能有很多原因,需要采取主动的纠正行动。原因如下<br /> a)团队不能给冲刺承诺足够的时间。<br /> b)团队过低估计了任务。<br /> c)团队没有及时更新剩余时间。<br /> d)团队在冲刺开始之后又增加了新的故事。<br /> e)团队重新估计了任务时间并增加了剩余时间。<br /> 如果这种情况在冲刺的早期出现,团队仍然有机会赶上进度,但是在冲刺的最后几天,会很难改变延期。
</p>
<p>
下面的两个图代表两种不同的情况,其中一个图表示风险最小,而另一个则表示高风险。
</p>
</div>
</div>
<div class="vc_row wpb_row vc_inner vc_row-fluid">
<div class="wpb_column vc_column_container vc_col-sm-4">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1005" src="https://www.agilewalker.com/wp-content/uploads/2020/04/LowRisk-Actual.jpg" alt="" width="760" height="429" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/LowRisk-Actual.jpg 1000w, https://www.agilewalker.com/wp-content/uploads/2020/04/LowRisk-Actual-300x169.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/LowRisk-Actual-768x433.jpg 768w, https://www.agilewalker.com/wp-content/uploads/2020/04/LowRisk-Actual-355x199.jpg 355w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
<div class="wpb_column vc_column_container vc_col-sm-4">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1002" src="https://www.agilewalker.com/wp-content/uploads/2020/04/HighRisk-Actual.jpg" alt="" width="760" height="440" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/HighRisk-Actual.jpg 1000w, https://www.agilewalker.com/wp-content/uploads/2020/04/HighRisk-Actual-300x174.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/HighRisk-Actual-768x445.jpg 768w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
<div class="wpb_column vc_column_container vc_col-sm-4">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1006" src="https://www.agilewalker.com/wp-content/uploads/2020/04/No-Risk-Actual-Burndown.jpg" alt="" width="760" height="419" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/No-Risk-Actual-Burndown.jpg 1000w, https://www.agilewalker.com/wp-content/uploads/2020/04/No-Risk-Actual-Burndown-300x165.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/No-Risk-Actual-Burndown-768x423.jpg 768w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
</div>
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<p>
浅橙色矩形是风险的大小。如果能力线在燃尽图里,可以更容易看到并识别解决风险的可能性。 即使实际线高于理想线,但低于能力线,意味着团队仍可以完成任务,因为仍然在他们的能力范围内。<br /> 下面的两个图代表两个燃尽图,一个处于风险区域,另一个在该特定日期没有风险
</p>
</div>
</div>
<div class="vc_row wpb_row vc_inner vc_row-fluid">
<div class="wpb_column vc_column_container vc_col-sm-6">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1015" src="https://www.agilewalker.com/wp-content/uploads/2020/04/Within-Capacity.jpg" alt="" width="760" height="436" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/Within-Capacity.jpg 1000w, https://www.agilewalker.com/wp-content/uploads/2020/04/Within-Capacity-300x172.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/Within-Capacity-768x441.jpg 768w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
<div class="wpb_column vc_column_container vc_col-sm-6">
<div class="vc_column-inner">
<div class="wpb_wrapper">
<div class="wpb_single_image wpb_content_element vc_align_center">
<figure class="wpb_wrapper vc_figure photoswipe-item photoswipe-wrapper"><img class="alignnone size-large wp-image-1007" src="https://www.agilewalker.com/wp-content/uploads/2020/04/OutofCapacity-Burndown.jpg" alt="" width="760" height="435" srcset="https://www.agilewalker.com/wp-content/uploads/2020/04/OutofCapacity-Burndown.jpg 1000w, https://www.agilewalker.com/wp-content/uploads/2020/04/OutofCapacity-Burndown-300x172.jpg 300w, https://www.agilewalker.com/wp-content/uploads/2020/04/OutofCapacity-Burndown-768x439.jpg 768w" sizes="(max-width: 760px) 100vw, 760px" /></figure>
</div>
</div>
</div>
</div>
</div>
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
<p>
2. 现在让讨论另一种情况,即实际线始终在理想线以下。 这是一个好兆头,但是如果它太低,则团队可能过高估计了现有工作量,有能力在冲刺期间进行更多的工作。一个好的成熟实际线应该接近理想线,如果不是,那就需要干预。
</p>
<p>
3. 如果发现燃尽图实际线突然飙升,这说明团队的工作范围正在蔓延。
</p>
<p>
这是解读燃尽图的方式,在下一节中,我们一起了解如何在不同情况下解读燃尽图。
</p>
</div>
</div>
<div class="wpb_text_column wpb_content_element ">
<div class="wpb_wrapper">
未完待续...参看 <a href="https://www.agilewalker.com/sprint-burndown-chart-2/">敏捷开发框架Scrum工件-冲刺/迭代燃尽图(下篇)</a>
</div>
</div>
</div>
</div>