敏捷团队的转向产品质量

前段时间,我发表了一个博客 测量和控制产品质量 对于迭代大(R)项目。我承诺博客关于我们如何在敏捷团队中引导产品质量,通过故障滑动。该方法是通过决定在规划游戏何时以及如何投资质量方面来降低质量风险。让’请看看如何在敏捷团队中驾驭产品质量。

什么是故障滑过的?

故障滑动通过测量早期应该检测到的后续测试阶段的缺陷数量,当前早先发现缺陷会更具成本效益。通过这种方式使用故障滑动有助于量化产品和工艺质量性能并降低成本。而且,由于项目中晚期发现的缺陷通常会导致干扰并且可能对交付和发布日期产生影响,因此测量也可用于缩短交货时间。

通过指标分析故障滑动告诉您对产品的当前和预期质量的很多。我们’在大型迭代软件开发项目中使用过故障滑动,到 在释放前提高产品质量从而降低维护成本。通过故障滑动通过测量,产品经理可以决定多少时间和金钱 投资回顾, 测试预防缺陷.

A 纸张介绍了实用的软件质量和测试会议 and the blog on 测试如何推动质量 通过和如何使用它,给出一些关于故障滑动的背景。我的书描述了测量质量的整体视图 什么推动质量,这是基于我在软件工程研究所(SEI)所做的工作 建设过程改进业务案例使用贝叶斯信仰网络和蒙特卡罗模拟.

但我们’敏捷。我们还能转向产品质量吗?

当然可以!我还通过敏捷和SCRUM项目应用了故障滑移。我们的方法是讨论与规划游戏中的团队的质量风险,并确定可能有许多缺陷的用户故事。例如,许多缺陷的原因可以是关于所需功能的不洁,或者需要广泛调整和重构的代码,或者难以测试和验证功能,或者团队成员对所需功能有很少的经验。缺陷的质量风险减少了太高并且需要减轻,团队和产品所有者讨论了可以做些什么来降低风险,并为所需活动定义了工程任务。以下一些示例在其中团队和产品所有者讨论质量风险和故障滑动,并查看其如何帮助敏捷的质量。

在规划游戏中,产品所有者澄清了一个用户故事。团队成员根据他们通常如何开发其软件来定义所有技术任务。设计,编码和测试活动被写在卡上,并添加到Sprint Backlog。

在我作为质量经理的角色,我开始与产品所有者和团队的讨论有关预期的质量。用户故事清楚地描述了所需的功能,而客户希望这项工作正常工作,因此他明确表示他预计交付的软件中没有缺陷。由于该团队有计划的测试时间,这看起来很可行。

然后我问团队如果他们预期这个用户故事的任何质量风险?团队成员清楚地表明,这是他们之前开发的类似功能,他们熟悉该产品,因此他们预计他们将能够在没有任何缺陷的情况下设计和编码功能。此时,该团队研究了计划进行测试的小时数。

鉴于这种功能的缺陷风险低,他们决定模块测试,使用测试驱动开发(TDD),并且一些手法测试应该足够。功能测试和系统测试的测试时间数量可以显着减少!基本上,团队和产品所有者在规划游戏中已经应用了风险的测试,以决定需要基于缺陷的风险所需的测试量。

来自计划游戏会议的另一个例子:

在会议中,产品所有者描述了包含新用户界面功能的用户故事。该团队讨论了测试方法,并开始定义用户可以执行新功能的方案。

测试小时开始增长,直到产品所有者停止团队并清楚地提出了与友好客户安排来查看新功能,并提供反馈。他期望基于客户反馈,无论如何需要更改功能。

在定义许多测试过程的状态下,他提出邀请客户到Sprint演示,并安排在下一个Sprint中为客户和团队坐在一起,使用户界面适应他的需求。该团队建议开发灵活的设计和编码解决方案,这将使这种能够与客户合作。这需要在此冲刺中最初需要更多的时间,但在下一个冲刺和维护中节省了很多小时。

鉴于产品所有者负责开发和维护,他看到了该解决方案的业务福利并批准了它。

决定投资质量

It’常常难以说服产品所有者,它会让他更多的资金来获得所需的软件质量。有什么帮助是通过展示释放后客户预期报告多少缺陷来量化质量成本。

事实证明,经过多个团队的敏捷规划游戏在敏捷规划游戏中进行了质量风险和故障滑动估计,只有10%–20%的用户故事具有质量风险,并需要额外的质量活动,如配对编程,评论和检查以及测试,以防止破坏滑移。鉴于维护方面的缺陷成本很高,它’易于制作业务案例,以便早先找到这些缺陷。

在我的第二本书中 什么推动质量 我探讨了质量在所有软件开发阶段中发挥作用。本书深入潜入质量,并为质量提供精益的方法,这些方法分析了客户要求提供产品的全部开发链。

有足够的行业数据可用,例如在 评论的业务福利。这本书的另一个巨大资源和质量的效益是 Capers Jones的软件质量经济学.

结论

产品所有者更容易决定是否在质量上投入时间和资金,了解由于故障引起的潜在产品质量风险,以便以后的测试或客户送到客户。在任何软件写入或测试之前,解决规划游戏中的质量,结果是防止缺陷和提高质量的一种非常有效的方法。

注意:帖子已于2017年9月3日更新,我的第二本书增加了质量的推动。

分享这种经历
  • 30
    分享

本林德林

我帮助组织具有有效的软件开发和管理实践。有关敏捷,精益和质量的多个网络的活跃成员,以及常见的演讲者和作家。

这篇文章有5条评论

  1. Emile Bakker.

    经过你的博客,我真的很喜欢你的第二个例子。认为错误的定义随着时间的推移而变化。在旧的瀑布时代,所谓的错误现在只是第一次迭代的结果。
    认为,在Sprints中,您不仅逐一构建功能元素,而且还在Sprint上延长功能元素。 (至少..如果他们不是太小)。
    这样,您可以最佳地使用Scrum过程的误差容限。

    精益的好事是,现在其余的业务终于了解我们正在做的事情。
    顺便说一句,你的第二个案例也是如何减少废物的一个很好的例子......

    1. 贝纳莱德

      谢谢Emile。

      第二个示例的目标是具有更短的交付周期,使我们能够从客户收集反馈。我们想了解我们是否正在建立合适的产品,而不是浪费时间和金钱的客户’需要。如今你会称之为精简启动,但目前这个词不是发明了......

发表评论

本网站使用AkisMet减少垃圾邮件。 了解如何处理评论数据.