跳到主要内容

保存的文章

不要估算软件缺陷

安德鲁·富卡|LeadingAgile
安德鲁·富卡
读: 不要估算软件缺陷

软件缺陷=否估计

我不估计软件缺陷。嗯,我有两个例外:如果我有一个积压旧缺陷烧毁,我可能估计的。如果我发现了一些新的错误,我们计划在修复后的一些冲刺,我可能估计的。虽然我真的不喜欢延迟缺陷修复,但是,否则,我不估计缺陷。

为什么无法估计软件缺陷?

在解释为什么,它停下来考虑我的情况下是很重要的。为了逃脱不评估软件缺陷,你必须有高的质量标准,强大的单元测试套件和TDD的习惯性做法。此外,还必须尽快修复所有缺陷,因为他们被发现,或至多1个冲刺更高版本。如果这不是你的情况下,停止读这篇文章,去放TDD到位。

决定不来估计软件缺陷,在这些条件下,只是简单。这使得更多保守的释放和迭代计划到无法估计的缺陷,或者至少不包括它们的速度。这是一个简单的规则,简单的解释。

那么,什么是与做任何其他方式的问题?如果您估计新的缺陷,其中包括他们的点在你的速度为你解决这些问题,那么你可以不只是速度除以积压大小弄清楚的时候你会做。通过这样做,你包括你的速度固定的缺陷,但是从你的积压排除你还没有发现的东西。它是安全的假设,你会发现更多的缺陷,因此您的积压越来越多,不管你承认与否。

由低估积压划分膨胀速度数量是有风险的规划。当然,你的燃耗图表可以显示您的积压和烧掉拦截的增长预测,但只有当你估计你的缺陷正确相对于你的故事,那是。有足够的猜测估计您的积压的增长速度时,只考虑新的故事范围增加。为什么通过在计算的缺陷使它更难?

估算软件缺陷的挑战

了一个例子,假设我们有一个新的缺陷每个冲刺,让我们假设他们是在平均每1分。此外,假设为10的初始速度(而不估计的缺陷)和200分积压(没有任何措施以供将来未知缺陷)。如果我修复缺陷没有的估计,我将继续为10稳定的速度。我有200我的数学稳定的积压很简单:十分之二百= 20个冲刺。这是很容易教。而且它的保守。

在另一方面,估计所述缺陷使我的11稳定速度,但积压,通过1点的每个冲刺增加。这是数学,让我们来看看...

斜率是,呃...。某物

而且我们已经得到了拦截,和呃...

哦,我不知道。

如果我们知道平均缺陷尺寸和缺陷到达率,我们可以计算出这个。但是,大多数球队不知道他们的平均缺陷尺寸或缺陷到达率。这是更难教。它甚至很难得到人们记住并考虑增加的积压时,他们正在做的信封在他们的头盘算回来。

此外,缺陷是很难估计和我们为缺陷估计往往不能反映相同的行为作为故事。他们有不同的变化。不同的分布,每个点的平均工作量通常高于故事显著不同。缺陷和故事之间的相对估计是不是最好的事情。

摘要

如果一个组织发现自己没有准备好,开始下一个版本,他们打算有空闲的团队修复缺陷,直到产品负责人的团队已经准备好了,那么为什么估算的缺陷?

我的偏向速度测量的精力投放转变为价值交付,没有缺陷,返工,或研究。我这样做是因为我在乎极大地约我发布的承诺/预算。如果我夸大我的速度,由于缺陷和尖峰(即那名计划外的东西),那么我将最终过度承诺释放。我的速度数量将高于交付的实际已知值。

让我提醒你,有很多方面的这里是很重要的。如果你的团队拥有高素质的标准和他们尽快修复所有缺陷,因为他们发现他们,或者1冲刺后,然后我没有估计工程的做法,因为他们不允许的缺陷积累越来越多的积压。然而,如果你的团队推迟缺陷,并打算以后解决这些问题的发布,那么我的做法是非常非常糟糕的毒药。在这一点上,你应该估计所有的缺陷和认识当前的到达率和每个版本的历史缺陷的负荷。

我做的例外和我并不总是持相同的信念。一个旧的帖子关于这个问题,估算缺陷 - 使用有原则的谈判,讨论你可能会针对不同上下文无数做什么。

底线:跟踪,量化,并分别代表软件缺陷的效果。

下一个>产品视觉工具第1部分:产品远景局

@AndrewMFuqua是XP-Atlanta公司在2001年目前的企业转型顾问的创始成员之一,安德鲁以前在类似互联网安全系统,全球倾城,和IBM公司举行管理,产品管理和软件开发职位。安德鲁获得了计算机科学学士和硕士学位,并拥有来自杜克大学的MBA学位。

评论(5)

  1. 苏格兰人
    回复

    我会说这是更简单 - 它只是无法估计的缺陷。

    最灾难性的和致命的错误可能会在一分钟内简单的一条线的修复,你可以发现和纠正;最简单的琐碎问题,(那些可能最终会回到你的积压)可能是需要数天甚至隔离用户,服务器,编译器和代码环境的复杂组合。

    回复
  2. 约翰
    回复

    我会说:“错误无法估计”。

    当我说的错误,我这样做,没有执行或失踪,这些都不是错误,这些缺失的功能并不意味着事情。
    我也不认为是在需求不明确......这些都是要求不清楚平均的东西。

    对我来说,错误是你编码,并预计将工作上的事情,而你测试了它,并认为这是工作,但它不工作,你可能会或可能不知道这是为什么。他们是无法估计的,因为你不知道是什么问题。

    很多次我看到有人寻找到一个错误,以便估计它需要多长时间来修复它,但这种努力没有跟踪,基本上从事修复的前半部分。

    这里有一个旧的文章我写它:http://pathfindersoftware.com/2009/05/bugs-cant-be-estimated/

    回复
  3. 安德鲁·富卡
    回复

    在此讨论的一个并发症,这与资本的交易。如果利用SW开发,发现和修复有关当前sprint /季度/年/发展时期的缺陷是资本化的工作。定影有关的功能的回归缺陷在现有资本化期间然而,费用。(/引入/该缺陷,但是,是资本化 - 只有一半开玩笑。)

    那么该怎么办?如果您可以分区工作出时间(修复所有缺陷释放的最后冲刺或清除缺陷积压释放的第一个冲刺),或在空间(有一个单独的团队做的所有的非资本化的工作,如培训,维护,支持,缺陷等),那么你可以选择不估计那些回归的缺陷。如果你不能批量那些上升时间或团队,那么你可以考虑跟踪小时(啊)或估计缺陷(啊)。

    回复

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*